/export/starexec/sandbox/solver/bin/starexec_run_standard /export/starexec/sandbox/benchmark/theBenchmark.pl /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox/benchmark/theBenchmark.pl # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Left Termination of the query pattern reduce(g,a) w.r.t. the given Prolog program could not be shown: (0) Prolog (1) IntegerArithmeticTransformerProof [SOUND, 0 ms] (2) Prolog (3) CutEliminatorProof [SOUND, 0 ms] (4) Prolog (5) UnifyTransformerProof [EQUIVALENT, 0 ms] (6) Prolog (7) OrTransformerProof [EQUIVALENT, 0 ms] (8) Prolog (9) PrologToPiTRSProof [SOUND, 25 ms] (10) PiTRS (11) DependencyPairsProof [EQUIVALENT, 254 ms] (12) PiDP (13) DependencyGraphProof [EQUIVALENT, 0 ms] (14) AND (15) PiDP (16) UsableRulesProof [EQUIVALENT, 0 ms] (17) PiDP (18) PiDPToQDPProof [EQUIVALENT, 0 ms] (19) QDP (20) QDPSizeChangeProof [EQUIVALENT, 0 ms] (21) YES (22) PiDP (23) UsableRulesProof [EQUIVALENT, 0 ms] (24) PiDP (25) PiDPToQDPProof [SOUND, 0 ms] (26) QDP (27) QDPSizeChangeProof [EQUIVALENT, 0 ms] (28) YES (29) PiDP (30) UsableRulesProof [EQUIVALENT, 0 ms] (31) PiDP (32) PiDPToQDPProof [SOUND, 0 ms] (33) QDP (34) QDPSizeChangeProof [EQUIVALENT, 0 ms] (35) YES (36) PiDP (37) UsableRulesProof [EQUIVALENT, 0 ms] (38) PiDP (39) PiDPToQDPProof [SOUND, 0 ms] (40) QDP (41) QDPSizeChangeProof [EQUIVALENT, 0 ms] (42) YES (43) PiDP (44) UsableRulesProof [EQUIVALENT, 0 ms] (45) PiDP (46) PiDPToQDPProof [SOUND, 0 ms] (47) QDP (48) QDPSizeChangeProof [EQUIVALENT, 0 ms] (49) YES (50) PiDP (51) UsableRulesProof [EQUIVALENT, 0 ms] (52) PiDP (53) PiDPToQDPProof [SOUND, 0 ms] (54) QDP (55) QDPSizeChangeProof [EQUIVALENT, 0 ms] (56) YES (57) PiDP (58) UsableRulesProof [EQUIVALENT, 0 ms] (59) PiDP (60) PiDPToQDPProof [SOUND, 0 ms] (61) QDP (62) PiDP (63) UsableRulesProof [EQUIVALENT, 0 ms] (64) PiDP (65) PiDP (66) UsableRulesProof [EQUIVALENT, 0 ms] (67) PiDP (68) PiDP (69) UsableRulesProof [EQUIVALENT, 0 ms] (70) PiDP (71) PiDP (72) UsableRulesProof [EQUIVALENT, 0 ms] (73) PiDP (74) PiDP (75) UsableRulesProof [EQUIVALENT, 0 ms] (76) PiDP (77) PrologToPiTRSProof [SOUND, 15 ms] (78) PiTRS (79) DependencyPairsProof [EQUIVALENT, 275 ms] (80) PiDP (81) DependencyGraphProof [EQUIVALENT, 1 ms] (82) AND (83) PiDP (84) UsableRulesProof [EQUIVALENT, 0 ms] (85) PiDP (86) PiDPToQDPProof [EQUIVALENT, 0 ms] (87) QDP (88) QDPSizeChangeProof [EQUIVALENT, 0 ms] (89) YES (90) PiDP (91) UsableRulesProof [EQUIVALENT, 0 ms] (92) PiDP (93) PiDPToQDPProof [SOUND, 1 ms] (94) QDP (95) QDPSizeChangeProof [EQUIVALENT, 0 ms] (96) YES (97) PiDP (98) UsableRulesProof [EQUIVALENT, 0 ms] (99) PiDP (100) PiDPToQDPProof [SOUND, 0 ms] (101) QDP (102) QDPSizeChangeProof [EQUIVALENT, 0 ms] (103) YES (104) PiDP (105) UsableRulesProof [EQUIVALENT, 0 ms] (106) PiDP (107) PiDPToQDPProof [SOUND, 0 ms] (108) QDP (109) QDPSizeChangeProof [EQUIVALENT, 0 ms] (110) YES (111) PiDP (112) UsableRulesProof [EQUIVALENT, 0 ms] (113) PiDP (114) PiDPToQDPProof [SOUND, 0 ms] (115) QDP (116) QDPSizeChangeProof [EQUIVALENT, 0 ms] (117) YES (118) PiDP (119) UsableRulesProof [EQUIVALENT, 0 ms] (120) PiDP (121) PiDPToQDPProof [SOUND, 0 ms] (122) QDP (123) QDPSizeChangeProof [EQUIVALENT, 0 ms] (124) YES (125) PiDP (126) UsableRulesProof [EQUIVALENT, 0 ms] (127) PiDP (128) PiDPToQDPProof [SOUND, 0 ms] (129) QDP (130) TransformationProof [EQUIVALENT, 0 ms] (131) QDP (132) TransformationProof [EQUIVALENT, 0 ms] (133) QDP (134) PiDP (135) UsableRulesProof [EQUIVALENT, 0 ms] (136) PiDP (137) PiDP (138) UsableRulesProof [EQUIVALENT, 0 ms] (139) PiDP (140) PiDP (141) UsableRulesProof [EQUIVALENT, 0 ms] (142) PiDP (143) PiDP (144) UsableRulesProof [EQUIVALENT, 0 ms] (145) PiDP (146) PiDP (147) UsableRulesProof [EQUIVALENT, 0 ms] (148) PiDP (149) CutEliminatorProof [SOUND, 0 ms] (150) Prolog (151) UndefinedPredicateHandlerProof [SOUND, 0 ms] (152) Prolog (153) PrologToPiTRSProof [SOUND, 31 ms] (154) PiTRS (155) DependencyPairsProof [EQUIVALENT, 96 ms] (156) PiDP (157) DependencyGraphProof [EQUIVALENT, 0 ms] (158) AND (159) PiDP (160) UsableRulesProof [EQUIVALENT, 0 ms] (161) PiDP (162) PiDPToQDPProof [SOUND, 0 ms] (163) QDP (164) TransformationProof [EQUIVALENT, 0 ms] (165) QDP (166) TransformationProof [EQUIVALENT, 0 ms] (167) QDP (168) UsableRulesProof [EQUIVALENT, 0 ms] (169) QDP (170) QReductionProof [EQUIVALENT, 0 ms] (171) QDP (172) TransformationProof [EQUIVALENT, 0 ms] (173) QDP (174) UsableRulesProof [EQUIVALENT, 0 ms] (175) QDP (176) QReductionProof [EQUIVALENT, 0 ms] (177) QDP (178) TransformationProof [EQUIVALENT, 0 ms] (179) QDP (180) UsableRulesProof [EQUIVALENT, 0 ms] (181) QDP (182) QReductionProof [EQUIVALENT, 0 ms] (183) QDP (184) TransformationProof [EQUIVALENT, 0 ms] (185) QDP (186) UsableRulesProof [EQUIVALENT, 0 ms] (187) QDP (188) QReductionProof [EQUIVALENT, 0 ms] (189) QDP (190) NonTerminationLoopProof [COMPLETE, 0 ms] (191) NO (192) PiDP (193) UsableRulesProof [EQUIVALENT, 0 ms] (194) PiDP (195) PiDPToQDPProof [SOUND, 0 ms] (196) QDP (197) PiDP (198) UsableRulesProof [EQUIVALENT, 0 ms] (199) PiDP (200) PiDP (201) UsableRulesProof [EQUIVALENT, 0 ms] (202) PiDP (203) PrologToPiTRSProof [SOUND, 31 ms] (204) PiTRS (205) DependencyPairsProof [EQUIVALENT, 67 ms] (206) PiDP (207) DependencyGraphProof [EQUIVALENT, 0 ms] (208) AND (209) PiDP (210) UsableRulesProof [EQUIVALENT, 0 ms] (211) PiDP (212) PiDPToQDPProof [SOUND, 0 ms] (213) QDP (214) TransformationProof [EQUIVALENT, 4 ms] (215) QDP (216) TransformationProof [EQUIVALENT, 0 ms] (217) QDP (218) UsableRulesProof [EQUIVALENT, 0 ms] (219) QDP (220) QReductionProof [EQUIVALENT, 0 ms] (221) QDP (222) TransformationProof [EQUIVALENT, 0 ms] (223) QDP (224) UsableRulesProof [EQUIVALENT, 0 ms] (225) QDP (226) QReductionProof [EQUIVALENT, 0 ms] (227) QDP (228) TransformationProof [EQUIVALENT, 0 ms] (229) QDP (230) UsableRulesProof [EQUIVALENT, 0 ms] (231) QDP (232) QReductionProof [EQUIVALENT, 0 ms] (233) QDP (234) TransformationProof [EQUIVALENT, 0 ms] (235) QDP (236) UsableRulesProof [EQUIVALENT, 0 ms] (237) QDP (238) QReductionProof [EQUIVALENT, 0 ms] (239) QDP (240) NonTerminationLoopProof [COMPLETE, 1 ms] (241) NO (242) PiDP (243) UsableRulesProof [EQUIVALENT, 0 ms] (244) PiDP (245) PiDPToQDPProof [SOUND, 0 ms] (246) QDP (247) PiDP (248) UsableRulesProof [EQUIVALENT, 0 ms] (249) PiDP (250) PiDP (251) UsableRulesProof [EQUIVALENT, 0 ms] (252) PiDP (253) PrologToIRSwTTransformerProof [SOUND, 70 ms] (254) AND (255) IRSwT (256) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (257) IRSwT (258) IntTRSCompressionProof [EQUIVALENT, 26 ms] (259) IRSwT (260) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (261) IRSwT (262) IRSwTTerminationDigraphProof [EQUIVALENT, 35 ms] (263) TRUE (264) IRSwT (265) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (266) IRSwT (267) IntTRSCompressionProof [EQUIVALENT, 28 ms] (268) IRSwT (269) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (270) IRSwT (271) IRSwTTerminationDigraphProof [EQUIVALENT, 91 ms] (272) IRSwT (273) IntTRSCompressionProof [EQUIVALENT, 0 ms] (274) IRSwT (275) IRSwTToIntTRSProof [SOUND, 0 ms] (276) IRSwT (277) IntTRSCompressionProof [EQUIVALENT, 0 ms] (278) IRSwT (279) IntTRSPeriodicNontermProof [COMPLETE, 504 ms] (280) NO (281) PrologToDTProblemTransformerProof [SOUND, 194 ms] (282) TRIPLES (283) TriplesToPiDPProof [SOUND, 0 ms] (284) PiDP (285) DependencyGraphProof [EQUIVALENT, 0 ms] (286) AND (287) PiDP (288) UsableRulesProof [EQUIVALENT, 0 ms] (289) PiDP (290) PiDPToQDPProof [SOUND, 0 ms] (291) QDP (292) NonTerminationLoopProof [COMPLETE, 0 ms] (293) NO (294) PiDP (295) UsableRulesProof [EQUIVALENT, 0 ms] (296) PiDP (297) PiDPToQDPProof [SOUND, 0 ms] (298) QDP (299) TransformationProof [EQUIVALENT, 0 ms] (300) QDP (301) UsableRulesProof [EQUIVALENT, 1 ms] (302) QDP (303) QReductionProof [EQUIVALENT, 0 ms] (304) QDP (305) TransformationProof [EQUIVALENT, 0 ms] (306) QDP (307) UsableRulesProof [EQUIVALENT, 0 ms] (308) QDP (309) QReductionProof [EQUIVALENT, 0 ms] (310) QDP (311) NonTerminationLoopProof [COMPLETE, 0 ms] (312) NO (313) PiDP (314) UsableRulesProof [EQUIVALENT, 0 ms] (315) PiDP (316) PiDPToQDPProof [SOUND, 0 ms] (317) QDP (318) NonTerminationLoopProof [COMPLETE, 0 ms] (319) NO (320) PiDP (321) UsableRulesProof [EQUIVALENT, 0 ms] (322) PiDP (323) PiDPToQDPProof [SOUND, 0 ms] (324) QDP (325) PiDP (326) UsableRulesProof [EQUIVALENT, 0 ms] (327) PiDP ---------------------------------------- (0) Obligation: Clauses: reduce(frac(C, D), frac(C, D)) :- ','(!, ','(gcd(C, D, Gcd), =:=(Gcd, 1))). reduce(frac(C, D), frac(Cres, Dres)) :- ','(!, ','(gcd(C, D, Gcd), ','(>(Gcd, 1), ','(reduce(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)), ','(is(Cres, CRec), is(Dres, DRec)))))). gcd(X, 0, X) :- !. gcd(0, X, X) :- !. gcd(X, Y, Divisor) :- ','(>=(X, Y), ','(!, ','(>(Y, 0), ','(is(Remainder, mod(X, Y)), gcd(Y, Remainder, Divisor))))). gcd(X, Y, Divisor) :- ','(<(X, Y), ','(!, ','(>(X, 0), gcd(Y, X, Divisor)))). Query: reduce(g,a) ---------------------------------------- (1) IntegerArithmeticTransformerProof (SOUND) Added definitions of predefined predicates [PROLOG]. ---------------------------------------- (2) Obligation: Clauses: reduce(frac(C, D), frac(C, D)) :- ','(!, ','(gcd(C, D, Gcd), ','(=(X, Gcd), ','(=(X1, succ(zero)), =(X, X1))))). reduce(frac(C, D), frac(Cres, Dres)) :- ','(!, ','(gcd(C, D, Gcd), ','(=(X, Gcd), ','(=(X1, succ(zero)), ','(isGreater(X, X1), ','(reduce(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)), ','(=(Cres, CRec), =(Dres, DRec)))))))). gcd(X, zero, X) :- !. gcd(zero, X, X) :- !. gcd(X, Y, Divisor) :- ','(=(X1, X), ','(=(X2, Y), ','(;(isGreater(X1, X2), =(X1, X2)), ','(!, ','(=(X3, Y), ','(=(X4, zero), ','(isGreater(X3, X4), ','(isModulo(X, Y, U), ','(=(Remainder, U), gcd(Y, Remainder, Divisor)))))))))). gcd(X, Y, Divisor) :- ','(=(X3, X), ','(=(X4, Y), ','(isLess(X3, X4), ','(!, ','(=(X1, X), ','(=(X2, zero), ','(isGreater(X1, X2), gcd(Y, X, Divisor)))))))). 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: reduce(g,a) ---------------------------------------- (3) CutEliminatorProof (SOUND) Eliminated all cuts by simply ignoring them[PROLOG]. ---------------------------------------- (4) Obligation: Clauses: reduce(frac(C, D), frac(C, D)) :- ','(gcd(C, D, Gcd), ','(=(X, Gcd), ','(=(X1, succ(zero)), =(X, X1)))). reduce(frac(C, D), frac(Cres, Dres)) :- ','(gcd(C, D, Gcd), ','(=(X, Gcd), ','(=(X1, succ(zero)), ','(isGreater(X, X1), ','(reduce(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)), ','(=(Cres, CRec), =(Dres, DRec))))))). gcd(X, zero, X). gcd(zero, X, X). gcd(X, Y, Divisor) :- ','(=(X1, X), ','(=(X2, Y), ','(;(isGreater(X1, X2), =(X1, X2)), ','(=(X3, Y), ','(=(X4, zero), ','(isGreater(X3, X4), ','(isModulo(X, Y, U), ','(=(Remainder, U), gcd(Y, Remainder, Divisor))))))))). gcd(X, Y, Divisor) :- ','(=(X3, X), ','(=(X4, Y), ','(isLess(X3, X4), ','(=(X1, X), ','(=(X2, zero), ','(isGreater(X1, X2), gcd(Y, X, Divisor))))))). 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: reduce(g,a) ---------------------------------------- (5) UnifyTransformerProof (EQUIVALENT) Added a fact for the built-in = predicate [PROLOG]. ---------------------------------------- (6) Obligation: Clauses: reduce(frac(C, D), frac(C, D)) :- ','(gcd(C, D, Gcd), ','(=(X, Gcd), ','(=(X1, succ(zero)), =(X, X1)))). reduce(frac(C, D), frac(Cres, Dres)) :- ','(gcd(C, D, Gcd), ','(=(X, Gcd), ','(=(X1, succ(zero)), ','(isGreater(X, X1), ','(reduce(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)), ','(=(Cres, CRec), =(Dres, DRec))))))). gcd(X, zero, X). gcd(zero, X, X). gcd(X, Y, Divisor) :- ','(=(X1, X), ','(=(X2, Y), ','(;(isGreater(X1, X2), =(X1, X2)), ','(=(X3, Y), ','(=(X4, zero), ','(isGreater(X3, X4), ','(isModulo(X, Y, U), ','(=(Remainder, U), gcd(Y, Remainder, Divisor))))))))). gcd(X, Y, Divisor) :- ','(=(X3, X), ','(=(X4, Y), ','(isLess(X3, X4), ','(=(X1, X), ','(=(X2, zero), ','(isGreater(X1, X2), gcd(Y, X, Divisor))))))). 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: reduce(g,a) ---------------------------------------- (7) OrTransformerProof (EQUIVALENT) Transformed all or-constructs[PROLOG]. ---------------------------------------- (8) Obligation: Clauses: reduce(frac(C, D), frac(C, D)) :- ','(gcd(C, D, Gcd), ','(=(X, Gcd), ','(=(X1, succ(zero)), =(X, X1)))). reduce(frac(C, D), frac(Cres, Dres)) :- ','(gcd(C, D, Gcd), ','(=(X, Gcd), ','(=(X1, succ(zero)), ','(isGreater(X, X1), ','(reduce(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)), ','(=(Cres, CRec), =(Dres, DRec))))))). gcd(X, zero, X). gcd(zero, X, X). gcd(X, Y, Divisor) :- ','(=(X1, X), ','(=(X2, Y), ','(isGreater(X1, X2), ','(=(X3, Y), ','(=(X4, zero), ','(isGreater(X3, X4), ','(isModulo(X, Y, U), ','(=(Remainder, U), gcd(Y, Remainder, Divisor))))))))). gcd(X, Y, Divisor) :- ','(=(X1, X), ','(=(X2, Y), ','(=(X1, X2), ','(=(X3, Y), ','(=(X4, zero), ','(isGreater(X3, X4), ','(isModulo(X, Y, U), ','(=(Remainder, U), gcd(Y, Remainder, Divisor))))))))). gcd(X, Y, Divisor) :- ','(=(X3, X), ','(=(X4, Y), ','(isLess(X3, X4), ','(=(X1, X), ','(=(X2, zero), ','(isGreater(X1, X2), gcd(Y, X, Divisor))))))). 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: reduce(g,a) ---------------------------------------- (9) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: reduce_in_2: (b,f) gcd_in_3: (b,b,f) isGreater_in_2: (b,b) isModulo_in_3: (b,b,f) isDiv_in_3: (b,b,f) isMinus_in_3: (b,b,f) isTimes_in_3: (b,b,f) isPlus_in_3: (b,b,f) 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: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x3) U69_gg(x1, x2, x3) = U69_gg(x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x3) U53_gga(x1, x2, x3) = U53_gga(x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U54_gga(x1, x2, x3, x4) = U54_gga(x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x4) U59_gga(x1, x2, x3) = U59_gga(x3) U60_gga(x1, x2, x3, x4) = U60_gga(x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x4) U62_gga(x1, x2, x3, x4) = U62_gga(x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x4) U64_gga(x1, x2, x3, x4) = U64_gga(x4) U58_gga(x1, x2, x3, x4) = U58_gga(x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x4) U50_gga(x1, x2, x3, x4) = U50_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_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) U48_gga(x1, x2, x3, x4) = U48_gga(x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) U67_gga(x1, x2, x3, x4) = U67_gga(x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x3) U19_gga(x1, x2, x3, x4) = U19_gga(x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U70_gg(x1, x2, x3) = U70_gg(x3) U71_gg(x1, x2, x3) = U71_gg(x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x3, x5) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (10) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x3) U69_gg(x1, x2, x3) = U69_gg(x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x3) U53_gga(x1, x2, x3) = U53_gga(x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U54_gga(x1, x2, x3, x4) = U54_gga(x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x4) U59_gga(x1, x2, x3) = U59_gga(x3) U60_gga(x1, x2, x3, x4) = U60_gga(x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x4) U62_gga(x1, x2, x3, x4) = U62_gga(x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x4) U64_gga(x1, x2, x3, x4) = U64_gga(x4) U58_gga(x1, x2, x3, x4) = U58_gga(x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x4) U50_gga(x1, x2, x3, x4) = U50_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_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) U48_gga(x1, x2, x3, x4) = U48_gga(x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) U67_gga(x1, x2, x3, x4) = U67_gga(x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x3) U19_gga(x1, x2, x3, x4) = U19_gga(x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U70_gg(x1, x2, x3) = U70_gg(x3) U71_gg(x1, x2, x3) = U71_gg(x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x3, x5) ---------------------------------------- (11) 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: REDUCE_IN_GA(frac(C, D), frac(C, D)) -> U1_GA(C, D, gcd_in_gga(C, D, Gcd)) REDUCE_IN_GA(frac(C, D), frac(C, D)) -> GCD_IN_GGA(C, D, Gcd) GCD_IN_GGA(X, Y, Divisor) -> U12_GGA(X, Y, Divisor, =_in_ag(X1, X)) GCD_IN_GGA(X, Y, Divisor) -> =_IN_AG(X1, X) U12_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> U13_GGA(X, Y, Divisor, X1, =_in_ag(X2, Y)) U12_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> =_IN_AG(X2, Y) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_GGA(X, Y, Divisor, X1, X2, isGreater_in_gg(X1, X2)) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> ISGREATER_IN_GG(X1, X2) ISGREATER_IN_GG(succ(X), succ(Y)) -> U68_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)) -> U69_GG(X, Y, isGreater_in_gg(X, Y)) ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) U14_GGA(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_GGA(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U14_GGA(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> =_IN_AG(X3, Y) U15_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_GGA(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U15_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> =_IN_AG(X4, zero) U16_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_GGA(X, Y, Divisor, isGreater_in_gg(X3, X4)) U16_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U17_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_GGA(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U17_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> ISMODULO_IN_GGA(X, Y, U) ISMODULO_IN_GGA(X, Y, Z) -> U65_GGA(X, Y, Z, isDiv_in_gga(X, Y, A)) ISMODULO_IN_GGA(X, Y, Z) -> ISDIV_IN_GGA(X, Y, A) ISDIV_IN_GGA(succ(X), succ(Y), zero) -> U53_GGA(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) ISDIV_IN_GGA(succ(X), succ(Y), zero) -> ISMINUS_IN_GGA(succ(X), succ(Y), pred(Z)) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> U39_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)) -> U40_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) -> U41_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))) -> U42_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))) -> U43_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) -> U44_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISDIV_IN_GGA(succ(X), succ(Y), succ(Z)) -> U54_GGA(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) ISDIV_IN_GGA(succ(X), succ(Y), succ(Z)) -> ISMINUS_IN_GGA(succ(X), succ(Y), A) U54_GGA(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_GGA(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) U54_GGA(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> ISDIV_IN_GGA(A, succ(Y), Z) ISDIV_IN_GGA(succ(X), pred(Y), Z) -> U56_GGA(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) ISDIV_IN_GGA(succ(X), pred(Y), Z) -> ISMINUS_IN_GGA(zero, pred(Y), A) U56_GGA(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_GGA(X, Y, Z, isDiv_in_gga(succ(X), A, B)) U56_GGA(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> ISDIV_IN_GGA(succ(X), A, B) ISDIV_IN_GGA(pred(X), pred(Y), zero) -> U59_GGA(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) ISDIV_IN_GGA(pred(X), pred(Y), zero) -> ISMINUS_IN_GGA(pred(X), pred(Y), succ(Z)) ISDIV_IN_GGA(pred(X), pred(Y), succ(Z)) -> U60_GGA(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) ISDIV_IN_GGA(pred(X), pred(Y), succ(Z)) -> ISMINUS_IN_GGA(pred(X), pred(Y), A) U60_GGA(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_GGA(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) U60_GGA(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> ISDIV_IN_GGA(A, pred(Y), Z) ISDIV_IN_GGA(pred(X), succ(Y), Z) -> U62_GGA(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) ISDIV_IN_GGA(pred(X), succ(Y), Z) -> ISMINUS_IN_GGA(zero, pred(X), A) U62_GGA(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_GGA(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U62_GGA(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> ISDIV_IN_GGA(A, succ(Y), B) U63_GGA(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_GGA(X, Y, Z, isMinus_in_gga(zero, B, Z)) U63_GGA(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> ISMINUS_IN_GGA(zero, B, Z) U57_GGA(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_GGA(X, Y, Z, isMinus_in_gga(zero, B, Z)) U57_GGA(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> ISMINUS_IN_GGA(zero, B, Z) U65_GGA(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_GGA(X, Y, Z, isTimes_in_gga(A, Y, B)) U65_GGA(X, Y, Z, isDiv_out_gga(X, Y, A)) -> ISTIMES_IN_GGA(A, Y, B) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> U45_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) -> U47_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) -> U49_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) -> U51_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) U51_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_GGA(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U51_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISMINUS_IN_GGA(A, pred(X), Z) U49_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_GGA(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U49_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))) -> U35_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) -> U36_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) -> U37_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))) -> U38_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) U47_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_GGA(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U47_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISMINUS_IN_GGA(A, succ(X), Z) U45_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_GGA(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U45_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISPLUS_IN_GGA(A, succ(X), Z) U66_GGA(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_GGA(X, Y, Z, isMinus_in_gga(X, B, Z)) U66_GGA(X, Y, Z, isTimes_out_gga(A, Y, B)) -> ISMINUS_IN_GGA(X, B, Z) U18_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_GGA(X, Y, Divisor, =_in_ag(Remainder, U)) U18_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> =_IN_AG(Remainder, U) U19_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_GGA(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U19_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> GCD_IN_GGA(Y, Remainder, Divisor) GCD_IN_GGA(X, Y, Divisor) -> U28_GGA(X, Y, Divisor, =_in_ag(X3, X)) U28_GGA(X, Y, Divisor, =_out_ag(X3, X)) -> U29_GGA(X, Y, Divisor, X3, =_in_ag(X4, Y)) U28_GGA(X, Y, Divisor, =_out_ag(X3, X)) -> =_IN_AG(X4, Y) U29_GGA(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_GGA(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) U29_GGA(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> ISLESS_IN_GG(X3, X4) ISLESS_IN_GG(pred(X), pred(Y)) -> U70_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)) -> U71_GG(X, Y, isLess_in_gg(X, Y)) ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) U30_GGA(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_GGA(X, Y, Divisor, =_in_ag(X1, X)) U30_GGA(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> =_IN_AG(X1, X) U31_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> U32_GGA(X, Y, Divisor, X1, =_in_ag(X2, zero)) U31_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> =_IN_AG(X2, zero) U32_GGA(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_GGA(X, Y, Divisor, isGreater_in_gg(X1, X2)) U32_GGA(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> ISGREATER_IN_GG(X1, X2) U33_GGA(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_GGA(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U33_GGA(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> GCD_IN_GGA(Y, X, Divisor) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_GGA(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> =_IN_GG(X1, X2) U21_GGA(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_GGA(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U21_GGA(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> =_IN_AG(X3, Y) U22_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_GGA(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U22_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> =_IN_AG(X4, zero) U23_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_GGA(X, Y, Divisor, isGreater_in_gg(X3, X4)) U23_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U24_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_GGA(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U24_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> ISMODULO_IN_GGA(X, Y, U) U25_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_GGA(X, Y, Divisor, =_in_ag(Remainder, U)) U25_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> =_IN_AG(Remainder, U) U26_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_GGA(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U26_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> GCD_IN_GGA(Y, Remainder, Divisor) U1_GA(C, D, gcd_out_gga(C, D, Gcd)) -> U2_GA(C, D, =_in_ag(X, Gcd)) U1_GA(C, D, gcd_out_gga(C, D, Gcd)) -> =_IN_AG(X, Gcd) U2_GA(C, D, =_out_ag(X, Gcd)) -> U3_GA(C, D, X, =_in_ag(X1, succ(zero))) U2_GA(C, D, =_out_ag(X, Gcd)) -> =_IN_AG(X1, succ(zero)) U3_GA(C, D, X, =_out_ag(X1, succ(zero))) -> U4_GA(C, D, =_in_gg(X, X1)) U3_GA(C, D, X, =_out_ag(X1, succ(zero))) -> =_IN_GG(X, X1) REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> U5_GA(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> GCD_IN_GGA(C, D, Gcd) U5_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_GA(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U5_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> =_IN_AG(X, Gcd) U6_GA(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_GA(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U6_GA(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> =_IN_AG(X1, succ(zero)) U7_GA(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_GA(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U7_GA(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> ISGREATER_IN_GG(X, X1) U8_GA(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_GA(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U8_GA(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> REDUCE_IN_GA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) U9_GA(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_GA(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U9_GA(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> =_IN_AG(Cres, CRec) U10_GA(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_GA(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U10_GA(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> =_IN_AG(Dres, DRec) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x3) U69_gg(x1, x2, x3) = U69_gg(x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x3) U53_gga(x1, x2, x3) = U53_gga(x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U54_gga(x1, x2, x3, x4) = U54_gga(x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x4) U59_gga(x1, x2, x3) = U59_gga(x3) U60_gga(x1, x2, x3, x4) = U60_gga(x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x4) U62_gga(x1, x2, x3, x4) = U62_gga(x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x4) U64_gga(x1, x2, x3, x4) = U64_gga(x4) U58_gga(x1, x2, x3, x4) = U58_gga(x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x4) U50_gga(x1, x2, x3, x4) = U50_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_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) U48_gga(x1, x2, x3, x4) = U48_gga(x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) U67_gga(x1, x2, x3, x4) = U67_gga(x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x3) U19_gga(x1, x2, x3, x4) = U19_gga(x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U70_gg(x1, x2, x3) = U70_gg(x3) U71_gg(x1, x2, x3) = U71_gg(x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x3, x5) REDUCE_IN_GA(x1, x2) = REDUCE_IN_GA(x1) U1_GA(x1, x2, x3) = U1_GA(x1, x2, x3) GCD_IN_GGA(x1, x2, x3) = GCD_IN_GGA(x1, x2) U12_GGA(x1, x2, x3, x4) = U12_GGA(x1, x2, x4) =_IN_AG(x1, x2) = =_IN_AG(x2) U13_GGA(x1, x2, x3, x4, x5) = U13_GGA(x1, x2, x4, x5) U14_GGA(x1, x2, x3, x4, x5, x6) = U14_GGA(x1, x2, x6) ISGREATER_IN_GG(x1, x2) = ISGREATER_IN_GG(x1, x2) U68_GG(x1, x2, x3) = U68_GG(x3) U69_GG(x1, x2, x3) = U69_GG(x3) U15_GGA(x1, x2, x3, x4, x5, x6) = U15_GGA(x1, x2, x6) U16_GGA(x1, x2, x3, x4, x5, x6, x7) = U16_GGA(x1, x2, x6, x7) U17_GGA(x1, x2, x3, x4) = U17_GGA(x1, x2, x4) U18_GGA(x1, x2, x3, x4) = U18_GGA(x2, x4) ISMODULO_IN_GGA(x1, x2, x3) = ISMODULO_IN_GGA(x1, x2) U65_GGA(x1, x2, x3, x4) = U65_GGA(x1, x2, x4) ISDIV_IN_GGA(x1, x2, x3) = ISDIV_IN_GGA(x1, x2) U53_GGA(x1, x2, x3) = U53_GGA(x3) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) U39_GGA(x1, x2, x3) = U39_GGA(x3) U40_GGA(x1, x2, x3) = U40_GGA(x3) U41_GGA(x1, x2, x3, x4) = U41_GGA(x4) U42_GGA(x1, x2, x3, x4) = U42_GGA(x4) U43_GGA(x1, x2, x3, x4) = U43_GGA(x4) U44_GGA(x1, x2, x3, x4) = U44_GGA(x4) U54_GGA(x1, x2, x3, x4) = U54_GGA(x2, x4) U55_GGA(x1, x2, x3, x4) = U55_GGA(x4) U56_GGA(x1, x2, x3, x4) = U56_GGA(x1, x4) U57_GGA(x1, x2, x3, x4) = U57_GGA(x4) U59_GGA(x1, x2, x3) = U59_GGA(x3) U60_GGA(x1, x2, x3, x4) = U60_GGA(x2, x4) U61_GGA(x1, x2, x3, x4) = U61_GGA(x4) U62_GGA(x1, x2, x3, x4) = U62_GGA(x2, x4) U63_GGA(x1, x2, x3, x4) = U63_GGA(x4) U64_GGA(x1, x2, x3, x4) = U64_GGA(x4) U58_GGA(x1, x2, x3, x4) = U58_GGA(x4) U66_GGA(x1, x2, x3, x4) = U66_GGA(x1, x4) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) U45_GGA(x1, x2, x3, x4) = U45_GGA(x1, x4) U47_GGA(x1, x2, x3, x4) = U47_GGA(x1, x4) U49_GGA(x1, x2, x3, x4) = U49_GGA(x1, x4) U51_GGA(x1, x2, x3, x4) = U51_GGA(x1, x4) U52_GGA(x1, x2, x3, x4) = U52_GGA(x4) U50_GGA(x1, x2, x3, x4) = U50_GGA(x4) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) 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) U48_GGA(x1, x2, x3, x4) = U48_GGA(x4) U46_GGA(x1, x2, x3, x4) = U46_GGA(x4) U67_GGA(x1, x2, x3, x4) = U67_GGA(x4) U19_GGA(x1, x2, x3, x4) = U19_GGA(x2, x4) U20_GGA(x1, x2, x3, x4) = U20_GGA(x4) U28_GGA(x1, x2, x3, x4) = U28_GGA(x1, x2, x4) U29_GGA(x1, x2, x3, x4, x5) = U29_GGA(x1, x2, x4, x5) U30_GGA(x1, x2, x3, x4, x5, x6) = U30_GGA(x1, x2, x6) ISLESS_IN_GG(x1, x2) = ISLESS_IN_GG(x1, x2) U70_GG(x1, x2, x3) = U70_GG(x3) U71_GG(x1, x2, x3) = U71_GG(x3) U31_GGA(x1, x2, x3, x4) = U31_GGA(x1, x2, x4) U32_GGA(x1, x2, x3, x4, x5) = U32_GGA(x1, x2, x4, x5) U33_GGA(x1, x2, x3, x4) = U33_GGA(x1, x2, x4) U34_GGA(x1, x2, x3, x4) = U34_GGA(x4) U21_GGA(x1, x2, x3, x4, x5, x6) = U21_GGA(x1, x2, x6) =_IN_GG(x1, x2) = =_IN_GG(x1, x2) U22_GGA(x1, x2, x3, x4, x5, x6) = U22_GGA(x1, x2, x6) U23_GGA(x1, x2, x3, x4, x5, x6, x7) = U23_GGA(x1, x2, x6, x7) U24_GGA(x1, x2, x3, x4) = U24_GGA(x1, x2, x4) U25_GGA(x1, x2, x3, x4) = U25_GGA(x2, x4) U26_GGA(x1, x2, x3, x4) = U26_GGA(x2, x4) U27_GGA(x1, x2, x3, x4) = U27_GGA(x4) U2_GA(x1, x2, x3) = U2_GA(x1, x2, x3) U3_GA(x1, x2, x3, x4) = U3_GA(x1, x2, x3, x4) U4_GA(x1, x2, x3) = U4_GA(x1, x2, x3) U5_GA(x1, x2, x3, x4, x5) = U5_GA(x1, x2, x5) U6_GA(x1, x2, x3, x4, x5, x6) = U6_GA(x1, x2, x5, x6) U7_GA(x1, x2, x3, x4, x5, x6, x7) = U7_GA(x1, x2, x5, x6, x7) U8_GA(x1, x2, x3, x4, x5, x6) = U8_GA(x1, x2, x5, x6) U9_GA(x1, x2, x3, x4, x5) = U9_GA(x5) U10_GA(x1, x2, x3, x4, x5, x6) = U10_GA(x5, x6) U11_GA(x1, x2, x3, x4, x5) = U11_GA(x3, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (12) Obligation: Pi DP problem: The TRS P consists of the following rules: REDUCE_IN_GA(frac(C, D), frac(C, D)) -> U1_GA(C, D, gcd_in_gga(C, D, Gcd)) REDUCE_IN_GA(frac(C, D), frac(C, D)) -> GCD_IN_GGA(C, D, Gcd) GCD_IN_GGA(X, Y, Divisor) -> U12_GGA(X, Y, Divisor, =_in_ag(X1, X)) GCD_IN_GGA(X, Y, Divisor) -> =_IN_AG(X1, X) U12_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> U13_GGA(X, Y, Divisor, X1, =_in_ag(X2, Y)) U12_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> =_IN_AG(X2, Y) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_GGA(X, Y, Divisor, X1, X2, isGreater_in_gg(X1, X2)) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> ISGREATER_IN_GG(X1, X2) ISGREATER_IN_GG(succ(X), succ(Y)) -> U68_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)) -> U69_GG(X, Y, isGreater_in_gg(X, Y)) ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) U14_GGA(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_GGA(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U14_GGA(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> =_IN_AG(X3, Y) U15_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_GGA(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U15_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> =_IN_AG(X4, zero) U16_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_GGA(X, Y, Divisor, isGreater_in_gg(X3, X4)) U16_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U17_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_GGA(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U17_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> ISMODULO_IN_GGA(X, Y, U) ISMODULO_IN_GGA(X, Y, Z) -> U65_GGA(X, Y, Z, isDiv_in_gga(X, Y, A)) ISMODULO_IN_GGA(X, Y, Z) -> ISDIV_IN_GGA(X, Y, A) ISDIV_IN_GGA(succ(X), succ(Y), zero) -> U53_GGA(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) ISDIV_IN_GGA(succ(X), succ(Y), zero) -> ISMINUS_IN_GGA(succ(X), succ(Y), pred(Z)) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> U39_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)) -> U40_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) -> U41_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))) -> U42_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))) -> U43_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) -> U44_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISDIV_IN_GGA(succ(X), succ(Y), succ(Z)) -> U54_GGA(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) ISDIV_IN_GGA(succ(X), succ(Y), succ(Z)) -> ISMINUS_IN_GGA(succ(X), succ(Y), A) U54_GGA(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_GGA(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) U54_GGA(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> ISDIV_IN_GGA(A, succ(Y), Z) ISDIV_IN_GGA(succ(X), pred(Y), Z) -> U56_GGA(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) ISDIV_IN_GGA(succ(X), pred(Y), Z) -> ISMINUS_IN_GGA(zero, pred(Y), A) U56_GGA(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_GGA(X, Y, Z, isDiv_in_gga(succ(X), A, B)) U56_GGA(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> ISDIV_IN_GGA(succ(X), A, B) ISDIV_IN_GGA(pred(X), pred(Y), zero) -> U59_GGA(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) ISDIV_IN_GGA(pred(X), pred(Y), zero) -> ISMINUS_IN_GGA(pred(X), pred(Y), succ(Z)) ISDIV_IN_GGA(pred(X), pred(Y), succ(Z)) -> U60_GGA(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) ISDIV_IN_GGA(pred(X), pred(Y), succ(Z)) -> ISMINUS_IN_GGA(pred(X), pred(Y), A) U60_GGA(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_GGA(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) U60_GGA(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> ISDIV_IN_GGA(A, pred(Y), Z) ISDIV_IN_GGA(pred(X), succ(Y), Z) -> U62_GGA(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) ISDIV_IN_GGA(pred(X), succ(Y), Z) -> ISMINUS_IN_GGA(zero, pred(X), A) U62_GGA(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_GGA(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U62_GGA(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> ISDIV_IN_GGA(A, succ(Y), B) U63_GGA(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_GGA(X, Y, Z, isMinus_in_gga(zero, B, Z)) U63_GGA(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> ISMINUS_IN_GGA(zero, B, Z) U57_GGA(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_GGA(X, Y, Z, isMinus_in_gga(zero, B, Z)) U57_GGA(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> ISMINUS_IN_GGA(zero, B, Z) U65_GGA(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_GGA(X, Y, Z, isTimes_in_gga(A, Y, B)) U65_GGA(X, Y, Z, isDiv_out_gga(X, Y, A)) -> ISTIMES_IN_GGA(A, Y, B) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> U45_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) -> U47_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) -> U49_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) -> U51_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) U51_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_GGA(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U51_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISMINUS_IN_GGA(A, pred(X), Z) U49_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_GGA(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U49_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))) -> U35_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) -> U36_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) -> U37_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))) -> U38_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) U47_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_GGA(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U47_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISMINUS_IN_GGA(A, succ(X), Z) U45_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_GGA(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U45_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISPLUS_IN_GGA(A, succ(X), Z) U66_GGA(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_GGA(X, Y, Z, isMinus_in_gga(X, B, Z)) U66_GGA(X, Y, Z, isTimes_out_gga(A, Y, B)) -> ISMINUS_IN_GGA(X, B, Z) U18_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_GGA(X, Y, Divisor, =_in_ag(Remainder, U)) U18_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> =_IN_AG(Remainder, U) U19_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_GGA(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U19_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> GCD_IN_GGA(Y, Remainder, Divisor) GCD_IN_GGA(X, Y, Divisor) -> U28_GGA(X, Y, Divisor, =_in_ag(X3, X)) U28_GGA(X, Y, Divisor, =_out_ag(X3, X)) -> U29_GGA(X, Y, Divisor, X3, =_in_ag(X4, Y)) U28_GGA(X, Y, Divisor, =_out_ag(X3, X)) -> =_IN_AG(X4, Y) U29_GGA(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_GGA(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) U29_GGA(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> ISLESS_IN_GG(X3, X4) ISLESS_IN_GG(pred(X), pred(Y)) -> U70_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)) -> U71_GG(X, Y, isLess_in_gg(X, Y)) ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) U30_GGA(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_GGA(X, Y, Divisor, =_in_ag(X1, X)) U30_GGA(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> =_IN_AG(X1, X) U31_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> U32_GGA(X, Y, Divisor, X1, =_in_ag(X2, zero)) U31_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> =_IN_AG(X2, zero) U32_GGA(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_GGA(X, Y, Divisor, isGreater_in_gg(X1, X2)) U32_GGA(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> ISGREATER_IN_GG(X1, X2) U33_GGA(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_GGA(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U33_GGA(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> GCD_IN_GGA(Y, X, Divisor) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_GGA(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> =_IN_GG(X1, X2) U21_GGA(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_GGA(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U21_GGA(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> =_IN_AG(X3, Y) U22_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_GGA(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U22_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> =_IN_AG(X4, zero) U23_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_GGA(X, Y, Divisor, isGreater_in_gg(X3, X4)) U23_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U24_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_GGA(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U24_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> ISMODULO_IN_GGA(X, Y, U) U25_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_GGA(X, Y, Divisor, =_in_ag(Remainder, U)) U25_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> =_IN_AG(Remainder, U) U26_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_GGA(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U26_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> GCD_IN_GGA(Y, Remainder, Divisor) U1_GA(C, D, gcd_out_gga(C, D, Gcd)) -> U2_GA(C, D, =_in_ag(X, Gcd)) U1_GA(C, D, gcd_out_gga(C, D, Gcd)) -> =_IN_AG(X, Gcd) U2_GA(C, D, =_out_ag(X, Gcd)) -> U3_GA(C, D, X, =_in_ag(X1, succ(zero))) U2_GA(C, D, =_out_ag(X, Gcd)) -> =_IN_AG(X1, succ(zero)) U3_GA(C, D, X, =_out_ag(X1, succ(zero))) -> U4_GA(C, D, =_in_gg(X, X1)) U3_GA(C, D, X, =_out_ag(X1, succ(zero))) -> =_IN_GG(X, X1) REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> U5_GA(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> GCD_IN_GGA(C, D, Gcd) U5_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_GA(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U5_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> =_IN_AG(X, Gcd) U6_GA(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_GA(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U6_GA(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> =_IN_AG(X1, succ(zero)) U7_GA(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_GA(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U7_GA(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> ISGREATER_IN_GG(X, X1) U8_GA(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_GA(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U8_GA(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> REDUCE_IN_GA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) U9_GA(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_GA(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U9_GA(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> =_IN_AG(Cres, CRec) U10_GA(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_GA(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U10_GA(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> =_IN_AG(Dres, DRec) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x3) U69_gg(x1, x2, x3) = U69_gg(x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x3) U53_gga(x1, x2, x3) = U53_gga(x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U54_gga(x1, x2, x3, x4) = U54_gga(x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x4) U59_gga(x1, x2, x3) = U59_gga(x3) U60_gga(x1, x2, x3, x4) = U60_gga(x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x4) U62_gga(x1, x2, x3, x4) = U62_gga(x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x4) U64_gga(x1, x2, x3, x4) = U64_gga(x4) U58_gga(x1, x2, x3, x4) = U58_gga(x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x4) U50_gga(x1, x2, x3, x4) = U50_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_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) U48_gga(x1, x2, x3, x4) = U48_gga(x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) U67_gga(x1, x2, x3, x4) = U67_gga(x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x3) U19_gga(x1, x2, x3, x4) = U19_gga(x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U70_gg(x1, x2, x3) = U70_gg(x3) U71_gg(x1, x2, x3) = U71_gg(x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x3, x5) REDUCE_IN_GA(x1, x2) = REDUCE_IN_GA(x1) U1_GA(x1, x2, x3) = U1_GA(x1, x2, x3) GCD_IN_GGA(x1, x2, x3) = GCD_IN_GGA(x1, x2) U12_GGA(x1, x2, x3, x4) = U12_GGA(x1, x2, x4) =_IN_AG(x1, x2) = =_IN_AG(x2) U13_GGA(x1, x2, x3, x4, x5) = U13_GGA(x1, x2, x4, x5) U14_GGA(x1, x2, x3, x4, x5, x6) = U14_GGA(x1, x2, x6) ISGREATER_IN_GG(x1, x2) = ISGREATER_IN_GG(x1, x2) U68_GG(x1, x2, x3) = U68_GG(x3) U69_GG(x1, x2, x3) = U69_GG(x3) U15_GGA(x1, x2, x3, x4, x5, x6) = U15_GGA(x1, x2, x6) U16_GGA(x1, x2, x3, x4, x5, x6, x7) = U16_GGA(x1, x2, x6, x7) U17_GGA(x1, x2, x3, x4) = U17_GGA(x1, x2, x4) U18_GGA(x1, x2, x3, x4) = U18_GGA(x2, x4) ISMODULO_IN_GGA(x1, x2, x3) = ISMODULO_IN_GGA(x1, x2) U65_GGA(x1, x2, x3, x4) = U65_GGA(x1, x2, x4) ISDIV_IN_GGA(x1, x2, x3) = ISDIV_IN_GGA(x1, x2) U53_GGA(x1, x2, x3) = U53_GGA(x3) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) U39_GGA(x1, x2, x3) = U39_GGA(x3) U40_GGA(x1, x2, x3) = U40_GGA(x3) U41_GGA(x1, x2, x3, x4) = U41_GGA(x4) U42_GGA(x1, x2, x3, x4) = U42_GGA(x4) U43_GGA(x1, x2, x3, x4) = U43_GGA(x4) U44_GGA(x1, x2, x3, x4) = U44_GGA(x4) U54_GGA(x1, x2, x3, x4) = U54_GGA(x2, x4) U55_GGA(x1, x2, x3, x4) = U55_GGA(x4) U56_GGA(x1, x2, x3, x4) = U56_GGA(x1, x4) U57_GGA(x1, x2, x3, x4) = U57_GGA(x4) U59_GGA(x1, x2, x3) = U59_GGA(x3) U60_GGA(x1, x2, x3, x4) = U60_GGA(x2, x4) U61_GGA(x1, x2, x3, x4) = U61_GGA(x4) U62_GGA(x1, x2, x3, x4) = U62_GGA(x2, x4) U63_GGA(x1, x2, x3, x4) = U63_GGA(x4) U64_GGA(x1, x2, x3, x4) = U64_GGA(x4) U58_GGA(x1, x2, x3, x4) = U58_GGA(x4) U66_GGA(x1, x2, x3, x4) = U66_GGA(x1, x4) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) U45_GGA(x1, x2, x3, x4) = U45_GGA(x1, x4) U47_GGA(x1, x2, x3, x4) = U47_GGA(x1, x4) U49_GGA(x1, x2, x3, x4) = U49_GGA(x1, x4) U51_GGA(x1, x2, x3, x4) = U51_GGA(x1, x4) U52_GGA(x1, x2, x3, x4) = U52_GGA(x4) U50_GGA(x1, x2, x3, x4) = U50_GGA(x4) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) 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) U48_GGA(x1, x2, x3, x4) = U48_GGA(x4) U46_GGA(x1, x2, x3, x4) = U46_GGA(x4) U67_GGA(x1, x2, x3, x4) = U67_GGA(x4) U19_GGA(x1, x2, x3, x4) = U19_GGA(x2, x4) U20_GGA(x1, x2, x3, x4) = U20_GGA(x4) U28_GGA(x1, x2, x3, x4) = U28_GGA(x1, x2, x4) U29_GGA(x1, x2, x3, x4, x5) = U29_GGA(x1, x2, x4, x5) U30_GGA(x1, x2, x3, x4, x5, x6) = U30_GGA(x1, x2, x6) ISLESS_IN_GG(x1, x2) = ISLESS_IN_GG(x1, x2) U70_GG(x1, x2, x3) = U70_GG(x3) U71_GG(x1, x2, x3) = U71_GG(x3) U31_GGA(x1, x2, x3, x4) = U31_GGA(x1, x2, x4) U32_GGA(x1, x2, x3, x4, x5) = U32_GGA(x1, x2, x4, x5) U33_GGA(x1, x2, x3, x4) = U33_GGA(x1, x2, x4) U34_GGA(x1, x2, x3, x4) = U34_GGA(x4) U21_GGA(x1, x2, x3, x4, x5, x6) = U21_GGA(x1, x2, x6) =_IN_GG(x1, x2) = =_IN_GG(x1, x2) U22_GGA(x1, x2, x3, x4, x5, x6) = U22_GGA(x1, x2, x6) U23_GGA(x1, x2, x3, x4, x5, x6, x7) = U23_GGA(x1, x2, x6, x7) U24_GGA(x1, x2, x3, x4) = U24_GGA(x1, x2, x4) U25_GGA(x1, x2, x3, x4) = U25_GGA(x2, x4) U26_GGA(x1, x2, x3, x4) = U26_GGA(x2, x4) U27_GGA(x1, x2, x3, x4) = U27_GGA(x4) U2_GA(x1, x2, x3) = U2_GA(x1, x2, x3) U3_GA(x1, x2, x3, x4) = U3_GA(x1, x2, x3, x4) U4_GA(x1, x2, x3) = U4_GA(x1, x2, x3) U5_GA(x1, x2, x3, x4, x5) = U5_GA(x1, x2, x5) U6_GA(x1, x2, x3, x4, x5, x6) = U6_GA(x1, x2, x5, x6) U7_GA(x1, x2, x3, x4, x5, x6, x7) = U7_GA(x1, x2, x5, x6, x7) U8_GA(x1, x2, x3, x4, x5, x6) = U8_GA(x1, x2, x5, x6) U9_GA(x1, x2, x3, x4, x5) = U9_GA(x5) U10_GA(x1, x2, x3, x4, x5, x6) = U10_GA(x5, x6) U11_GA(x1, x2, x3, x4, x5) = U11_GA(x3, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (13) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 12 SCCs with 87 less nodes. ---------------------------------------- (14) Complex Obligation (AND) ---------------------------------------- (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) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x3) U69_gg(x1, x2, x3) = U69_gg(x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x3) U53_gga(x1, x2, x3) = U53_gga(x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U54_gga(x1, x2, x3, x4) = U54_gga(x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x4) U59_gga(x1, x2, x3) = U59_gga(x3) U60_gga(x1, x2, x3, x4) = U60_gga(x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x4) U62_gga(x1, x2, x3, x4) = U62_gga(x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x4) U64_gga(x1, x2, x3, x4) = U64_gga(x4) U58_gga(x1, x2, x3, x4) = U58_gga(x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x4) U50_gga(x1, x2, x3, x4) = U50_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_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) U48_gga(x1, x2, x3, x4) = U48_gga(x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) U67_gga(x1, x2, x3, x4) = U67_gga(x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x3) U19_gga(x1, x2, x3, x4) = U19_gga(x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U70_gg(x1, x2, x3) = U70_gg(x3) U71_gg(x1, x2, x3) = U71_gg(x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x3, x5) ISLESS_IN_GG(x1, x2) = ISLESS_IN_GG(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (16) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (17) 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 ---------------------------------------- (18) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (19) 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. ---------------------------------------- (20) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *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 ---------------------------------------- (21) YES ---------------------------------------- (22) 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: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x3) U69_gg(x1, x2, x3) = U69_gg(x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x3) U53_gga(x1, x2, x3) = U53_gga(x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U54_gga(x1, x2, x3, x4) = U54_gga(x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x4) U59_gga(x1, x2, x3) = U59_gga(x3) U60_gga(x1, x2, x3, x4) = U60_gga(x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x4) U62_gga(x1, x2, x3, x4) = U62_gga(x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x4) U64_gga(x1, x2, x3, x4) = U64_gga(x4) U58_gga(x1, x2, x3, x4) = U58_gga(x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x4) U50_gga(x1, x2, x3, x4) = U50_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_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) U48_gga(x1, x2, x3, x4) = U48_gga(x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) U67_gga(x1, x2, x3, x4) = U67_gga(x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x3) U19_gga(x1, x2, x3, x4) = U19_gga(x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U70_gg(x1, x2, x3) = U70_gg(x3) U71_gg(x1, x2, x3) = U71_gg(x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x3, x5) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (23) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (24) 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 ---------------------------------------- (25) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (26) 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. ---------------------------------------- (27) 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 ---------------------------------------- (28) YES ---------------------------------------- (29) 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: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x3) U69_gg(x1, x2, x3) = U69_gg(x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x3) U53_gga(x1, x2, x3) = U53_gga(x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U54_gga(x1, x2, x3, x4) = U54_gga(x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x4) U59_gga(x1, x2, x3) = U59_gga(x3) U60_gga(x1, x2, x3, x4) = U60_gga(x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x4) U62_gga(x1, x2, x3, x4) = U62_gga(x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x4) U64_gga(x1, x2, x3, x4) = U64_gga(x4) U58_gga(x1, x2, x3, x4) = U58_gga(x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x4) U50_gga(x1, x2, x3, x4) = U50_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_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) U48_gga(x1, x2, x3, x4) = U48_gga(x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) U67_gga(x1, x2, x3, x4) = U67_gga(x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x3) U19_gga(x1, x2, x3, x4) = U19_gga(x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U70_gg(x1, x2, x3) = U70_gg(x3) U71_gg(x1, x2, x3) = U71_gg(x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x3, x5) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (30) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (31) 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 ---------------------------------------- (32) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (33) 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. ---------------------------------------- (34) 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 ---------------------------------------- (35) YES ---------------------------------------- (36) 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: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x3) U69_gg(x1, x2, x3) = U69_gg(x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x3) U53_gga(x1, x2, x3) = U53_gga(x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U54_gga(x1, x2, x3, x4) = U54_gga(x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x4) U59_gga(x1, x2, x3) = U59_gga(x3) U60_gga(x1, x2, x3, x4) = U60_gga(x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x4) U62_gga(x1, x2, x3, x4) = U62_gga(x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x4) U64_gga(x1, x2, x3, x4) = U64_gga(x4) U58_gga(x1, x2, x3, x4) = U58_gga(x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x4) U50_gga(x1, x2, x3, x4) = U50_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_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) U48_gga(x1, x2, x3, x4) = U48_gga(x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) U67_gga(x1, x2, x3, x4) = U67_gga(x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x3) U19_gga(x1, x2, x3, x4) = U19_gga(x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U70_gg(x1, x2, x3) = U70_gg(x3) U71_gg(x1, x2, x3) = U71_gg(x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x3, x5) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (37) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (38) 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 ---------------------------------------- (39) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (40) 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. ---------------------------------------- (41) QDPSizeChangeProof (EQUIVALENT) By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs: *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 ---------------------------------------- (42) YES ---------------------------------------- (43) 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: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x3) U69_gg(x1, x2, x3) = U69_gg(x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x3) U53_gga(x1, x2, x3) = U53_gga(x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U54_gga(x1, x2, x3, x4) = U54_gga(x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x4) U59_gga(x1, x2, x3) = U59_gga(x3) U60_gga(x1, x2, x3, x4) = U60_gga(x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x4) U62_gga(x1, x2, x3, x4) = U62_gga(x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x4) U64_gga(x1, x2, x3, x4) = U64_gga(x4) U58_gga(x1, x2, x3, x4) = U58_gga(x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x4) U50_gga(x1, x2, x3, x4) = U50_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_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) U48_gga(x1, x2, x3, x4) = U48_gga(x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) U67_gga(x1, x2, x3, x4) = U67_gga(x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x3) U19_gga(x1, x2, x3, x4) = U19_gga(x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U70_gg(x1, x2, x3) = U70_gg(x3) U71_gg(x1, x2, x3) = U71_gg(x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x3, x5) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (44) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (45) 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 ---------------------------------------- (46) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (47) 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. ---------------------------------------- (48) 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 ---------------------------------------- (49) YES ---------------------------------------- (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) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x3) U69_gg(x1, x2, x3) = U69_gg(x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x3) U53_gga(x1, x2, x3) = U53_gga(x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U54_gga(x1, x2, x3, x4) = U54_gga(x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x4) U59_gga(x1, x2, x3) = U59_gga(x3) U60_gga(x1, x2, x3, x4) = U60_gga(x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x4) U62_gga(x1, x2, x3, x4) = U62_gga(x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x4) U64_gga(x1, x2, x3, x4) = U64_gga(x4) U58_gga(x1, x2, x3, x4) = U58_gga(x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x4) U50_gga(x1, x2, x3, x4) = U50_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_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) U48_gga(x1, x2, x3, x4) = U48_gga(x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) U67_gga(x1, x2, x3, x4) = U67_gga(x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x3) U19_gga(x1, x2, x3, x4) = U19_gga(x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U70_gg(x1, x2, x3) = U70_gg(x3) U71_gg(x1, x2, x3) = U71_gg(x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x3, x5) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (51) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (52) 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 ---------------------------------------- (53) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (54) 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. ---------------------------------------- (55) 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 ---------------------------------------- (56) YES ---------------------------------------- (57) Obligation: Pi DP problem: The TRS P consists of the following rules: ISDIV_IN_GGA(succ(X), succ(Y), succ(Z)) -> U54_GGA(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_GGA(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> ISDIV_IN_GGA(A, succ(Y), Z) ISDIV_IN_GGA(pred(X), succ(Y), Z) -> U62_GGA(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_GGA(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> ISDIV_IN_GGA(A, succ(Y), B) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x3) U69_gg(x1, x2, x3) = U69_gg(x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x3) U53_gga(x1, x2, x3) = U53_gga(x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U54_gga(x1, x2, x3, x4) = U54_gga(x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x4) U59_gga(x1, x2, x3) = U59_gga(x3) U60_gga(x1, x2, x3, x4) = U60_gga(x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x4) U62_gga(x1, x2, x3, x4) = U62_gga(x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x4) U64_gga(x1, x2, x3, x4) = U64_gga(x4) U58_gga(x1, x2, x3, x4) = U58_gga(x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x4) U50_gga(x1, x2, x3, x4) = U50_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_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) U48_gga(x1, x2, x3, x4) = U48_gga(x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) U67_gga(x1, x2, x3, x4) = U67_gga(x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x3) U19_gga(x1, x2, x3, x4) = U19_gga(x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U70_gg(x1, x2, x3) = U70_gg(x3) U71_gg(x1, x2, x3) = U71_gg(x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x3, x5) ISDIV_IN_GGA(x1, x2, x3) = ISDIV_IN_GGA(x1, x2) U54_GGA(x1, x2, x3, x4) = U54_GGA(x2, x4) U62_GGA(x1, x2, x3, x4) = U62_GGA(x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (58) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (59) Obligation: Pi DP problem: The TRS P consists of the following rules: ISDIV_IN_GGA(succ(X), succ(Y), succ(Z)) -> U54_GGA(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_GGA(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> ISDIV_IN_GGA(A, succ(Y), Z) ISDIV_IN_GGA(pred(X), succ(Y), Z) -> U62_GGA(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_GGA(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> ISDIV_IN_GGA(A, succ(Y), B) The TRS R consists of the following rules: isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) 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) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) ISDIV_IN_GGA(x1, x2, x3) = ISDIV_IN_GGA(x1, x2) U54_GGA(x1, x2, x3, x4) = U54_GGA(x2, x4) U62_GGA(x1, x2, x3, x4) = U62_GGA(x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (60) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (61) Obligation: Q DP problem: The TRS P consists of the following rules: ISDIV_IN_GGA(succ(X), succ(Y)) -> U54_GGA(Y, isMinus_in_gga(succ(X), succ(Y))) U54_GGA(Y, isMinus_out_gga(A)) -> ISDIV_IN_GGA(A, succ(Y)) ISDIV_IN_GGA(pred(X), succ(Y)) -> U62_GGA(Y, isMinus_in_gga(zero, pred(X))) U62_GGA(Y, isMinus_out_gga(A)) -> ISDIV_IN_GGA(A, succ(Y)) The TRS R consists of the following rules: isMinus_in_gga(succ(X), succ(Y)) -> U41_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(zero, pred(Y)) -> U40_gga(isMinus_in_gga(zero, Y)) U41_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) U40_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X) isMinus_in_gga(zero, succ(Y)) -> U39_gga(isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U42_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U43_gga(isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U44_gga(isMinus_in_gga(X, Y)) U39_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(Z)) U42_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(succ(succ(Z))) U43_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(pred(pred(Z))) U44_gga(isMinus_out_gga(Z)) -> isMinus_out_gga(Z) The set Q consists of the following terms: isMinus_in_gga(x0, x1) U41_gga(x0) U40_gga(x0) U39_gga(x0) U42_gga(x0) U43_gga(x0) U44_gga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (62) Obligation: Pi DP problem: The TRS P consists of the following rules: ISDIV_IN_GGA(succ(X), pred(Y), Z) -> U56_GGA(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_GGA(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> ISDIV_IN_GGA(succ(X), A, B) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x3) U69_gg(x1, x2, x3) = U69_gg(x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x3) U53_gga(x1, x2, x3) = U53_gga(x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U54_gga(x1, x2, x3, x4) = U54_gga(x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x4) U59_gga(x1, x2, x3) = U59_gga(x3) U60_gga(x1, x2, x3, x4) = U60_gga(x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x4) U62_gga(x1, x2, x3, x4) = U62_gga(x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x4) U64_gga(x1, x2, x3, x4) = U64_gga(x4) U58_gga(x1, x2, x3, x4) = U58_gga(x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x4) U50_gga(x1, x2, x3, x4) = U50_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_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) U48_gga(x1, x2, x3, x4) = U48_gga(x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) U67_gga(x1, x2, x3, x4) = U67_gga(x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x3) U19_gga(x1, x2, x3, x4) = U19_gga(x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U70_gg(x1, x2, x3) = U70_gg(x3) U71_gg(x1, x2, x3) = U71_gg(x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x3, x5) ISDIV_IN_GGA(x1, x2, x3) = ISDIV_IN_GGA(x1, x2) U56_GGA(x1, x2, x3, x4) = U56_GGA(x1, x4) 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: ISDIV_IN_GGA(succ(X), pred(Y), Z) -> U56_GGA(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_GGA(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> ISDIV_IN_GGA(succ(X), A, B) The TRS R consists of the following rules: isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) 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) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) ISDIV_IN_GGA(x1, x2, x3) = ISDIV_IN_GGA(x1, x2) U56_GGA(x1, x2, x3, x4) = U56_GGA(x1, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (65) Obligation: Pi DP problem: The TRS P consists of the following rules: ISDIV_IN_GGA(pred(X), pred(Y), succ(Z)) -> U60_GGA(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_GGA(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> ISDIV_IN_GGA(A, pred(Y), Z) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x3) U69_gg(x1, x2, x3) = U69_gg(x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x3) U53_gga(x1, x2, x3) = U53_gga(x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U54_gga(x1, x2, x3, x4) = U54_gga(x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x4) U59_gga(x1, x2, x3) = U59_gga(x3) U60_gga(x1, x2, x3, x4) = U60_gga(x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x4) U62_gga(x1, x2, x3, x4) = U62_gga(x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x4) U64_gga(x1, x2, x3, x4) = U64_gga(x4) U58_gga(x1, x2, x3, x4) = U58_gga(x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x4) U50_gga(x1, x2, x3, x4) = U50_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_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) U48_gga(x1, x2, x3, x4) = U48_gga(x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) U67_gga(x1, x2, x3, x4) = U67_gga(x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x3) U19_gga(x1, x2, x3, x4) = U19_gga(x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U70_gg(x1, x2, x3) = U70_gg(x3) U71_gg(x1, x2, x3) = U71_gg(x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x3, x5) ISDIV_IN_GGA(x1, x2, x3) = ISDIV_IN_GGA(x1, x2) U60_GGA(x1, x2, x3, x4) = U60_GGA(x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (66) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (67) Obligation: Pi DP problem: The TRS P consists of the following rules: ISDIV_IN_GGA(pred(X), pred(Y), succ(Z)) -> U60_GGA(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_GGA(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> ISDIV_IN_GGA(A, pred(Y), Z) The TRS R consists of the following rules: isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) 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) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) ISDIV_IN_GGA(x1, x2, x3) = ISDIV_IN_GGA(x1, x2) U60_GGA(x1, x2, x3, x4) = U60_GGA(x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (68) 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: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x3) U69_gg(x1, x2, x3) = U69_gg(x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x3) U53_gga(x1, x2, x3) = U53_gga(x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U54_gga(x1, x2, x3, x4) = U54_gga(x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x4) U59_gga(x1, x2, x3) = U59_gga(x3) U60_gga(x1, x2, x3, x4) = U60_gga(x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x4) U62_gga(x1, x2, x3, x4) = U62_gga(x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x4) U64_gga(x1, x2, x3, x4) = U64_gga(x4) U58_gga(x1, x2, x3, x4) = U58_gga(x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x4) U50_gga(x1, x2, x3, x4) = U50_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_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) U48_gga(x1, x2, x3, x4) = U48_gga(x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) U67_gga(x1, x2, x3, x4) = U67_gga(x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x3) U19_gga(x1, x2, x3, x4) = U19_gga(x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U70_gg(x1, x2, x3) = U70_gg(x3) U71_gg(x1, x2, x3) = U71_gg(x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x3, x5) ISGREATER_IN_GG(x1, x2) = ISGREATER_IN_GG(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (69) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (70) 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 ---------------------------------------- (71) Obligation: Pi DP problem: The TRS P consists of the following rules: U12_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> U13_GGA(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_GGA(X, Y, Divisor, X1, X2, isGreater_in_gg(X1, X2)) U14_GGA(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_GGA(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_GGA(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_GGA(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_GGA(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U18_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_GGA(X, Y, Divisor, =_in_ag(Remainder, U)) U19_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> GCD_IN_GGA(Y, Remainder, Divisor) GCD_IN_GGA(X, Y, Divisor) -> U12_GGA(X, Y, Divisor, =_in_ag(X1, X)) GCD_IN_GGA(X, Y, Divisor) -> U28_GGA(X, Y, Divisor, =_in_ag(X3, X)) U28_GGA(X, Y, Divisor, =_out_ag(X3, X)) -> U29_GGA(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_GGA(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_GGA(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) U30_GGA(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_GGA(X, Y, Divisor, =_in_ag(X1, X)) U31_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> U32_GGA(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_GGA(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_GGA(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_GGA(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> GCD_IN_GGA(Y, X, Divisor) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_GGA(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) U21_GGA(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_GGA(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_GGA(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_GGA(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_GGA(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_GGA(X, Y, Divisor, =_in_ag(Remainder, U)) U26_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> GCD_IN_GGA(Y, Remainder, Divisor) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x3) U69_gg(x1, x2, x3) = U69_gg(x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x3) U53_gga(x1, x2, x3) = U53_gga(x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U54_gga(x1, x2, x3, x4) = U54_gga(x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x4) U59_gga(x1, x2, x3) = U59_gga(x3) U60_gga(x1, x2, x3, x4) = U60_gga(x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x4) U62_gga(x1, x2, x3, x4) = U62_gga(x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x4) U64_gga(x1, x2, x3, x4) = U64_gga(x4) U58_gga(x1, x2, x3, x4) = U58_gga(x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x4) U50_gga(x1, x2, x3, x4) = U50_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_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) U48_gga(x1, x2, x3, x4) = U48_gga(x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) U67_gga(x1, x2, x3, x4) = U67_gga(x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x3) U19_gga(x1, x2, x3, x4) = U19_gga(x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U70_gg(x1, x2, x3) = U70_gg(x3) U71_gg(x1, x2, x3) = U71_gg(x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x3, x5) GCD_IN_GGA(x1, x2, x3) = GCD_IN_GGA(x1, x2) U12_GGA(x1, x2, x3, x4) = U12_GGA(x1, x2, x4) U13_GGA(x1, x2, x3, x4, x5) = U13_GGA(x1, x2, x4, x5) U14_GGA(x1, x2, x3, x4, x5, x6) = U14_GGA(x1, x2, x6) U15_GGA(x1, x2, x3, x4, x5, x6) = U15_GGA(x1, x2, x6) U16_GGA(x1, x2, x3, x4, x5, x6, x7) = U16_GGA(x1, x2, x6, x7) U17_GGA(x1, x2, x3, x4) = U17_GGA(x1, x2, x4) U18_GGA(x1, x2, x3, x4) = U18_GGA(x2, x4) U19_GGA(x1, x2, x3, x4) = U19_GGA(x2, x4) U28_GGA(x1, x2, x3, x4) = U28_GGA(x1, x2, x4) U29_GGA(x1, x2, x3, x4, x5) = U29_GGA(x1, x2, x4, x5) U30_GGA(x1, x2, x3, x4, x5, x6) = U30_GGA(x1, x2, x6) U31_GGA(x1, x2, x3, x4) = U31_GGA(x1, x2, x4) U32_GGA(x1, x2, x3, x4, x5) = U32_GGA(x1, x2, x4, x5) U33_GGA(x1, x2, x3, x4) = U33_GGA(x1, x2, x4) U21_GGA(x1, x2, x3, x4, x5, x6) = U21_GGA(x1, x2, x6) U22_GGA(x1, x2, x3, x4, x5, x6) = U22_GGA(x1, x2, x6) U23_GGA(x1, x2, x3, x4, x5, x6, x7) = U23_GGA(x1, x2, x6, x7) U24_GGA(x1, x2, x3, x4) = U24_GGA(x1, x2, x4) U25_GGA(x1, x2, x3, x4) = U25_GGA(x2, x4) U26_GGA(x1, x2, x3, x4) = U26_GGA(x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (72) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (73) Obligation: Pi DP problem: The TRS P consists of the following rules: U12_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> U13_GGA(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_GGA(X, Y, Divisor, X1, X2, isGreater_in_gg(X1, X2)) U14_GGA(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_GGA(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_GGA(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_GGA(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_GGA(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U18_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_GGA(X, Y, Divisor, =_in_ag(Remainder, U)) U19_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> GCD_IN_GGA(Y, Remainder, Divisor) GCD_IN_GGA(X, Y, Divisor) -> U12_GGA(X, Y, Divisor, =_in_ag(X1, X)) GCD_IN_GGA(X, Y, Divisor) -> U28_GGA(X, Y, Divisor, =_in_ag(X3, X)) U28_GGA(X, Y, Divisor, =_out_ag(X3, X)) -> U29_GGA(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_GGA(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_GGA(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) U30_GGA(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_GGA(X, Y, Divisor, =_in_ag(X1, X)) U31_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> U32_GGA(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_GGA(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_GGA(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_GGA(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> GCD_IN_GGA(Y, X, Divisor) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_GGA(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) U21_GGA(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_GGA(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_GGA(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_GGA(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_GGA(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_GGA(X, Y, Divisor, =_in_ag(Remainder, U)) U26_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> GCD_IN_GGA(Y, Remainder, Divisor) 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) =_in_gg(X, X) -> =_out_gg(X, X) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_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)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), succ(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) The argument filtering Pi contains the following mapping: zero = zero =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) 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) U68_gg(x1, x2, x3) = U68_gg(x3) U69_gg(x1, x2, x3) = U69_gg(x3) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x3) U53_gga(x1, x2, x3) = U53_gga(x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U54_gga(x1, x2, x3, x4) = U54_gga(x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x4) U59_gga(x1, x2, x3) = U59_gga(x3) U60_gga(x1, x2, x3, x4) = U60_gga(x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x4) U62_gga(x1, x2, x3, x4) = U62_gga(x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x4) U64_gga(x1, x2, x3, x4) = U64_gga(x4) U58_gga(x1, x2, x3, x4) = U58_gga(x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x4) U50_gga(x1, x2, x3, x4) = U50_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_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) U48_gga(x1, x2, x3, x4) = U48_gga(x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) U67_gga(x1, x2, x3, x4) = U67_gga(x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U70_gg(x1, x2, x3) = U70_gg(x3) U71_gg(x1, x2, x3) = U71_gg(x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg GCD_IN_GGA(x1, x2, x3) = GCD_IN_GGA(x1, x2) U12_GGA(x1, x2, x3, x4) = U12_GGA(x1, x2, x4) U13_GGA(x1, x2, x3, x4, x5) = U13_GGA(x1, x2, x4, x5) U14_GGA(x1, x2, x3, x4, x5, x6) = U14_GGA(x1, x2, x6) U15_GGA(x1, x2, x3, x4, x5, x6) = U15_GGA(x1, x2, x6) U16_GGA(x1, x2, x3, x4, x5, x6, x7) = U16_GGA(x1, x2, x6, x7) U17_GGA(x1, x2, x3, x4) = U17_GGA(x1, x2, x4) U18_GGA(x1, x2, x3, x4) = U18_GGA(x2, x4) U19_GGA(x1, x2, x3, x4) = U19_GGA(x2, x4) U28_GGA(x1, x2, x3, x4) = U28_GGA(x1, x2, x4) U29_GGA(x1, x2, x3, x4, x5) = U29_GGA(x1, x2, x4, x5) U30_GGA(x1, x2, x3, x4, x5, x6) = U30_GGA(x1, x2, x6) U31_GGA(x1, x2, x3, x4) = U31_GGA(x1, x2, x4) U32_GGA(x1, x2, x3, x4, x5) = U32_GGA(x1, x2, x4, x5) U33_GGA(x1, x2, x3, x4) = U33_GGA(x1, x2, x4) U21_GGA(x1, x2, x3, x4, x5, x6) = U21_GGA(x1, x2, x6) U22_GGA(x1, x2, x3, x4, x5, x6) = U22_GGA(x1, x2, x6) U23_GGA(x1, x2, x3, x4, x5, x6, x7) = U23_GGA(x1, x2, x6, x7) U24_GGA(x1, x2, x3, x4) = U24_GGA(x1, x2, x4) U25_GGA(x1, x2, x3, x4) = U25_GGA(x2, x4) U26_GGA(x1, x2, x3, x4) = U26_GGA(x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (74) Obligation: Pi DP problem: The TRS P consists of the following rules: REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> U5_GA(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_GA(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_GA(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_GA(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_GA(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_GA(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_GA(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> REDUCE_IN_GA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x3) U69_gg(x1, x2, x3) = U69_gg(x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x3) U53_gga(x1, x2, x3) = U53_gga(x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U54_gga(x1, x2, x3, x4) = U54_gga(x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x4) U59_gga(x1, x2, x3) = U59_gga(x3) U60_gga(x1, x2, x3, x4) = U60_gga(x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x4) U62_gga(x1, x2, x3, x4) = U62_gga(x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x4) U64_gga(x1, x2, x3, x4) = U64_gga(x4) U58_gga(x1, x2, x3, x4) = U58_gga(x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x4) U50_gga(x1, x2, x3, x4) = U50_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_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) U48_gga(x1, x2, x3, x4) = U48_gga(x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) U67_gga(x1, x2, x3, x4) = U67_gga(x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x3) U19_gga(x1, x2, x3, x4) = U19_gga(x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U70_gg(x1, x2, x3) = U70_gg(x3) U71_gg(x1, x2, x3) = U71_gg(x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x3, x5) REDUCE_IN_GA(x1, x2) = REDUCE_IN_GA(x1) U5_GA(x1, x2, x3, x4, x5) = U5_GA(x1, x2, x5) U6_GA(x1, x2, x3, x4, x5, x6) = U6_GA(x1, x2, x5, x6) U7_GA(x1, x2, x3, x4, x5, x6, x7) = U7_GA(x1, x2, x5, x6, x7) U8_GA(x1, x2, x3, x4, x5, x6) = U8_GA(x1, x2, x5, x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (75) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (76) Obligation: Pi DP problem: The TRS P consists of the following rules: REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> U5_GA(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_GA(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_GA(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_GA(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_GA(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_GA(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_GA(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> REDUCE_IN_GA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) The TRS R consists of the following rules: gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) =_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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, isGreater_in_gg(X1, X2)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) =_in_gg(X, X) -> =_out_gg(X, X) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_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)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), succ(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) The argument filtering Pi contains the following mapping: frac(x1, x2) = frac(x1, x2) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x3) U69_gg(x1, x2, x3) = U69_gg(x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x3) U53_gga(x1, x2, x3) = U53_gga(x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U39_gga(x1, x2, x3) = U39_gga(x3) U40_gga(x1, x2, x3) = U40_gga(x3) U41_gga(x1, x2, x3, x4) = U41_gga(x4) U42_gga(x1, x2, x3, x4) = U42_gga(x4) U43_gga(x1, x2, x3, x4) = U43_gga(x4) U44_gga(x1, x2, x3, x4) = U44_gga(x4) U54_gga(x1, x2, x3, x4) = U54_gga(x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x4) U59_gga(x1, x2, x3) = U59_gga(x3) U60_gga(x1, x2, x3, x4) = U60_gga(x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x4) U62_gga(x1, x2, x3, x4) = U62_gga(x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x4) U64_gga(x1, x2, x3, x4) = U64_gga(x4) U58_gga(x1, x2, x3, x4) = U58_gga(x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x4) U50_gga(x1, x2, x3, x4) = U50_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_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) U48_gga(x1, x2, x3, x4) = U48_gga(x4) U46_gga(x1, x2, x3, x4) = U46_gga(x4) U67_gga(x1, x2, x3, x4) = U67_gga(x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x3) U19_gga(x1, x2, x3, x4) = U19_gga(x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U70_gg(x1, x2, x3) = U70_gg(x3) U71_gg(x1, x2, x3) = U71_gg(x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x4) //(x1, x2) = //(x1, x2) REDUCE_IN_GA(x1, x2) = REDUCE_IN_GA(x1) U5_GA(x1, x2, x3, x4, x5) = U5_GA(x1, x2, x5) U6_GA(x1, x2, x3, x4, x5, x6) = U6_GA(x1, x2, x5, x6) U7_GA(x1, x2, x3, x4, x5, x6, x7) = U7_GA(x1, x2, x5, x6, x7) U8_GA(x1, x2, x3, x4, x5, x6) = U8_GA(x1, x2, x5, x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (77) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: reduce_in_2: (b,f) gcd_in_3: (b,b,f) isGreater_in_2: (b,b) isModulo_in_3: (b,b,f) isDiv_in_3: (b,b,f) isMinus_in_3: (b,b,f) isTimes_in_3: (b,b,f) isPlus_in_3: (b,b,f) 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: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2, x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x1, x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x1, x2, x3) U53_gga(x1, x2, x3) = U53_gga(x1, x2, x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U54_gga(x1, x2, x3, x4) = U54_gga(x1, x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x1, x2, x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x2, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x1, x2, x4) U59_gga(x1, x2, x3) = U59_gga(x1, x2, x3) U60_gga(x1, x2, x3, x4) = U60_gga(x1, x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x1, x2, x4) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x1, x2, x4) U64_gga(x1, x2, x3, x4) = U64_gga(x1, x2, x4) U58_gga(x1, x2, x3, x4) = U58_gga(x1, x2, x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x2, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_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) 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) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U67_gga(x1, x2, x3, x4) = U67_gga(x1, x2, x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x1, x2, x3) U19_gga(x1, x2, x3, x4) = U19_gga(x1, x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x1, x2, x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x1, x2, x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x1, x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x1, x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x1, x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x1, x2, x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x1, x2, x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x1, x2, x3, x5) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (78) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2, x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x1, x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x1, x2, x3) U53_gga(x1, x2, x3) = U53_gga(x1, x2, x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U54_gga(x1, x2, x3, x4) = U54_gga(x1, x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x1, x2, x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x2, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x1, x2, x4) U59_gga(x1, x2, x3) = U59_gga(x1, x2, x3) U60_gga(x1, x2, x3, x4) = U60_gga(x1, x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x1, x2, x4) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x1, x2, x4) U64_gga(x1, x2, x3, x4) = U64_gga(x1, x2, x4) U58_gga(x1, x2, x3, x4) = U58_gga(x1, x2, x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x2, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_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) 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) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U67_gga(x1, x2, x3, x4) = U67_gga(x1, x2, x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x1, x2, x3) U19_gga(x1, x2, x3, x4) = U19_gga(x1, x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x1, x2, x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x1, x2, x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x1, x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x1, x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x1, x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x1, x2, x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x1, x2, x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x1, x2, x3, x5) ---------------------------------------- (79) 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: REDUCE_IN_GA(frac(C, D), frac(C, D)) -> U1_GA(C, D, gcd_in_gga(C, D, Gcd)) REDUCE_IN_GA(frac(C, D), frac(C, D)) -> GCD_IN_GGA(C, D, Gcd) GCD_IN_GGA(X, Y, Divisor) -> U12_GGA(X, Y, Divisor, =_in_ag(X1, X)) GCD_IN_GGA(X, Y, Divisor) -> =_IN_AG(X1, X) U12_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> U13_GGA(X, Y, Divisor, X1, =_in_ag(X2, Y)) U12_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> =_IN_AG(X2, Y) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_GGA(X, Y, Divisor, X1, X2, isGreater_in_gg(X1, X2)) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> ISGREATER_IN_GG(X1, X2) ISGREATER_IN_GG(succ(X), succ(Y)) -> U68_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)) -> U69_GG(X, Y, isGreater_in_gg(X, Y)) ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) U14_GGA(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_GGA(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U14_GGA(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> =_IN_AG(X3, Y) U15_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_GGA(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U15_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> =_IN_AG(X4, zero) U16_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_GGA(X, Y, Divisor, isGreater_in_gg(X3, X4)) U16_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U17_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_GGA(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U17_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> ISMODULO_IN_GGA(X, Y, U) ISMODULO_IN_GGA(X, Y, Z) -> U65_GGA(X, Y, Z, isDiv_in_gga(X, Y, A)) ISMODULO_IN_GGA(X, Y, Z) -> ISDIV_IN_GGA(X, Y, A) ISDIV_IN_GGA(succ(X), succ(Y), zero) -> U53_GGA(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) ISDIV_IN_GGA(succ(X), succ(Y), zero) -> ISMINUS_IN_GGA(succ(X), succ(Y), pred(Z)) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> U39_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)) -> U40_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) -> U41_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))) -> U42_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))) -> U43_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) -> U44_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISDIV_IN_GGA(succ(X), succ(Y), succ(Z)) -> U54_GGA(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) ISDIV_IN_GGA(succ(X), succ(Y), succ(Z)) -> ISMINUS_IN_GGA(succ(X), succ(Y), A) U54_GGA(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_GGA(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) U54_GGA(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> ISDIV_IN_GGA(A, succ(Y), Z) ISDIV_IN_GGA(succ(X), pred(Y), Z) -> U56_GGA(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) ISDIV_IN_GGA(succ(X), pred(Y), Z) -> ISMINUS_IN_GGA(zero, pred(Y), A) U56_GGA(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_GGA(X, Y, Z, isDiv_in_gga(succ(X), A, B)) U56_GGA(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> ISDIV_IN_GGA(succ(X), A, B) ISDIV_IN_GGA(pred(X), pred(Y), zero) -> U59_GGA(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) ISDIV_IN_GGA(pred(X), pred(Y), zero) -> ISMINUS_IN_GGA(pred(X), pred(Y), succ(Z)) ISDIV_IN_GGA(pred(X), pred(Y), succ(Z)) -> U60_GGA(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) ISDIV_IN_GGA(pred(X), pred(Y), succ(Z)) -> ISMINUS_IN_GGA(pred(X), pred(Y), A) U60_GGA(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_GGA(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) U60_GGA(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> ISDIV_IN_GGA(A, pred(Y), Z) ISDIV_IN_GGA(pred(X), succ(Y), Z) -> U62_GGA(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) ISDIV_IN_GGA(pred(X), succ(Y), Z) -> ISMINUS_IN_GGA(zero, pred(X), A) U62_GGA(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_GGA(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U62_GGA(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> ISDIV_IN_GGA(A, succ(Y), B) U63_GGA(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_GGA(X, Y, Z, isMinus_in_gga(zero, B, Z)) U63_GGA(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> ISMINUS_IN_GGA(zero, B, Z) U57_GGA(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_GGA(X, Y, Z, isMinus_in_gga(zero, B, Z)) U57_GGA(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> ISMINUS_IN_GGA(zero, B, Z) U65_GGA(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_GGA(X, Y, Z, isTimes_in_gga(A, Y, B)) U65_GGA(X, Y, Z, isDiv_out_gga(X, Y, A)) -> ISTIMES_IN_GGA(A, Y, B) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> U45_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) -> U47_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) -> U49_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) -> U51_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) U51_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_GGA(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U51_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISMINUS_IN_GGA(A, pred(X), Z) U49_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_GGA(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U49_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))) -> U35_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) -> U36_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) -> U37_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))) -> U38_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) U47_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_GGA(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U47_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISMINUS_IN_GGA(A, succ(X), Z) U45_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_GGA(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U45_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISPLUS_IN_GGA(A, succ(X), Z) U66_GGA(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_GGA(X, Y, Z, isMinus_in_gga(X, B, Z)) U66_GGA(X, Y, Z, isTimes_out_gga(A, Y, B)) -> ISMINUS_IN_GGA(X, B, Z) U18_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_GGA(X, Y, Divisor, =_in_ag(Remainder, U)) U18_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> =_IN_AG(Remainder, U) U19_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_GGA(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U19_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> GCD_IN_GGA(Y, Remainder, Divisor) GCD_IN_GGA(X, Y, Divisor) -> U28_GGA(X, Y, Divisor, =_in_ag(X3, X)) U28_GGA(X, Y, Divisor, =_out_ag(X3, X)) -> U29_GGA(X, Y, Divisor, X3, =_in_ag(X4, Y)) U28_GGA(X, Y, Divisor, =_out_ag(X3, X)) -> =_IN_AG(X4, Y) U29_GGA(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_GGA(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) U29_GGA(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> ISLESS_IN_GG(X3, X4) ISLESS_IN_GG(pred(X), pred(Y)) -> U70_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)) -> U71_GG(X, Y, isLess_in_gg(X, Y)) ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) U30_GGA(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_GGA(X, Y, Divisor, =_in_ag(X1, X)) U30_GGA(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> =_IN_AG(X1, X) U31_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> U32_GGA(X, Y, Divisor, X1, =_in_ag(X2, zero)) U31_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> =_IN_AG(X2, zero) U32_GGA(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_GGA(X, Y, Divisor, isGreater_in_gg(X1, X2)) U32_GGA(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> ISGREATER_IN_GG(X1, X2) U33_GGA(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_GGA(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U33_GGA(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> GCD_IN_GGA(Y, X, Divisor) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_GGA(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> =_IN_GG(X1, X2) U21_GGA(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_GGA(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U21_GGA(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> =_IN_AG(X3, Y) U22_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_GGA(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U22_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> =_IN_AG(X4, zero) U23_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_GGA(X, Y, Divisor, isGreater_in_gg(X3, X4)) U23_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U24_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_GGA(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U24_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> ISMODULO_IN_GGA(X, Y, U) U25_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_GGA(X, Y, Divisor, =_in_ag(Remainder, U)) U25_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> =_IN_AG(Remainder, U) U26_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_GGA(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U26_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> GCD_IN_GGA(Y, Remainder, Divisor) U1_GA(C, D, gcd_out_gga(C, D, Gcd)) -> U2_GA(C, D, =_in_ag(X, Gcd)) U1_GA(C, D, gcd_out_gga(C, D, Gcd)) -> =_IN_AG(X, Gcd) U2_GA(C, D, =_out_ag(X, Gcd)) -> U3_GA(C, D, X, =_in_ag(X1, succ(zero))) U2_GA(C, D, =_out_ag(X, Gcd)) -> =_IN_AG(X1, succ(zero)) U3_GA(C, D, X, =_out_ag(X1, succ(zero))) -> U4_GA(C, D, =_in_gg(X, X1)) U3_GA(C, D, X, =_out_ag(X1, succ(zero))) -> =_IN_GG(X, X1) REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> U5_GA(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> GCD_IN_GGA(C, D, Gcd) U5_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_GA(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U5_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> =_IN_AG(X, Gcd) U6_GA(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_GA(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U6_GA(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> =_IN_AG(X1, succ(zero)) U7_GA(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_GA(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U7_GA(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> ISGREATER_IN_GG(X, X1) U8_GA(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_GA(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U8_GA(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> REDUCE_IN_GA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) U9_GA(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_GA(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U9_GA(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> =_IN_AG(Cres, CRec) U10_GA(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_GA(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U10_GA(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> =_IN_AG(Dres, DRec) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2, x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x1, x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x1, x2, x3) U53_gga(x1, x2, x3) = U53_gga(x1, x2, x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U54_gga(x1, x2, x3, x4) = U54_gga(x1, x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x1, x2, x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x2, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x1, x2, x4) U59_gga(x1, x2, x3) = U59_gga(x1, x2, x3) U60_gga(x1, x2, x3, x4) = U60_gga(x1, x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x1, x2, x4) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x1, x2, x4) U64_gga(x1, x2, x3, x4) = U64_gga(x1, x2, x4) U58_gga(x1, x2, x3, x4) = U58_gga(x1, x2, x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x2, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_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) 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) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U67_gga(x1, x2, x3, x4) = U67_gga(x1, x2, x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x1, x2, x3) U19_gga(x1, x2, x3, x4) = U19_gga(x1, x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x1, x2, x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x1, x2, x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x1, x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x1, x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x1, x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x1, x2, x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x1, x2, x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x1, x2, x3, x5) REDUCE_IN_GA(x1, x2) = REDUCE_IN_GA(x1) U1_GA(x1, x2, x3) = U1_GA(x1, x2, x3) GCD_IN_GGA(x1, x2, x3) = GCD_IN_GGA(x1, x2) U12_GGA(x1, x2, x3, x4) = U12_GGA(x1, x2, x4) =_IN_AG(x1, x2) = =_IN_AG(x2) U13_GGA(x1, x2, x3, x4, x5) = U13_GGA(x1, x2, x4, x5) U14_GGA(x1, x2, x3, x4, x5, x6) = U14_GGA(x1, x2, x6) ISGREATER_IN_GG(x1, x2) = ISGREATER_IN_GG(x1, x2) U68_GG(x1, x2, x3) = U68_GG(x1, x2, x3) U69_GG(x1, x2, x3) = U69_GG(x1, x2, x3) U15_GGA(x1, x2, x3, x4, x5, x6) = U15_GGA(x1, x2, x6) U16_GGA(x1, x2, x3, x4, x5, x6, x7) = U16_GGA(x1, x2, x6, x7) U17_GGA(x1, x2, x3, x4) = U17_GGA(x1, x2, x4) U18_GGA(x1, x2, x3, x4) = U18_GGA(x1, x2, x4) ISMODULO_IN_GGA(x1, x2, x3) = ISMODULO_IN_GGA(x1, x2) U65_GGA(x1, x2, x3, x4) = U65_GGA(x1, x2, x4) ISDIV_IN_GGA(x1, x2, x3) = ISDIV_IN_GGA(x1, x2) U53_GGA(x1, x2, x3) = U53_GGA(x1, x2, x3) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) U39_GGA(x1, x2, x3) = U39_GGA(x1, x3) U40_GGA(x1, x2, x3) = U40_GGA(x1, x3) U41_GGA(x1, x2, x3, x4) = U41_GGA(x1, x2, x4) U42_GGA(x1, x2, x3, x4) = U42_GGA(x1, x2, x4) U43_GGA(x1, x2, x3, x4) = U43_GGA(x1, x2, x4) U44_GGA(x1, x2, x3, x4) = U44_GGA(x1, x2, x4) U54_GGA(x1, x2, x3, x4) = U54_GGA(x1, x2, x4) U55_GGA(x1, x2, x3, x4) = U55_GGA(x1, x2, x4) U56_GGA(x1, x2, x3, x4) = U56_GGA(x1, x2, x4) U57_GGA(x1, x2, x3, x4) = U57_GGA(x1, x2, x4) U59_GGA(x1, x2, x3) = U59_GGA(x1, x2, x3) U60_GGA(x1, x2, x3, x4) = U60_GGA(x1, x2, x4) U61_GGA(x1, x2, x3, x4) = U61_GGA(x1, x2, x4) U62_GGA(x1, x2, x3, x4) = U62_GGA(x1, x2, x4) U63_GGA(x1, x2, x3, x4) = U63_GGA(x1, x2, x4) U64_GGA(x1, x2, x3, x4) = U64_GGA(x1, x2, x4) U58_GGA(x1, x2, x3, x4) = U58_GGA(x1, x2, x4) U66_GGA(x1, x2, x3, x4) = U66_GGA(x1, x2, x4) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) U45_GGA(x1, x2, x3, x4) = U45_GGA(x1, x2, x4) U47_GGA(x1, x2, x3, x4) = U47_GGA(x1, x2, x4) U49_GGA(x1, x2, x3, x4) = U49_GGA(x1, x2, x4) U51_GGA(x1, x2, x3, x4) = U51_GGA(x1, x2, x4) U52_GGA(x1, x2, x3, x4) = U52_GGA(x1, x2, x4) U50_GGA(x1, x2, x3, x4) = U50_GGA(x1, x2, x4) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) 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) U48_GGA(x1, x2, x3, x4) = U48_GGA(x1, x2, x4) U46_GGA(x1, x2, x3, x4) = U46_GGA(x1, x2, x4) U67_GGA(x1, x2, x3, x4) = U67_GGA(x1, x2, x4) U19_GGA(x1, x2, x3, x4) = U19_GGA(x1, x2, x4) U20_GGA(x1, x2, x3, x4) = U20_GGA(x1, x2, x4) U28_GGA(x1, x2, x3, x4) = U28_GGA(x1, x2, x4) U29_GGA(x1, x2, x3, x4, x5) = U29_GGA(x1, x2, x4, x5) U30_GGA(x1, x2, x3, x4, x5, x6) = U30_GGA(x1, x2, x6) ISLESS_IN_GG(x1, x2) = ISLESS_IN_GG(x1, x2) U70_GG(x1, x2, x3) = U70_GG(x1, x2, x3) U71_GG(x1, x2, x3) = U71_GG(x1, x2, x3) U31_GGA(x1, x2, x3, x4) = U31_GGA(x1, x2, x4) U32_GGA(x1, x2, x3, x4, x5) = U32_GGA(x1, x2, x4, x5) U33_GGA(x1, x2, x3, x4) = U33_GGA(x1, x2, x4) U34_GGA(x1, x2, x3, x4) = U34_GGA(x1, x2, x4) U21_GGA(x1, x2, x3, x4, x5, x6) = U21_GGA(x1, x2, x6) =_IN_GG(x1, x2) = =_IN_GG(x1, x2) U22_GGA(x1, x2, x3, x4, x5, x6) = U22_GGA(x1, x2, x6) U23_GGA(x1, x2, x3, x4, x5, x6, x7) = U23_GGA(x1, x2, x6, x7) U24_GGA(x1, x2, x3, x4) = U24_GGA(x1, x2, x4) U25_GGA(x1, x2, x3, x4) = U25_GGA(x1, x2, x4) U26_GGA(x1, x2, x3, x4) = U26_GGA(x1, x2, x4) U27_GGA(x1, x2, x3, x4) = U27_GGA(x1, x2, x4) U2_GA(x1, x2, x3) = U2_GA(x1, x2, x3) U3_GA(x1, x2, x3, x4) = U3_GA(x1, x2, x3, x4) U4_GA(x1, x2, x3) = U4_GA(x1, x2, x3) U5_GA(x1, x2, x3, x4, x5) = U5_GA(x1, x2, x5) U6_GA(x1, x2, x3, x4, x5, x6) = U6_GA(x1, x2, x5, x6) U7_GA(x1, x2, x3, x4, x5, x6, x7) = U7_GA(x1, x2, x5, x6, x7) U8_GA(x1, x2, x3, x4, x5, x6) = U8_GA(x1, x2, x5, x6) U9_GA(x1, x2, x3, x4, x5) = U9_GA(x1, x2, x5) U10_GA(x1, x2, x3, x4, x5, x6) = U10_GA(x1, x2, x5, x6) U11_GA(x1, x2, x3, x4, x5) = U11_GA(x1, x2, x3, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (80) Obligation: Pi DP problem: The TRS P consists of the following rules: REDUCE_IN_GA(frac(C, D), frac(C, D)) -> U1_GA(C, D, gcd_in_gga(C, D, Gcd)) REDUCE_IN_GA(frac(C, D), frac(C, D)) -> GCD_IN_GGA(C, D, Gcd) GCD_IN_GGA(X, Y, Divisor) -> U12_GGA(X, Y, Divisor, =_in_ag(X1, X)) GCD_IN_GGA(X, Y, Divisor) -> =_IN_AG(X1, X) U12_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> U13_GGA(X, Y, Divisor, X1, =_in_ag(X2, Y)) U12_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> =_IN_AG(X2, Y) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_GGA(X, Y, Divisor, X1, X2, isGreater_in_gg(X1, X2)) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> ISGREATER_IN_GG(X1, X2) ISGREATER_IN_GG(succ(X), succ(Y)) -> U68_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)) -> U69_GG(X, Y, isGreater_in_gg(X, Y)) ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) U14_GGA(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_GGA(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U14_GGA(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> =_IN_AG(X3, Y) U15_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_GGA(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U15_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> =_IN_AG(X4, zero) U16_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_GGA(X, Y, Divisor, isGreater_in_gg(X3, X4)) U16_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U17_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_GGA(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U17_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> ISMODULO_IN_GGA(X, Y, U) ISMODULO_IN_GGA(X, Y, Z) -> U65_GGA(X, Y, Z, isDiv_in_gga(X, Y, A)) ISMODULO_IN_GGA(X, Y, Z) -> ISDIV_IN_GGA(X, Y, A) ISDIV_IN_GGA(succ(X), succ(Y), zero) -> U53_GGA(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) ISDIV_IN_GGA(succ(X), succ(Y), zero) -> ISMINUS_IN_GGA(succ(X), succ(Y), pred(Z)) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> U39_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)) -> U40_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) -> U41_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))) -> U42_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))) -> U43_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) -> U44_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) ISDIV_IN_GGA(succ(X), succ(Y), succ(Z)) -> U54_GGA(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) ISDIV_IN_GGA(succ(X), succ(Y), succ(Z)) -> ISMINUS_IN_GGA(succ(X), succ(Y), A) U54_GGA(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_GGA(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) U54_GGA(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> ISDIV_IN_GGA(A, succ(Y), Z) ISDIV_IN_GGA(succ(X), pred(Y), Z) -> U56_GGA(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) ISDIV_IN_GGA(succ(X), pred(Y), Z) -> ISMINUS_IN_GGA(zero, pred(Y), A) U56_GGA(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_GGA(X, Y, Z, isDiv_in_gga(succ(X), A, B)) U56_GGA(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> ISDIV_IN_GGA(succ(X), A, B) ISDIV_IN_GGA(pred(X), pred(Y), zero) -> U59_GGA(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) ISDIV_IN_GGA(pred(X), pred(Y), zero) -> ISMINUS_IN_GGA(pred(X), pred(Y), succ(Z)) ISDIV_IN_GGA(pred(X), pred(Y), succ(Z)) -> U60_GGA(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) ISDIV_IN_GGA(pred(X), pred(Y), succ(Z)) -> ISMINUS_IN_GGA(pred(X), pred(Y), A) U60_GGA(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_GGA(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) U60_GGA(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> ISDIV_IN_GGA(A, pred(Y), Z) ISDIV_IN_GGA(pred(X), succ(Y), Z) -> U62_GGA(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) ISDIV_IN_GGA(pred(X), succ(Y), Z) -> ISMINUS_IN_GGA(zero, pred(X), A) U62_GGA(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_GGA(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U62_GGA(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> ISDIV_IN_GGA(A, succ(Y), B) U63_GGA(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_GGA(X, Y, Z, isMinus_in_gga(zero, B, Z)) U63_GGA(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> ISMINUS_IN_GGA(zero, B, Z) U57_GGA(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_GGA(X, Y, Z, isMinus_in_gga(zero, B, Z)) U57_GGA(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> ISMINUS_IN_GGA(zero, B, Z) U65_GGA(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_GGA(X, Y, Z, isTimes_in_gga(A, Y, B)) U65_GGA(X, Y, Z, isDiv_out_gga(X, Y, A)) -> ISTIMES_IN_GGA(A, Y, B) ISTIMES_IN_GGA(succ(X), succ(Y), Z) -> U45_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) -> U47_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) -> U49_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) -> U51_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) U51_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_GGA(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U51_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> ISMINUS_IN_GGA(A, pred(X), Z) U49_GGA(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_GGA(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U49_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))) -> U35_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) -> U36_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) -> U37_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))) -> U38_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) U47_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_GGA(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U47_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISMINUS_IN_GGA(A, succ(X), Z) U45_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_GGA(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U45_GGA(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> ISPLUS_IN_GGA(A, succ(X), Z) U66_GGA(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_GGA(X, Y, Z, isMinus_in_gga(X, B, Z)) U66_GGA(X, Y, Z, isTimes_out_gga(A, Y, B)) -> ISMINUS_IN_GGA(X, B, Z) U18_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_GGA(X, Y, Divisor, =_in_ag(Remainder, U)) U18_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> =_IN_AG(Remainder, U) U19_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_GGA(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U19_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> GCD_IN_GGA(Y, Remainder, Divisor) GCD_IN_GGA(X, Y, Divisor) -> U28_GGA(X, Y, Divisor, =_in_ag(X3, X)) U28_GGA(X, Y, Divisor, =_out_ag(X3, X)) -> U29_GGA(X, Y, Divisor, X3, =_in_ag(X4, Y)) U28_GGA(X, Y, Divisor, =_out_ag(X3, X)) -> =_IN_AG(X4, Y) U29_GGA(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_GGA(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) U29_GGA(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> ISLESS_IN_GG(X3, X4) ISLESS_IN_GG(pred(X), pred(Y)) -> U70_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)) -> U71_GG(X, Y, isLess_in_gg(X, Y)) ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) U30_GGA(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_GGA(X, Y, Divisor, =_in_ag(X1, X)) U30_GGA(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> =_IN_AG(X1, X) U31_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> U32_GGA(X, Y, Divisor, X1, =_in_ag(X2, zero)) U31_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> =_IN_AG(X2, zero) U32_GGA(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_GGA(X, Y, Divisor, isGreater_in_gg(X1, X2)) U32_GGA(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> ISGREATER_IN_GG(X1, X2) U33_GGA(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_GGA(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U33_GGA(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> GCD_IN_GGA(Y, X, Divisor) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_GGA(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> =_IN_GG(X1, X2) U21_GGA(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_GGA(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U21_GGA(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> =_IN_AG(X3, Y) U22_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_GGA(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U22_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> =_IN_AG(X4, zero) U23_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_GGA(X, Y, Divisor, isGreater_in_gg(X3, X4)) U23_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U24_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_GGA(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U24_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> ISMODULO_IN_GGA(X, Y, U) U25_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_GGA(X, Y, Divisor, =_in_ag(Remainder, U)) U25_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> =_IN_AG(Remainder, U) U26_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_GGA(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U26_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> GCD_IN_GGA(Y, Remainder, Divisor) U1_GA(C, D, gcd_out_gga(C, D, Gcd)) -> U2_GA(C, D, =_in_ag(X, Gcd)) U1_GA(C, D, gcd_out_gga(C, D, Gcd)) -> =_IN_AG(X, Gcd) U2_GA(C, D, =_out_ag(X, Gcd)) -> U3_GA(C, D, X, =_in_ag(X1, succ(zero))) U2_GA(C, D, =_out_ag(X, Gcd)) -> =_IN_AG(X1, succ(zero)) U3_GA(C, D, X, =_out_ag(X1, succ(zero))) -> U4_GA(C, D, =_in_gg(X, X1)) U3_GA(C, D, X, =_out_ag(X1, succ(zero))) -> =_IN_GG(X, X1) REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> U5_GA(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> GCD_IN_GGA(C, D, Gcd) U5_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_GA(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U5_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> =_IN_AG(X, Gcd) U6_GA(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_GA(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U6_GA(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> =_IN_AG(X1, succ(zero)) U7_GA(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_GA(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U7_GA(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> ISGREATER_IN_GG(X, X1) U8_GA(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_GA(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U8_GA(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> REDUCE_IN_GA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) U9_GA(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_GA(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U9_GA(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> =_IN_AG(Cres, CRec) U10_GA(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_GA(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U10_GA(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> =_IN_AG(Dres, DRec) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2, x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x1, x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x1, x2, x3) U53_gga(x1, x2, x3) = U53_gga(x1, x2, x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U54_gga(x1, x2, x3, x4) = U54_gga(x1, x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x1, x2, x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x2, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x1, x2, x4) U59_gga(x1, x2, x3) = U59_gga(x1, x2, x3) U60_gga(x1, x2, x3, x4) = U60_gga(x1, x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x1, x2, x4) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x1, x2, x4) U64_gga(x1, x2, x3, x4) = U64_gga(x1, x2, x4) U58_gga(x1, x2, x3, x4) = U58_gga(x1, x2, x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x2, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_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) 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) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U67_gga(x1, x2, x3, x4) = U67_gga(x1, x2, x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x1, x2, x3) U19_gga(x1, x2, x3, x4) = U19_gga(x1, x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x1, x2, x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x1, x2, x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x1, x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x1, x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x1, x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x1, x2, x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x1, x2, x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x1, x2, x3, x5) REDUCE_IN_GA(x1, x2) = REDUCE_IN_GA(x1) U1_GA(x1, x2, x3) = U1_GA(x1, x2, x3) GCD_IN_GGA(x1, x2, x3) = GCD_IN_GGA(x1, x2) U12_GGA(x1, x2, x3, x4) = U12_GGA(x1, x2, x4) =_IN_AG(x1, x2) = =_IN_AG(x2) U13_GGA(x1, x2, x3, x4, x5) = U13_GGA(x1, x2, x4, x5) U14_GGA(x1, x2, x3, x4, x5, x6) = U14_GGA(x1, x2, x6) ISGREATER_IN_GG(x1, x2) = ISGREATER_IN_GG(x1, x2) U68_GG(x1, x2, x3) = U68_GG(x1, x2, x3) U69_GG(x1, x2, x3) = U69_GG(x1, x2, x3) U15_GGA(x1, x2, x3, x4, x5, x6) = U15_GGA(x1, x2, x6) U16_GGA(x1, x2, x3, x4, x5, x6, x7) = U16_GGA(x1, x2, x6, x7) U17_GGA(x1, x2, x3, x4) = U17_GGA(x1, x2, x4) U18_GGA(x1, x2, x3, x4) = U18_GGA(x1, x2, x4) ISMODULO_IN_GGA(x1, x2, x3) = ISMODULO_IN_GGA(x1, x2) U65_GGA(x1, x2, x3, x4) = U65_GGA(x1, x2, x4) ISDIV_IN_GGA(x1, x2, x3) = ISDIV_IN_GGA(x1, x2) U53_GGA(x1, x2, x3) = U53_GGA(x1, x2, x3) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) U39_GGA(x1, x2, x3) = U39_GGA(x1, x3) U40_GGA(x1, x2, x3) = U40_GGA(x1, x3) U41_GGA(x1, x2, x3, x4) = U41_GGA(x1, x2, x4) U42_GGA(x1, x2, x3, x4) = U42_GGA(x1, x2, x4) U43_GGA(x1, x2, x3, x4) = U43_GGA(x1, x2, x4) U44_GGA(x1, x2, x3, x4) = U44_GGA(x1, x2, x4) U54_GGA(x1, x2, x3, x4) = U54_GGA(x1, x2, x4) U55_GGA(x1, x2, x3, x4) = U55_GGA(x1, x2, x4) U56_GGA(x1, x2, x3, x4) = U56_GGA(x1, x2, x4) U57_GGA(x1, x2, x3, x4) = U57_GGA(x1, x2, x4) U59_GGA(x1, x2, x3) = U59_GGA(x1, x2, x3) U60_GGA(x1, x2, x3, x4) = U60_GGA(x1, x2, x4) U61_GGA(x1, x2, x3, x4) = U61_GGA(x1, x2, x4) U62_GGA(x1, x2, x3, x4) = U62_GGA(x1, x2, x4) U63_GGA(x1, x2, x3, x4) = U63_GGA(x1, x2, x4) U64_GGA(x1, x2, x3, x4) = U64_GGA(x1, x2, x4) U58_GGA(x1, x2, x3, x4) = U58_GGA(x1, x2, x4) U66_GGA(x1, x2, x3, x4) = U66_GGA(x1, x2, x4) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) U45_GGA(x1, x2, x3, x4) = U45_GGA(x1, x2, x4) U47_GGA(x1, x2, x3, x4) = U47_GGA(x1, x2, x4) U49_GGA(x1, x2, x3, x4) = U49_GGA(x1, x2, x4) U51_GGA(x1, x2, x3, x4) = U51_GGA(x1, x2, x4) U52_GGA(x1, x2, x3, x4) = U52_GGA(x1, x2, x4) U50_GGA(x1, x2, x3, x4) = U50_GGA(x1, x2, x4) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) 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) U48_GGA(x1, x2, x3, x4) = U48_GGA(x1, x2, x4) U46_GGA(x1, x2, x3, x4) = U46_GGA(x1, x2, x4) U67_GGA(x1, x2, x3, x4) = U67_GGA(x1, x2, x4) U19_GGA(x1, x2, x3, x4) = U19_GGA(x1, x2, x4) U20_GGA(x1, x2, x3, x4) = U20_GGA(x1, x2, x4) U28_GGA(x1, x2, x3, x4) = U28_GGA(x1, x2, x4) U29_GGA(x1, x2, x3, x4, x5) = U29_GGA(x1, x2, x4, x5) U30_GGA(x1, x2, x3, x4, x5, x6) = U30_GGA(x1, x2, x6) ISLESS_IN_GG(x1, x2) = ISLESS_IN_GG(x1, x2) U70_GG(x1, x2, x3) = U70_GG(x1, x2, x3) U71_GG(x1, x2, x3) = U71_GG(x1, x2, x3) U31_GGA(x1, x2, x3, x4) = U31_GGA(x1, x2, x4) U32_GGA(x1, x2, x3, x4, x5) = U32_GGA(x1, x2, x4, x5) U33_GGA(x1, x2, x3, x4) = U33_GGA(x1, x2, x4) U34_GGA(x1, x2, x3, x4) = U34_GGA(x1, x2, x4) U21_GGA(x1, x2, x3, x4, x5, x6) = U21_GGA(x1, x2, x6) =_IN_GG(x1, x2) = =_IN_GG(x1, x2) U22_GGA(x1, x2, x3, x4, x5, x6) = U22_GGA(x1, x2, x6) U23_GGA(x1, x2, x3, x4, x5, x6, x7) = U23_GGA(x1, x2, x6, x7) U24_GGA(x1, x2, x3, x4) = U24_GGA(x1, x2, x4) U25_GGA(x1, x2, x3, x4) = U25_GGA(x1, x2, x4) U26_GGA(x1, x2, x3, x4) = U26_GGA(x1, x2, x4) U27_GGA(x1, x2, x3, x4) = U27_GGA(x1, x2, x4) U2_GA(x1, x2, x3) = U2_GA(x1, x2, x3) U3_GA(x1, x2, x3, x4) = U3_GA(x1, x2, x3, x4) U4_GA(x1, x2, x3) = U4_GA(x1, x2, x3) U5_GA(x1, x2, x3, x4, x5) = U5_GA(x1, x2, x5) U6_GA(x1, x2, x3, x4, x5, x6) = U6_GA(x1, x2, x5, x6) U7_GA(x1, x2, x3, x4, x5, x6, x7) = U7_GA(x1, x2, x5, x6, x7) U8_GA(x1, x2, x3, x4, x5, x6) = U8_GA(x1, x2, x5, x6) U9_GA(x1, x2, x3, x4, x5) = U9_GA(x1, x2, x5) U10_GA(x1, x2, x3, x4, x5, x6) = U10_GA(x1, x2, x5, x6) U11_GA(x1, x2, x3, x4, x5) = U11_GA(x1, x2, x3, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (81) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 12 SCCs with 87 less nodes. ---------------------------------------- (82) Complex Obligation (AND) ---------------------------------------- (83) 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: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2, x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x1, x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x1, x2, x3) U53_gga(x1, x2, x3) = U53_gga(x1, x2, x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U54_gga(x1, x2, x3, x4) = U54_gga(x1, x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x1, x2, x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x2, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x1, x2, x4) U59_gga(x1, x2, x3) = U59_gga(x1, x2, x3) U60_gga(x1, x2, x3, x4) = U60_gga(x1, x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x1, x2, x4) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x1, x2, x4) U64_gga(x1, x2, x3, x4) = U64_gga(x1, x2, x4) U58_gga(x1, x2, x3, x4) = U58_gga(x1, x2, x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x2, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_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) 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) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U67_gga(x1, x2, x3, x4) = U67_gga(x1, x2, x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x1, x2, x3) U19_gga(x1, x2, x3, x4) = U19_gga(x1, x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x1, x2, x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x1, x2, x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x1, x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x1, x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x1, x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x1, x2, x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x1, x2, x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x1, x2, x3, x5) ISLESS_IN_GG(x1, x2) = ISLESS_IN_GG(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (84) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (85) 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 ---------------------------------------- (86) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (87) 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. ---------------------------------------- (88) 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 ---------------------------------------- (89) YES ---------------------------------------- (90) 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: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2, x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x1, x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x1, x2, x3) U53_gga(x1, x2, x3) = U53_gga(x1, x2, x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U54_gga(x1, x2, x3, x4) = U54_gga(x1, x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x1, x2, x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x2, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x1, x2, x4) U59_gga(x1, x2, x3) = U59_gga(x1, x2, x3) U60_gga(x1, x2, x3, x4) = U60_gga(x1, x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x1, x2, x4) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x1, x2, x4) U64_gga(x1, x2, x3, x4) = U64_gga(x1, x2, x4) U58_gga(x1, x2, x3, x4) = U58_gga(x1, x2, x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x2, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_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) 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) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U67_gga(x1, x2, x3, x4) = U67_gga(x1, x2, x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x1, x2, x3) U19_gga(x1, x2, x3, x4) = U19_gga(x1, x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x1, x2, x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x1, x2, x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x1, x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x1, x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x1, x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x1, x2, x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x1, x2, x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x1, x2, x3, x5) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (91) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (92) 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 ---------------------------------------- (93) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (94) 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. ---------------------------------------- (95) 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 ---------------------------------------- (96) YES ---------------------------------------- (97) 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: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2, x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x1, x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x1, x2, x3) U53_gga(x1, x2, x3) = U53_gga(x1, x2, x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U54_gga(x1, x2, x3, x4) = U54_gga(x1, x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x1, x2, x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x2, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x1, x2, x4) U59_gga(x1, x2, x3) = U59_gga(x1, x2, x3) U60_gga(x1, x2, x3, x4) = U60_gga(x1, x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x1, x2, x4) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x1, x2, x4) U64_gga(x1, x2, x3, x4) = U64_gga(x1, x2, x4) U58_gga(x1, x2, x3, x4) = U58_gga(x1, x2, x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x2, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_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) 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) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U67_gga(x1, x2, x3, x4) = U67_gga(x1, x2, x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x1, x2, x3) U19_gga(x1, x2, x3, x4) = U19_gga(x1, x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x1, x2, x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x1, x2, x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x1, x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x1, x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x1, x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x1, x2, x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x1, x2, x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x1, x2, x3, x5) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (98) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (99) 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 ---------------------------------------- (100) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (101) 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. ---------------------------------------- (102) 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 ---------------------------------------- (103) YES ---------------------------------------- (104) 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: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2, x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x1, x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x1, x2, x3) U53_gga(x1, x2, x3) = U53_gga(x1, x2, x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U54_gga(x1, x2, x3, x4) = U54_gga(x1, x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x1, x2, x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x2, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x1, x2, x4) U59_gga(x1, x2, x3) = U59_gga(x1, x2, x3) U60_gga(x1, x2, x3, x4) = U60_gga(x1, x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x1, x2, x4) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x1, x2, x4) U64_gga(x1, x2, x3, x4) = U64_gga(x1, x2, x4) U58_gga(x1, x2, x3, x4) = U58_gga(x1, x2, x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x2, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_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) 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) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U67_gga(x1, x2, x3, x4) = U67_gga(x1, x2, x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x1, x2, x3) U19_gga(x1, x2, x3, x4) = U19_gga(x1, x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x1, x2, x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x1, x2, x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x1, x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x1, x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x1, x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x1, x2, x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x1, x2, x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x1, x2, x3, x5) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (105) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (106) 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 ---------------------------------------- (107) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (108) 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. ---------------------------------------- (109) 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 ---------------------------------------- (110) YES ---------------------------------------- (111) 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: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2, x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x1, x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x1, x2, x3) U53_gga(x1, x2, x3) = U53_gga(x1, x2, x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U54_gga(x1, x2, x3, x4) = U54_gga(x1, x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x1, x2, x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x2, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x1, x2, x4) U59_gga(x1, x2, x3) = U59_gga(x1, x2, x3) U60_gga(x1, x2, x3, x4) = U60_gga(x1, x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x1, x2, x4) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x1, x2, x4) U64_gga(x1, x2, x3, x4) = U64_gga(x1, x2, x4) U58_gga(x1, x2, x3, x4) = U58_gga(x1, x2, x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x2, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_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) 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) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U67_gga(x1, x2, x3, x4) = U67_gga(x1, x2, x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x1, x2, x3) U19_gga(x1, x2, x3, x4) = U19_gga(x1, x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x1, x2, x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x1, x2, x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x1, x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x1, x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x1, x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x1, x2, x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x1, x2, x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x1, x2, x3, x5) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (112) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (113) 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 ---------------------------------------- (114) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (115) 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. ---------------------------------------- (116) 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 ---------------------------------------- (117) YES ---------------------------------------- (118) 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: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2, x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x1, x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x1, x2, x3) U53_gga(x1, x2, x3) = U53_gga(x1, x2, x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U54_gga(x1, x2, x3, x4) = U54_gga(x1, x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x1, x2, x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x2, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x1, x2, x4) U59_gga(x1, x2, x3) = U59_gga(x1, x2, x3) U60_gga(x1, x2, x3, x4) = U60_gga(x1, x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x1, x2, x4) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x1, x2, x4) U64_gga(x1, x2, x3, x4) = U64_gga(x1, x2, x4) U58_gga(x1, x2, x3, x4) = U58_gga(x1, x2, x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x2, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_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) 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) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U67_gga(x1, x2, x3, x4) = U67_gga(x1, x2, x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x1, x2, x3) U19_gga(x1, x2, x3, x4) = U19_gga(x1, x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x1, x2, x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x1, x2, x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x1, x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x1, x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x1, x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x1, x2, x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x1, x2, x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x1, x2, x3, x5) ISTIMES_IN_GGA(x1, x2, x3) = ISTIMES_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (119) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (120) 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 ---------------------------------------- (121) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (122) 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. ---------------------------------------- (123) 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 ---------------------------------------- (124) YES ---------------------------------------- (125) Obligation: Pi DP problem: The TRS P consists of the following rules: ISDIV_IN_GGA(succ(X), succ(Y), succ(Z)) -> U54_GGA(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_GGA(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> ISDIV_IN_GGA(A, succ(Y), Z) ISDIV_IN_GGA(pred(X), succ(Y), Z) -> U62_GGA(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_GGA(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> ISDIV_IN_GGA(A, succ(Y), B) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2, x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x1, x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x1, x2, x3) U53_gga(x1, x2, x3) = U53_gga(x1, x2, x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U54_gga(x1, x2, x3, x4) = U54_gga(x1, x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x1, x2, x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x2, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x1, x2, x4) U59_gga(x1, x2, x3) = U59_gga(x1, x2, x3) U60_gga(x1, x2, x3, x4) = U60_gga(x1, x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x1, x2, x4) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x1, x2, x4) U64_gga(x1, x2, x3, x4) = U64_gga(x1, x2, x4) U58_gga(x1, x2, x3, x4) = U58_gga(x1, x2, x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x2, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_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) 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) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U67_gga(x1, x2, x3, x4) = U67_gga(x1, x2, x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x1, x2, x3) U19_gga(x1, x2, x3, x4) = U19_gga(x1, x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x1, x2, x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x1, x2, x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x1, x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x1, x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x1, x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x1, x2, x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x1, x2, x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x1, x2, x3, x5) ISDIV_IN_GGA(x1, x2, x3) = ISDIV_IN_GGA(x1, x2) U54_GGA(x1, x2, x3, x4) = U54_GGA(x1, x2, x4) U62_GGA(x1, x2, x3, x4) = U62_GGA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (126) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (127) Obligation: Pi DP problem: The TRS P consists of the following rules: ISDIV_IN_GGA(succ(X), succ(Y), succ(Z)) -> U54_GGA(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_GGA(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> ISDIV_IN_GGA(A, succ(Y), Z) ISDIV_IN_GGA(pred(X), succ(Y), Z) -> U62_GGA(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_GGA(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> ISDIV_IN_GGA(A, succ(Y), B) The TRS R consists of the following rules: isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) 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) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) ISDIV_IN_GGA(x1, x2, x3) = ISDIV_IN_GGA(x1, x2) U54_GGA(x1, x2, x3, x4) = U54_GGA(x1, x2, x4) U62_GGA(x1, x2, x3, x4) = U62_GGA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (128) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (129) Obligation: Q DP problem: The TRS P consists of the following rules: ISDIV_IN_GGA(succ(X), succ(Y)) -> U54_GGA(X, Y, isMinus_in_gga(succ(X), succ(Y))) U54_GGA(X, Y, isMinus_out_gga(succ(X), succ(Y), A)) -> ISDIV_IN_GGA(A, succ(Y)) ISDIV_IN_GGA(pred(X), succ(Y)) -> U62_GGA(X, Y, isMinus_in_gga(zero, pred(X))) U62_GGA(X, Y, isMinus_out_gga(zero, pred(X), A)) -> ISDIV_IN_GGA(A, succ(Y)) The TRS R consists of the following rules: isMinus_in_gga(succ(X), succ(Y)) -> U41_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(zero, pred(Y)) -> U40_gga(Y, isMinus_in_gga(zero, Y)) U41_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y)) -> U39_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U42_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U43_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U44_gga(X, Y, isMinus_in_gga(X, Y)) U39_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U42_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U43_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U44_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) The set Q consists of the following terms: isMinus_in_gga(x0, x1) U41_gga(x0, x1, x2) U40_gga(x0, x1) U39_gga(x0, x1) U42_gga(x0, x1, x2) U43_gga(x0, x1, x2) U44_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (130) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule ISDIV_IN_GGA(succ(X), succ(Y)) -> U54_GGA(X, Y, isMinus_in_gga(succ(X), succ(Y))) at position [2] we obtained the following new rules [LPAR04]: (ISDIV_IN_GGA(succ(X), succ(Y)) -> U54_GGA(X, Y, U41_gga(X, Y, isMinus_in_gga(X, Y))),ISDIV_IN_GGA(succ(X), succ(Y)) -> U54_GGA(X, Y, U41_gga(X, Y, isMinus_in_gga(X, Y)))) ---------------------------------------- (131) Obligation: Q DP problem: The TRS P consists of the following rules: U54_GGA(X, Y, isMinus_out_gga(succ(X), succ(Y), A)) -> ISDIV_IN_GGA(A, succ(Y)) ISDIV_IN_GGA(pred(X), succ(Y)) -> U62_GGA(X, Y, isMinus_in_gga(zero, pred(X))) U62_GGA(X, Y, isMinus_out_gga(zero, pred(X), A)) -> ISDIV_IN_GGA(A, succ(Y)) ISDIV_IN_GGA(succ(X), succ(Y)) -> U54_GGA(X, Y, U41_gga(X, Y, isMinus_in_gga(X, Y))) The TRS R consists of the following rules: isMinus_in_gga(succ(X), succ(Y)) -> U41_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(zero, pred(Y)) -> U40_gga(Y, isMinus_in_gga(zero, Y)) U41_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y)) -> U39_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U42_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U43_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U44_gga(X, Y, isMinus_in_gga(X, Y)) U39_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U42_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U43_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U44_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) The set Q consists of the following terms: isMinus_in_gga(x0, x1) U41_gga(x0, x1, x2) U40_gga(x0, x1) U39_gga(x0, x1) U42_gga(x0, x1, x2) U43_gga(x0, x1, x2) U44_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (132) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule ISDIV_IN_GGA(pred(X), succ(Y)) -> U62_GGA(X, Y, isMinus_in_gga(zero, pred(X))) at position [2] we obtained the following new rules [LPAR04]: (ISDIV_IN_GGA(pred(X), succ(Y)) -> U62_GGA(X, Y, U40_gga(X, isMinus_in_gga(zero, X))),ISDIV_IN_GGA(pred(X), succ(Y)) -> U62_GGA(X, Y, U40_gga(X, isMinus_in_gga(zero, X)))) ---------------------------------------- (133) Obligation: Q DP problem: The TRS P consists of the following rules: U54_GGA(X, Y, isMinus_out_gga(succ(X), succ(Y), A)) -> ISDIV_IN_GGA(A, succ(Y)) U62_GGA(X, Y, isMinus_out_gga(zero, pred(X), A)) -> ISDIV_IN_GGA(A, succ(Y)) ISDIV_IN_GGA(succ(X), succ(Y)) -> U54_GGA(X, Y, U41_gga(X, Y, isMinus_in_gga(X, Y))) ISDIV_IN_GGA(pred(X), succ(Y)) -> U62_GGA(X, Y, U40_gga(X, isMinus_in_gga(zero, X))) The TRS R consists of the following rules: isMinus_in_gga(succ(X), succ(Y)) -> U41_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(zero, pred(Y)) -> U40_gga(Y, isMinus_in_gga(zero, Y)) U41_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) isMinus_in_gga(X, zero) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y)) -> U39_gga(Y, isMinus_in_gga(zero, Y)) isMinus_in_gga(succ(X), pred(Y)) -> U42_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), succ(Y)) -> U43_gga(X, Y, isMinus_in_gga(X, Y)) isMinus_in_gga(pred(X), pred(Y)) -> U44_gga(X, Y, isMinus_in_gga(X, Y)) U39_gga(Y, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U42_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U43_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U44_gga(X, Y, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) The set Q consists of the following terms: isMinus_in_gga(x0, x1) U41_gga(x0, x1, x2) U40_gga(x0, x1) U39_gga(x0, x1) U42_gga(x0, x1, x2) U43_gga(x0, x1, x2) U44_gga(x0, x1, x2) We have to consider all (P,Q,R)-chains. ---------------------------------------- (134) Obligation: Pi DP problem: The TRS P consists of the following rules: ISDIV_IN_GGA(succ(X), pred(Y), Z) -> U56_GGA(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_GGA(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> ISDIV_IN_GGA(succ(X), A, B) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2, x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x1, x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x1, x2, x3) U53_gga(x1, x2, x3) = U53_gga(x1, x2, x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U54_gga(x1, x2, x3, x4) = U54_gga(x1, x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x1, x2, x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x2, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x1, x2, x4) U59_gga(x1, x2, x3) = U59_gga(x1, x2, x3) U60_gga(x1, x2, x3, x4) = U60_gga(x1, x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x1, x2, x4) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x1, x2, x4) U64_gga(x1, x2, x3, x4) = U64_gga(x1, x2, x4) U58_gga(x1, x2, x3, x4) = U58_gga(x1, x2, x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x2, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_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) 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) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U67_gga(x1, x2, x3, x4) = U67_gga(x1, x2, x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x1, x2, x3) U19_gga(x1, x2, x3, x4) = U19_gga(x1, x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x1, x2, x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x1, x2, x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x1, x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x1, x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x1, x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x1, x2, x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x1, x2, x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x1, x2, x3, x5) ISDIV_IN_GGA(x1, x2, x3) = ISDIV_IN_GGA(x1, x2) U56_GGA(x1, x2, x3, x4) = U56_GGA(x1, x2, x4) 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: ISDIV_IN_GGA(succ(X), pred(Y), Z) -> U56_GGA(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_GGA(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> ISDIV_IN_GGA(succ(X), A, B) The TRS R consists of the following rules: isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) 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) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) ISDIV_IN_GGA(x1, x2, x3) = ISDIV_IN_GGA(x1, x2) U56_GGA(x1, x2, x3, x4) = U56_GGA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (137) Obligation: Pi DP problem: The TRS P consists of the following rules: ISDIV_IN_GGA(pred(X), pred(Y), succ(Z)) -> U60_GGA(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_GGA(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> ISDIV_IN_GGA(A, pred(Y), Z) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2, x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x1, x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x1, x2, x3) U53_gga(x1, x2, x3) = U53_gga(x1, x2, x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U54_gga(x1, x2, x3, x4) = U54_gga(x1, x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x1, x2, x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x2, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x1, x2, x4) U59_gga(x1, x2, x3) = U59_gga(x1, x2, x3) U60_gga(x1, x2, x3, x4) = U60_gga(x1, x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x1, x2, x4) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x1, x2, x4) U64_gga(x1, x2, x3, x4) = U64_gga(x1, x2, x4) U58_gga(x1, x2, x3, x4) = U58_gga(x1, x2, x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x2, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_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) 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) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U67_gga(x1, x2, x3, x4) = U67_gga(x1, x2, x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x1, x2, x3) U19_gga(x1, x2, x3, x4) = U19_gga(x1, x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x1, x2, x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x1, x2, x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x1, x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x1, x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x1, x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x1, x2, x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x1, x2, x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x1, x2, x3, x5) ISDIV_IN_GGA(x1, x2, x3) = ISDIV_IN_GGA(x1, x2) U60_GGA(x1, x2, x3, x4) = U60_GGA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (138) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (139) Obligation: Pi DP problem: The TRS P consists of the following rules: ISDIV_IN_GGA(pred(X), pred(Y), succ(Z)) -> U60_GGA(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_GGA(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> ISDIV_IN_GGA(A, pred(Y), Z) The TRS R consists of the following rules: isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) 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) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) ISDIV_IN_GGA(x1, x2, x3) = ISDIV_IN_GGA(x1, x2) U60_GGA(x1, x2, x3, x4) = U60_GGA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (140) 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: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2, x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x1, x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x1, x2, x3) U53_gga(x1, x2, x3) = U53_gga(x1, x2, x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U54_gga(x1, x2, x3, x4) = U54_gga(x1, x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x1, x2, x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x2, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x1, x2, x4) U59_gga(x1, x2, x3) = U59_gga(x1, x2, x3) U60_gga(x1, x2, x3, x4) = U60_gga(x1, x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x1, x2, x4) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x1, x2, x4) U64_gga(x1, x2, x3, x4) = U64_gga(x1, x2, x4) U58_gga(x1, x2, x3, x4) = U58_gga(x1, x2, x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x2, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_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) 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) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U67_gga(x1, x2, x3, x4) = U67_gga(x1, x2, x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x1, x2, x3) U19_gga(x1, x2, x3, x4) = U19_gga(x1, x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x1, x2, x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x1, x2, x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x1, x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x1, x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x1, x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x1, x2, x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x1, x2, x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x1, x2, x3, x5) ISGREATER_IN_GG(x1, x2) = ISGREATER_IN_GG(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (141) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (142) 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 ---------------------------------------- (143) Obligation: Pi DP problem: The TRS P consists of the following rules: U12_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> U13_GGA(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_GGA(X, Y, Divisor, X1, X2, isGreater_in_gg(X1, X2)) U14_GGA(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_GGA(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_GGA(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_GGA(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_GGA(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U18_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_GGA(X, Y, Divisor, =_in_ag(Remainder, U)) U19_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> GCD_IN_GGA(Y, Remainder, Divisor) GCD_IN_GGA(X, Y, Divisor) -> U12_GGA(X, Y, Divisor, =_in_ag(X1, X)) GCD_IN_GGA(X, Y, Divisor) -> U28_GGA(X, Y, Divisor, =_in_ag(X3, X)) U28_GGA(X, Y, Divisor, =_out_ag(X3, X)) -> U29_GGA(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_GGA(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_GGA(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) U30_GGA(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_GGA(X, Y, Divisor, =_in_ag(X1, X)) U31_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> U32_GGA(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_GGA(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_GGA(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_GGA(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> GCD_IN_GGA(Y, X, Divisor) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_GGA(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) U21_GGA(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_GGA(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_GGA(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_GGA(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_GGA(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_GGA(X, Y, Divisor, =_in_ag(Remainder, U)) U26_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> GCD_IN_GGA(Y, Remainder, Divisor) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2, x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x1, x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x1, x2, x3) U53_gga(x1, x2, x3) = U53_gga(x1, x2, x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U54_gga(x1, x2, x3, x4) = U54_gga(x1, x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x1, x2, x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x2, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x1, x2, x4) U59_gga(x1, x2, x3) = U59_gga(x1, x2, x3) U60_gga(x1, x2, x3, x4) = U60_gga(x1, x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x1, x2, x4) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x1, x2, x4) U64_gga(x1, x2, x3, x4) = U64_gga(x1, x2, x4) U58_gga(x1, x2, x3, x4) = U58_gga(x1, x2, x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x2, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_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) 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) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U67_gga(x1, x2, x3, x4) = U67_gga(x1, x2, x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x1, x2, x3) U19_gga(x1, x2, x3, x4) = U19_gga(x1, x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x1, x2, x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x1, x2, x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x1, x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x1, x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x1, x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x1, x2, x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x1, x2, x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x1, x2, x3, x5) GCD_IN_GGA(x1, x2, x3) = GCD_IN_GGA(x1, x2) U12_GGA(x1, x2, x3, x4) = U12_GGA(x1, x2, x4) U13_GGA(x1, x2, x3, x4, x5) = U13_GGA(x1, x2, x4, x5) U14_GGA(x1, x2, x3, x4, x5, x6) = U14_GGA(x1, x2, x6) U15_GGA(x1, x2, x3, x4, x5, x6) = U15_GGA(x1, x2, x6) U16_GGA(x1, x2, x3, x4, x5, x6, x7) = U16_GGA(x1, x2, x6, x7) U17_GGA(x1, x2, x3, x4) = U17_GGA(x1, x2, x4) U18_GGA(x1, x2, x3, x4) = U18_GGA(x1, x2, x4) U19_GGA(x1, x2, x3, x4) = U19_GGA(x1, x2, x4) U28_GGA(x1, x2, x3, x4) = U28_GGA(x1, x2, x4) U29_GGA(x1, x2, x3, x4, x5) = U29_GGA(x1, x2, x4, x5) U30_GGA(x1, x2, x3, x4, x5, x6) = U30_GGA(x1, x2, x6) U31_GGA(x1, x2, x3, x4) = U31_GGA(x1, x2, x4) U32_GGA(x1, x2, x3, x4, x5) = U32_GGA(x1, x2, x4, x5) U33_GGA(x1, x2, x3, x4) = U33_GGA(x1, x2, x4) U21_GGA(x1, x2, x3, x4, x5, x6) = U21_GGA(x1, x2, x6) U22_GGA(x1, x2, x3, x4, x5, x6) = U22_GGA(x1, x2, x6) U23_GGA(x1, x2, x3, x4, x5, x6, x7) = U23_GGA(x1, x2, x6, x7) U24_GGA(x1, x2, x3, x4) = U24_GGA(x1, x2, x4) U25_GGA(x1, x2, x3, x4) = U25_GGA(x1, x2, x4) U26_GGA(x1, x2, x3, x4) = U26_GGA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (144) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (145) Obligation: Pi DP problem: The TRS P consists of the following rules: U12_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> U13_GGA(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_GGA(X, Y, Divisor, X1, X2, isGreater_in_gg(X1, X2)) U14_GGA(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_GGA(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_GGA(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_GGA(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_GGA(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U18_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_GGA(X, Y, Divisor, =_in_ag(Remainder, U)) U19_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> GCD_IN_GGA(Y, Remainder, Divisor) GCD_IN_GGA(X, Y, Divisor) -> U12_GGA(X, Y, Divisor, =_in_ag(X1, X)) GCD_IN_GGA(X, Y, Divisor) -> U28_GGA(X, Y, Divisor, =_in_ag(X3, X)) U28_GGA(X, Y, Divisor, =_out_ag(X3, X)) -> U29_GGA(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_GGA(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_GGA(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) U30_GGA(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_GGA(X, Y, Divisor, =_in_ag(X1, X)) U31_GGA(X, Y, Divisor, =_out_ag(X1, X)) -> U32_GGA(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_GGA(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_GGA(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_GGA(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> GCD_IN_GGA(Y, X, Divisor) U13_GGA(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_GGA(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) U21_GGA(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_GGA(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_GGA(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_GGA(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_GGA(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_GGA(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_GGA(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_GGA(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_GGA(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_GGA(X, Y, Divisor, =_in_ag(Remainder, U)) U26_GGA(X, Y, Divisor, =_out_ag(Remainder, U)) -> GCD_IN_GGA(Y, Remainder, Divisor) 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) =_in_gg(X, X) -> =_out_gg(X, X) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_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)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), succ(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) The argument filtering Pi contains the following mapping: zero = zero =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) 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) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x1, x2, x3) U53_gga(x1, x2, x3) = U53_gga(x1, x2, x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U54_gga(x1, x2, x3, x4) = U54_gga(x1, x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x1, x2, x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x2, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x1, x2, x4) U59_gga(x1, x2, x3) = U59_gga(x1, x2, x3) U60_gga(x1, x2, x3, x4) = U60_gga(x1, x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x1, x2, x4) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x1, x2, x4) U64_gga(x1, x2, x3, x4) = U64_gga(x1, x2, x4) U58_gga(x1, x2, x3, x4) = U58_gga(x1, x2, x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x2, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_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) 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) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U67_gga(x1, x2, x3, x4) = U67_gga(x1, x2, x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) GCD_IN_GGA(x1, x2, x3) = GCD_IN_GGA(x1, x2) U12_GGA(x1, x2, x3, x4) = U12_GGA(x1, x2, x4) U13_GGA(x1, x2, x3, x4, x5) = U13_GGA(x1, x2, x4, x5) U14_GGA(x1, x2, x3, x4, x5, x6) = U14_GGA(x1, x2, x6) U15_GGA(x1, x2, x3, x4, x5, x6) = U15_GGA(x1, x2, x6) U16_GGA(x1, x2, x3, x4, x5, x6, x7) = U16_GGA(x1, x2, x6, x7) U17_GGA(x1, x2, x3, x4) = U17_GGA(x1, x2, x4) U18_GGA(x1, x2, x3, x4) = U18_GGA(x1, x2, x4) U19_GGA(x1, x2, x3, x4) = U19_GGA(x1, x2, x4) U28_GGA(x1, x2, x3, x4) = U28_GGA(x1, x2, x4) U29_GGA(x1, x2, x3, x4, x5) = U29_GGA(x1, x2, x4, x5) U30_GGA(x1, x2, x3, x4, x5, x6) = U30_GGA(x1, x2, x6) U31_GGA(x1, x2, x3, x4) = U31_GGA(x1, x2, x4) U32_GGA(x1, x2, x3, x4, x5) = U32_GGA(x1, x2, x4, x5) U33_GGA(x1, x2, x3, x4) = U33_GGA(x1, x2, x4) U21_GGA(x1, x2, x3, x4, x5, x6) = U21_GGA(x1, x2, x6) U22_GGA(x1, x2, x3, x4, x5, x6) = U22_GGA(x1, x2, x6) U23_GGA(x1, x2, x3, x4, x5, x6, x7) = U23_GGA(x1, x2, x6, x7) U24_GGA(x1, x2, x3, x4) = U24_GGA(x1, x2, x4) U25_GGA(x1, x2, x3, x4) = U25_GGA(x1, x2, x4) U26_GGA(x1, x2, x3, x4) = U26_GGA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (146) Obligation: Pi DP problem: The TRS P consists of the following rules: REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> U5_GA(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_GA(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_GA(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_GA(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_GA(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_GA(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_GA(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> REDUCE_IN_GA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) =_in_ag(X, X) -> =_out_ag(X, X) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, 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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_gga(X, Y, Z, isMinus_in_gga(A, pred(X), Z)) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_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))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_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) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) =_in_gg(X, X) -> =_out_gg(X, X) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =_in_ag(X, Gcd)) U2_ga(C, D, =_out_ag(X, Gcd)) -> U3_ga(C, D, X, =_in_ag(X1, succ(zero))) U3_ga(C, D, X, =_out_ag(X1, succ(zero))) -> U4_ga(C, D, =_in_gg(X, X1)) U4_ga(C, D, =_out_gg(X, X1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U5_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_ga(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_ga(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_ga(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_ga(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_ga(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_ga(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> U9_ga(C, D, Cres, Dres, reduce_in_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U9_ga(C, D, Cres, Dres, reduce_out_ga(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U10_ga(C, D, Cres, Dres, DRec, =_in_ag(Cres, CRec)) U10_ga(C, D, Cres, Dres, DRec, =_out_ag(Cres, CRec)) -> U11_ga(C, D, Cres, Dres, =_in_ag(Dres, DRec)) U11_ga(C, D, Cres, Dres, =_out_ag(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2, x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x1, x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x1, x2, x3) U53_gga(x1, x2, x3) = U53_gga(x1, x2, x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U54_gga(x1, x2, x3, x4) = U54_gga(x1, x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x1, x2, x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x2, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x1, x2, x4) U59_gga(x1, x2, x3) = U59_gga(x1, x2, x3) U60_gga(x1, x2, x3, x4) = U60_gga(x1, x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x1, x2, x4) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x1, x2, x4) U64_gga(x1, x2, x3, x4) = U64_gga(x1, x2, x4) U58_gga(x1, x2, x3, x4) = U58_gga(x1, x2, x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x2, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_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) 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) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U67_gga(x1, x2, x3, x4) = U67_gga(x1, x2, x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x1, x2, x3) U19_gga(x1, x2, x3, x4) = U19_gga(x1, x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x1, x2, x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x1, x2, x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x1, x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x1, x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) U3_ga(x1, x2, x3, x4) = U3_ga(x1, x2, x3, x4) U4_ga(x1, x2, x3) = U4_ga(x1, x2, x3) reduce_out_ga(x1, x2) = reduce_out_ga(x1, x2) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x5, x6) U7_ga(x1, x2, x3, x4, x5, x6, x7) = U7_ga(x1, x2, x5, x6, x7) U8_ga(x1, x2, x3, x4, x5, x6) = U8_ga(x1, x2, x5, x6) U9_ga(x1, x2, x3, x4, x5) = U9_ga(x1, x2, x5) //(x1, x2) = //(x1, x2) U10_ga(x1, x2, x3, x4, x5, x6) = U10_ga(x1, x2, x5, x6) U11_ga(x1, x2, x3, x4, x5) = U11_ga(x1, x2, x3, x5) REDUCE_IN_GA(x1, x2) = REDUCE_IN_GA(x1) U5_GA(x1, x2, x3, x4, x5) = U5_GA(x1, x2, x5) U6_GA(x1, x2, x3, x4, x5, x6) = U6_GA(x1, x2, x5, x6) U7_GA(x1, x2, x3, x4, x5, x6, x7) = U7_GA(x1, x2, x5, x6, x7) U8_GA(x1, x2, x3, x4, x5, x6) = U8_GA(x1, x2, x5, x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (147) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (148) Obligation: Pi DP problem: The TRS P consists of the following rules: REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> U5_GA(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U5_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U6_GA(C, D, Cres, Dres, Gcd, =_in_ag(X, Gcd)) U6_GA(C, D, Cres, Dres, Gcd, =_out_ag(X, Gcd)) -> U7_GA(C, D, Cres, Dres, Gcd, X, =_in_ag(X1, succ(zero))) U7_GA(C, D, Cres, Dres, Gcd, X, =_out_ag(X1, succ(zero))) -> U8_GA(C, D, Cres, Dres, Gcd, isGreater_in_gg(X, X1)) U8_GA(C, D, Cres, Dres, Gcd, isGreater_out_gg(X, X1)) -> REDUCE_IN_GA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) The TRS R consists of the following rules: gcd_in_gga(X, zero, X) -> gcd_out_gga(X, zero, X) gcd_in_gga(zero, X, X) -> gcd_out_gga(zero, X, X) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, =_in_ag(X1, X)) gcd_in_gga(X, Y, Divisor) -> U28_gga(X, Y, Divisor, =_in_ag(X3, X)) =_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)) -> U68_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)) -> U69_gg(X, Y, isGreater_in_gg(X, Y)) U12_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U13_gga(X, Y, Divisor, X1, =_in_ag(X2, Y)) U28_gga(X, Y, Divisor, =_out_ag(X3, X)) -> U29_gga(X, Y, Divisor, X3, =_in_ag(X4, Y)) U68_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U69_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U14_gga(X, Y, Divisor, X1, X2, isGreater_in_gg(X1, X2)) U13_gga(X, Y, Divisor, X1, =_out_ag(X2, Y)) -> U21_gga(X, Y, Divisor, X1, X2, =_in_gg(X1, X2)) U29_gga(X, Y, Divisor, X3, =_out_ag(X4, Y)) -> U30_gga(X, Y, Divisor, X3, X4, isLess_in_gg(X3, X4)) U14_gga(X, Y, Divisor, X1, X2, isGreater_out_gg(X1, X2)) -> U15_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U21_gga(X, Y, Divisor, X1, X2, =_out_gg(X1, X2)) -> U22_gga(X, Y, Divisor, X1, X2, =_in_ag(X3, Y)) U30_gga(X, Y, Divisor, X3, X4, isLess_out_gg(X3, X4)) -> U31_gga(X, Y, Divisor, =_in_ag(X1, X)) U15_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U16_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) =_in_gg(X, X) -> =_out_gg(X, X) U22_gga(X, Y, Divisor, X1, X2, =_out_ag(X3, Y)) -> U23_gga(X, Y, Divisor, X1, X2, X3, =_in_ag(X4, zero)) 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)) -> U70_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)) -> U71_gg(X, Y, isLess_in_gg(X, Y)) U31_gga(X, Y, Divisor, =_out_ag(X1, X)) -> U32_gga(X, Y, Divisor, X1, =_in_ag(X2, zero)) U16_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U17_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U23_gga(X, Y, Divisor, X1, X2, X3, =_out_ag(X4, zero)) -> U24_gga(X, Y, Divisor, isGreater_in_gg(X3, X4)) U70_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U71_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U32_gga(X, Y, Divisor, X1, =_out_ag(X2, zero)) -> U33_gga(X, Y, Divisor, isGreater_in_gg(X1, X2)) U17_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U18_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U24_gga(X, Y, Divisor, isGreater_out_gg(X3, X4)) -> U25_gga(X, Y, Divisor, isModulo_in_gga(X, Y, U)) U33_gga(X, Y, Divisor, isGreater_out_gg(X1, X2)) -> U34_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U18_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U19_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U25_gga(X, Y, Divisor, isModulo_out_gga(X, Y, U)) -> U26_gga(X, Y, Divisor, =_in_ag(Remainder, U)) U34_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) isModulo_in_gga(X, Y, Z) -> U65_gga(X, Y, Z, isDiv_in_gga(X, Y, A)) U19_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U20_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U26_gga(X, Y, Divisor, =_out_ag(Remainder, U)) -> U27_gga(X, Y, Divisor, gcd_in_gga(Y, Remainder, Divisor)) U65_gga(X, Y, Z, isDiv_out_gga(X, Y, A)) -> U66_gga(X, Y, Z, isTimes_in_gga(A, Y, B)) U20_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) U27_gga(X, Y, Divisor, gcd_out_gga(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) isDiv_in_gga(zero, succ(Y), zero) -> isDiv_out_gga(zero, succ(Y), zero) isDiv_in_gga(zero, pred(Y), zero) -> isDiv_out_gga(zero, pred(Y), zero) isDiv_in_gga(succ(X), succ(Y), zero) -> U53_gga(X, Y, isMinus_in_gga(succ(X), succ(Y), pred(Z))) isDiv_in_gga(succ(X), succ(Y), succ(Z)) -> U54_gga(X, Y, Z, isMinus_in_gga(succ(X), succ(Y), A)) isDiv_in_gga(succ(X), pred(Y), Z) -> U56_gga(X, Y, Z, isMinus_in_gga(zero, pred(Y), A)) isDiv_in_gga(pred(X), pred(Y), zero) -> U59_gga(X, Y, isMinus_in_gga(pred(X), pred(Y), succ(Z))) isDiv_in_gga(pred(X), pred(Y), succ(Z)) -> U60_gga(X, Y, Z, isMinus_in_gga(pred(X), pred(Y), A)) isDiv_in_gga(pred(X), succ(Y), Z) -> U62_gga(X, Y, Z, isMinus_in_gga(zero, pred(X), A)) U66_gga(X, Y, Z, isTimes_out_gga(A, Y, B)) -> U67_gga(X, Y, Z, isMinus_in_gga(X, B, Z)) U53_gga(X, Y, isMinus_out_gga(succ(X), succ(Y), pred(Z))) -> isDiv_out_gga(succ(X), succ(Y), zero) U54_gga(X, Y, Z, isMinus_out_gga(succ(X), succ(Y), A)) -> U55_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), Z)) U56_gga(X, Y, Z, isMinus_out_gga(zero, pred(Y), A)) -> U57_gga(X, Y, Z, isDiv_in_gga(succ(X), A, B)) U59_gga(X, Y, isMinus_out_gga(pred(X), pred(Y), succ(Z))) -> isDiv_out_gga(pred(X), pred(Y), zero) U60_gga(X, Y, Z, isMinus_out_gga(pred(X), pred(Y), A)) -> U61_gga(X, Y, Z, isDiv_in_gga(A, pred(Y), Z)) U62_gga(X, Y, Z, isMinus_out_gga(zero, pred(X), A)) -> U63_gga(X, Y, Z, isDiv_in_gga(A, succ(Y), B)) 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) -> U45_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(succ(X), pred(Y), Z) -> U47_gga(X, Y, Z, isTimes_in_gga(succ(X), Y, A)) isTimes_in_gga(pred(X), succ(Y), Z) -> U49_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) isTimes_in_gga(pred(X), pred(Y), Z) -> U51_gga(X, Y, Z, isTimes_in_gga(pred(X), Y, A)) U67_gga(X, Y, Z, isMinus_out_gga(X, B, Z)) -> isModulo_out_gga(X, Y, Z) isMinus_in_gga(succ(X), succ(Y), Z) -> U41_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U55_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), Z)) -> isDiv_out_gga(succ(X), succ(Y), succ(Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U40_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) U57_gga(X, Y, Z, isDiv_out_gga(succ(X), A, B)) -> U58_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U44_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U61_gga(X, Y, Z, isDiv_out_gga(A, pred(Y), Z)) -> isDiv_out_gga(pred(X), pred(Y), succ(Z)) U63_gga(X, Y, Z, isDiv_out_gga(A, succ(Y), B)) -> U64_gga(X, Y, Z, isMinus_in_gga(zero, B, Z)) U45_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U46_gga(X, Y, Z, isPlus_in_gga(A, succ(X), Z)) U47_gga(X, Y, Z, isTimes_out_gga(succ(X), Y, A)) -> U48_gga(X, Y, Z, isMinus_in_gga(A, succ(X), Z)) U49_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U50_gga(X, Y, Z, isPlus_in_gga(A, pred(X), Z)) U51_gga(X, Y, Z, isTimes_out_gga(pred(X), Y, A)) -> U52_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)) -> U39_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U42_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U43_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U41_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U40_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U58_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(succ(X), pred(Y), Z) U44_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U64_gga(X, Y, Z, isMinus_out_gga(zero, B, Z)) -> isDiv_out_gga(pred(X), succ(Y), Z) U46_gga(X, Y, Z, isPlus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), succ(Y), Z) U48_gga(X, Y, Z, isMinus_out_gga(A, succ(X), Z)) -> isTimes_out_gga(succ(X), pred(Y), Z) U50_gga(X, Y, Z, isPlus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), succ(Y), Z) U52_gga(X, Y, Z, isMinus_out_gga(A, pred(X), Z)) -> isTimes_out_gga(pred(X), pred(Y), Z) U39_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U42_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U43_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U35_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), succ(Y), Z) -> U37_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U36_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U38_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U35_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U37_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U36_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U38_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) The argument filtering Pi contains the following mapping: frac(x1, x2) = frac(x1, x2) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) zero = zero gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2, x3) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x4, x5) U14_gga(x1, x2, x3, x4, x5, x6) = U14_gga(x1, x2, x6) 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) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U15_gga(x1, x2, x3, x4, x5, x6) = U15_gga(x1, x2, x6) U16_gga(x1, x2, x3, x4, x5, x6, x7) = U16_gga(x1, x2, x6, x7) U17_gga(x1, x2, x3, x4) = U17_gga(x1, x2, x4) U18_gga(x1, x2, x3, x4) = U18_gga(x1, x2, x4) isModulo_in_gga(x1, x2, x3) = isModulo_in_gga(x1, x2) U65_gga(x1, x2, x3, x4) = U65_gga(x1, x2, x4) isDiv_in_gga(x1, x2, x3) = isDiv_in_gga(x1, x2) isDiv_out_gga(x1, x2, x3) = isDiv_out_gga(x1, x2, x3) U53_gga(x1, x2, x3) = U53_gga(x1, x2, x3) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U39_gga(x1, x2, x3) = U39_gga(x1, x3) U40_gga(x1, x2, x3) = U40_gga(x1, x3) U41_gga(x1, x2, x3, x4) = U41_gga(x1, x2, x4) U42_gga(x1, x2, x3, x4) = U42_gga(x1, x2, x4) U43_gga(x1, x2, x3, x4) = U43_gga(x1, x2, x4) U44_gga(x1, x2, x3, x4) = U44_gga(x1, x2, x4) U54_gga(x1, x2, x3, x4) = U54_gga(x1, x2, x4) U55_gga(x1, x2, x3, x4) = U55_gga(x1, x2, x4) U56_gga(x1, x2, x3, x4) = U56_gga(x1, x2, x4) U57_gga(x1, x2, x3, x4) = U57_gga(x1, x2, x4) U59_gga(x1, x2, x3) = U59_gga(x1, x2, x3) U60_gga(x1, x2, x3, x4) = U60_gga(x1, x2, x4) U61_gga(x1, x2, x3, x4) = U61_gga(x1, x2, x4) U62_gga(x1, x2, x3, x4) = U62_gga(x1, x2, x4) U63_gga(x1, x2, x3, x4) = U63_gga(x1, x2, x4) U64_gga(x1, x2, x3, x4) = U64_gga(x1, x2, x4) U58_gga(x1, x2, x3, x4) = U58_gga(x1, x2, x4) U66_gga(x1, x2, x3, x4) = U66_gga(x1, x2, x4) isTimes_in_gga(x1, x2, x3) = isTimes_in_gga(x1, x2) isTimes_out_gga(x1, x2, x3) = isTimes_out_gga(x1, x2, x3) U45_gga(x1, x2, x3, x4) = U45_gga(x1, x2, x4) U47_gga(x1, x2, x3, x4) = U47_gga(x1, x2, x4) U49_gga(x1, x2, x3, x4) = U49_gga(x1, x2, x4) U51_gga(x1, x2, x3, x4) = U51_gga(x1, x2, x4) U52_gga(x1, x2, x3, x4) = U52_gga(x1, x2, x4) U50_gga(x1, x2, x3, x4) = U50_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) 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) U48_gga(x1, x2, x3, x4) = U48_gga(x1, x2, x4) U46_gga(x1, x2, x3, x4) = U46_gga(x1, x2, x4) U67_gga(x1, x2, x3, x4) = U67_gga(x1, x2, x4) isModulo_out_gga(x1, x2, x3) = isModulo_out_gga(x1, x2, x3) U19_gga(x1, x2, x3, x4) = U19_gga(x1, x2, x4) U20_gga(x1, x2, x3, x4) = U20_gga(x1, x2, x4) U28_gga(x1, x2, x3, x4) = U28_gga(x1, x2, x4) U29_gga(x1, x2, x3, x4, x5) = U29_gga(x1, x2, x4, x5) U30_gga(x1, x2, x3, x4, x5, x6) = U30_gga(x1, x2, x6) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U31_gga(x1, x2, x3, x4) = U31_gga(x1, x2, x4) U32_gga(x1, x2, x3, x4, x5) = U32_gga(x1, x2, x4, x5) U33_gga(x1, x2, x3, x4) = U33_gga(x1, x2, x4) U34_gga(x1, x2, x3, x4) = U34_gga(x1, x2, x4) U21_gga(x1, x2, x3, x4, x5, x6) = U21_gga(x1, x2, x6) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U22_gga(x1, x2, x3, x4, x5, x6) = U22_gga(x1, x2, x6) U23_gga(x1, x2, x3, x4, x5, x6, x7) = U23_gga(x1, x2, x6, x7) U24_gga(x1, x2, x3, x4) = U24_gga(x1, x2, x4) U25_gga(x1, x2, x3, x4) = U25_gga(x1, x2, x4) U26_gga(x1, x2, x3, x4) = U26_gga(x1, x2, x4) U27_gga(x1, x2, x3, x4) = U27_gga(x1, x2, x4) //(x1, x2) = //(x1, x2) REDUCE_IN_GA(x1, x2) = REDUCE_IN_GA(x1) U5_GA(x1, x2, x3, x4, x5) = U5_GA(x1, x2, x5) U6_GA(x1, x2, x3, x4, x5, x6) = U6_GA(x1, x2, x5, x6) U7_GA(x1, x2, x3, x4, x5, x6, x7) = U7_GA(x1, x2, x5, x6, x7) U8_GA(x1, x2, x3, x4, x5, x6) = U8_GA(x1, x2, x5, x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (149) CutEliminatorProof (SOUND) Eliminated all cuts by simply ignoring them[PROLOG]. ---------------------------------------- (150) Obligation: Clauses: reduce(frac(C, D), frac(C, D)) :- ','(gcd(C, D, Gcd), =:=(Gcd, 1)). reduce(frac(C, D), frac(Cres, Dres)) :- ','(gcd(C, D, Gcd), ','(>(Gcd, 1), ','(reduce(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)), ','(is(Cres, CRec), is(Dres, DRec))))). gcd(X, 0, X). gcd(0, X, X). gcd(X, Y, Divisor) :- ','(>=(X, Y), ','(>(Y, 0), ','(is(Remainder, mod(X, Y)), gcd(Y, Remainder, Divisor)))). gcd(X, Y, Divisor) :- ','(<(X, Y), ','(>(X, 0), gcd(Y, X, Divisor))). Query: reduce(g,a) ---------------------------------------- (151) UndefinedPredicateHandlerProof (SOUND) Added facts for all undefined predicates [PROLOG]. ---------------------------------------- (152) Obligation: Clauses: reduce(frac(C, D), frac(C, D)) :- ','(gcd(C, D, Gcd), =:=(Gcd, 1)). reduce(frac(C, D), frac(Cres, Dres)) :- ','(gcd(C, D, Gcd), ','(>(Gcd, 1), ','(reduce(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)), ','(is(Cres, CRec), is(Dres, DRec))))). gcd(X, 0, X). gcd(0, X, X). gcd(X, Y, Divisor) :- ','(>=(X, Y), ','(>(Y, 0), ','(is(Remainder, mod(X, Y)), gcd(Y, Remainder, Divisor)))). gcd(X, Y, Divisor) :- ','(<(X, Y), ','(>(X, 0), gcd(Y, X, Divisor))). =:=(X0, X1). >(X0, X1). is(X0, X1). >=(X0, X1). <(X0, X1). Query: reduce(g,a) ---------------------------------------- (153) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: reduce_in_2: (b,f) (f,f) gcd_in_3: (b,b,f) (b,f,f) (f,f,f) (f,b,f) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, 0, X) -> gcd_out_gga(X, 0, X) gcd_in_gga(0, X, X) -> gcd_out_gga(0, X, X) gcd_in_gga(X, Y, Divisor) -> U8_gga(X, Y, Divisor, >=_in_gg(X, Y)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U8_gga(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_gga(X, Y, Divisor, >_in_gg(Y, 0)) >_in_gg(X0, X1) -> >_out_gg(X0, X1) U9_gga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_gga(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U10_gga(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_gga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) gcd_in_gaa(X, 0, X) -> gcd_out_gaa(X, 0, X) gcd_in_gaa(0, X, X) -> gcd_out_gaa(0, X, X) gcd_in_gaa(X, Y, Divisor) -> U8_gaa(X, Y, Divisor, >=_in_ga(X, Y)) >=_in_ga(X0, X1) -> >=_out_ga(X0, X1) U8_gaa(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_gaa(X, Y, Divisor, >_in_ag(Y, 0)) >_in_ag(X0, X1) -> >_out_ag(X0, X1) U9_gaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_gaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U10_gaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_gaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, 0, X) -> gcd_out_aaa(X, 0, X) gcd_in_aaa(0, X, X) -> gcd_out_aaa(0, X, X) gcd_in_aaa(X, Y, Divisor) -> U8_aaa(X, Y, Divisor, >=_in_aa(X, Y)) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) U8_aaa(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_aaa(X, Y, Divisor, >_in_ag(Y, 0)) U9_aaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_aaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, Y, Divisor) -> U12_aaa(X, Y, Divisor, <_in_aa(X, Y)) <_in_aa(X0, X1) -> <_out_aa(X0, X1) U12_aaa(X, Y, Divisor, <_out_aa(X, Y)) -> U13_aaa(X, Y, Divisor, >_in_ag(X, 0)) U13_aaa(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aaa(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U14_aaa(X, Y, Divisor, gcd_out_aaa(Y, X, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_aaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_gaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_gaa(X, Y, Divisor) gcd_in_gaa(X, Y, Divisor) -> U12_gaa(X, Y, Divisor, <_in_ga(X, Y)) <_in_ga(X0, X1) -> <_out_ga(X0, X1) U12_gaa(X, Y, Divisor, <_out_ga(X, Y)) -> U13_gaa(X, Y, Divisor, >_in_gg(X, 0)) U13_gaa(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gaa(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) gcd_in_aga(X, 0, X) -> gcd_out_aga(X, 0, X) gcd_in_aga(0, X, X) -> gcd_out_aga(0, X, X) gcd_in_aga(X, Y, Divisor) -> U8_aga(X, Y, Divisor, >=_in_ag(X, Y)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U8_aga(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_aga(X, Y, Divisor, >_in_gg(Y, 0)) U9_aga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_aga(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aga(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U11_aga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_aga(X, Y, Divisor) gcd_in_aga(X, Y, Divisor) -> U12_aga(X, Y, Divisor, <_in_ag(X, Y)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U12_aga(X, Y, Divisor, <_out_ag(X, Y)) -> U13_aga(X, Y, Divisor, >_in_ag(X, 0)) U13_aga(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aga(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U14_aga(X, Y, Divisor, gcd_out_gaa(Y, X, Divisor)) -> gcd_out_aga(X, Y, Divisor) U14_gaa(X, Y, Divisor, gcd_out_aga(Y, X, Divisor)) -> gcd_out_gaa(X, Y, Divisor) U11_gga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, <_in_gg(X, Y)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U12_gga(X, Y, Divisor, <_out_gg(X, Y)) -> U13_gga(X, Y, Divisor, >_in_gg(X, 0)) U13_gga(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U14_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =:=_in_ag(Gcd, 1)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U2_ga(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U3_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U3_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_ga(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_ga(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_ga(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) reduce_in_aa(frac(C, D), frac(C, D)) -> U1_aa(C, D, gcd_in_aaa(C, D, Gcd)) U1_aa(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_aa(C, D, =:=_in_ag(Gcd, 1)) U2_aa(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_aa(frac(C, D), frac(C, D)) reduce_in_aa(frac(C, D), frac(Cres, Dres)) -> U3_aa(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_aa(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_aa(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_aa(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_aa(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U5_aa(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_aa(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_aa(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_aa(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_aa(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_aa(frac(C, D), frac(Cres, Dres)) U5_ga(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_ga(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_ga(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_ga(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_ga(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) 0 = 0 gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2) U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) mod(x1, x2) = mod(x1, x2) U11_gga(x1, x2, x3, x4, x5) = U11_gga(x1, x2, x5) gcd_in_gaa(x1, x2, x3) = gcd_in_gaa(x1) gcd_out_gaa(x1, x2, x3) = gcd_out_gaa(x1) U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) >=_in_ga(x1, x2) = >=_in_ga(x1) >=_out_ga(x1, x2) = >=_out_ga(x1) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag(x2) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x1, x5) gcd_in_aaa(x1, x2, x3) = gcd_in_aaa gcd_out_aaa(x1, x2, x3) = gcd_out_aaa U8_aaa(x1, x2, x3, x4) = U8_aaa(x4) >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) U11_aaa(x1, x2, x3, x4, x5) = U11_aaa(x5) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa U13_aaa(x1, x2, x3, x4) = U13_aaa(x4) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) <_in_ga(x1, x2) = <_in_ga(x1) <_out_ga(x1, x2) = <_out_ga(x1) U13_gaa(x1, x2, x3, x4) = U13_gaa(x1, x4) U14_gaa(x1, x2, x3, x4) = U14_gaa(x1, x4) gcd_in_aga(x1, x2, x3) = gcd_in_aga(x2) gcd_out_aga(x1, x2, x3) = gcd_out_aga(x2) U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag(x2) U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4, x5) = U11_aga(x2, x5) U12_aga(x1, x2, x3, x4) = U12_aga(x2, x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag(x2) U13_aga(x1, x2, x3, x4) = U13_aga(x2, x4) U14_aga(x1, x2, x3, x4) = U14_aga(x2, x4) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg(x1, x2) U13_gga(x1, x2, x3, x4) = U13_gga(x1, x2, x4) U14_gga(x1, x2, x3, x4) = U14_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag(x2) 1 = 1 reduce_out_ga(x1, x2) = reduce_out_ga(x1) U3_ga(x1, x2, x3, x4, x5) = U3_ga(x1, x2, x5) U4_ga(x1, x2, x3, x4, x5, x6) = U4_ga(x1, x2, x6) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) reduce_in_aa(x1, x2) = reduce_in_aa U1_aa(x1, x2, x3) = U1_aa(x3) U2_aa(x1, x2, x3) = U2_aa(x3) reduce_out_aa(x1, x2) = reduce_out_aa U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) U4_aa(x1, x2, x3, x4, x5, x6) = U4_aa(x6) U5_aa(x1, x2, x3, x4, x5) = U5_aa(x5) U6_aa(x1, x2, x3, x4, x5, x6) = U6_aa(x6) U7_aa(x1, x2, x3, x4, x5) = U7_aa(x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x6) U7_ga(x1, x2, x3, x4, x5) = U7_ga(x1, x2, x5) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (154) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, 0, X) -> gcd_out_gga(X, 0, X) gcd_in_gga(0, X, X) -> gcd_out_gga(0, X, X) gcd_in_gga(X, Y, Divisor) -> U8_gga(X, Y, Divisor, >=_in_gg(X, Y)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U8_gga(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_gga(X, Y, Divisor, >_in_gg(Y, 0)) >_in_gg(X0, X1) -> >_out_gg(X0, X1) U9_gga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_gga(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U10_gga(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_gga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) gcd_in_gaa(X, 0, X) -> gcd_out_gaa(X, 0, X) gcd_in_gaa(0, X, X) -> gcd_out_gaa(0, X, X) gcd_in_gaa(X, Y, Divisor) -> U8_gaa(X, Y, Divisor, >=_in_ga(X, Y)) >=_in_ga(X0, X1) -> >=_out_ga(X0, X1) U8_gaa(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_gaa(X, Y, Divisor, >_in_ag(Y, 0)) >_in_ag(X0, X1) -> >_out_ag(X0, X1) U9_gaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_gaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U10_gaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_gaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, 0, X) -> gcd_out_aaa(X, 0, X) gcd_in_aaa(0, X, X) -> gcd_out_aaa(0, X, X) gcd_in_aaa(X, Y, Divisor) -> U8_aaa(X, Y, Divisor, >=_in_aa(X, Y)) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) U8_aaa(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_aaa(X, Y, Divisor, >_in_ag(Y, 0)) U9_aaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_aaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, Y, Divisor) -> U12_aaa(X, Y, Divisor, <_in_aa(X, Y)) <_in_aa(X0, X1) -> <_out_aa(X0, X1) U12_aaa(X, Y, Divisor, <_out_aa(X, Y)) -> U13_aaa(X, Y, Divisor, >_in_ag(X, 0)) U13_aaa(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aaa(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U14_aaa(X, Y, Divisor, gcd_out_aaa(Y, X, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_aaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_gaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_gaa(X, Y, Divisor) gcd_in_gaa(X, Y, Divisor) -> U12_gaa(X, Y, Divisor, <_in_ga(X, Y)) <_in_ga(X0, X1) -> <_out_ga(X0, X1) U12_gaa(X, Y, Divisor, <_out_ga(X, Y)) -> U13_gaa(X, Y, Divisor, >_in_gg(X, 0)) U13_gaa(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gaa(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) gcd_in_aga(X, 0, X) -> gcd_out_aga(X, 0, X) gcd_in_aga(0, X, X) -> gcd_out_aga(0, X, X) gcd_in_aga(X, Y, Divisor) -> U8_aga(X, Y, Divisor, >=_in_ag(X, Y)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U8_aga(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_aga(X, Y, Divisor, >_in_gg(Y, 0)) U9_aga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_aga(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aga(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U11_aga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_aga(X, Y, Divisor) gcd_in_aga(X, Y, Divisor) -> U12_aga(X, Y, Divisor, <_in_ag(X, Y)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U12_aga(X, Y, Divisor, <_out_ag(X, Y)) -> U13_aga(X, Y, Divisor, >_in_ag(X, 0)) U13_aga(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aga(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U14_aga(X, Y, Divisor, gcd_out_gaa(Y, X, Divisor)) -> gcd_out_aga(X, Y, Divisor) U14_gaa(X, Y, Divisor, gcd_out_aga(Y, X, Divisor)) -> gcd_out_gaa(X, Y, Divisor) U11_gga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, <_in_gg(X, Y)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U12_gga(X, Y, Divisor, <_out_gg(X, Y)) -> U13_gga(X, Y, Divisor, >_in_gg(X, 0)) U13_gga(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U14_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =:=_in_ag(Gcd, 1)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U2_ga(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U3_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U3_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_ga(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_ga(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_ga(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) reduce_in_aa(frac(C, D), frac(C, D)) -> U1_aa(C, D, gcd_in_aaa(C, D, Gcd)) U1_aa(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_aa(C, D, =:=_in_ag(Gcd, 1)) U2_aa(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_aa(frac(C, D), frac(C, D)) reduce_in_aa(frac(C, D), frac(Cres, Dres)) -> U3_aa(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_aa(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_aa(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_aa(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_aa(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U5_aa(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_aa(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_aa(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_aa(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_aa(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_aa(frac(C, D), frac(Cres, Dres)) U5_ga(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_ga(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_ga(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_ga(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_ga(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) 0 = 0 gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2) U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) mod(x1, x2) = mod(x1, x2) U11_gga(x1, x2, x3, x4, x5) = U11_gga(x1, x2, x5) gcd_in_gaa(x1, x2, x3) = gcd_in_gaa(x1) gcd_out_gaa(x1, x2, x3) = gcd_out_gaa(x1) U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) >=_in_ga(x1, x2) = >=_in_ga(x1) >=_out_ga(x1, x2) = >=_out_ga(x1) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag(x2) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x1, x5) gcd_in_aaa(x1, x2, x3) = gcd_in_aaa gcd_out_aaa(x1, x2, x3) = gcd_out_aaa U8_aaa(x1, x2, x3, x4) = U8_aaa(x4) >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) U11_aaa(x1, x2, x3, x4, x5) = U11_aaa(x5) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa U13_aaa(x1, x2, x3, x4) = U13_aaa(x4) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) <_in_ga(x1, x2) = <_in_ga(x1) <_out_ga(x1, x2) = <_out_ga(x1) U13_gaa(x1, x2, x3, x4) = U13_gaa(x1, x4) U14_gaa(x1, x2, x3, x4) = U14_gaa(x1, x4) gcd_in_aga(x1, x2, x3) = gcd_in_aga(x2) gcd_out_aga(x1, x2, x3) = gcd_out_aga(x2) U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag(x2) U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4, x5) = U11_aga(x2, x5) U12_aga(x1, x2, x3, x4) = U12_aga(x2, x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag(x2) U13_aga(x1, x2, x3, x4) = U13_aga(x2, x4) U14_aga(x1, x2, x3, x4) = U14_aga(x2, x4) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg(x1, x2) U13_gga(x1, x2, x3, x4) = U13_gga(x1, x2, x4) U14_gga(x1, x2, x3, x4) = U14_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag(x2) 1 = 1 reduce_out_ga(x1, x2) = reduce_out_ga(x1) U3_ga(x1, x2, x3, x4, x5) = U3_ga(x1, x2, x5) U4_ga(x1, x2, x3, x4, x5, x6) = U4_ga(x1, x2, x6) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) reduce_in_aa(x1, x2) = reduce_in_aa U1_aa(x1, x2, x3) = U1_aa(x3) U2_aa(x1, x2, x3) = U2_aa(x3) reduce_out_aa(x1, x2) = reduce_out_aa U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) U4_aa(x1, x2, x3, x4, x5, x6) = U4_aa(x6) U5_aa(x1, x2, x3, x4, x5) = U5_aa(x5) U6_aa(x1, x2, x3, x4, x5, x6) = U6_aa(x6) U7_aa(x1, x2, x3, x4, x5) = U7_aa(x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x6) U7_ga(x1, x2, x3, x4, x5) = U7_ga(x1, x2, x5) ---------------------------------------- (155) 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: REDUCE_IN_GA(frac(C, D), frac(C, D)) -> U1_GA(C, D, gcd_in_gga(C, D, Gcd)) REDUCE_IN_GA(frac(C, D), frac(C, D)) -> GCD_IN_GGA(C, D, Gcd) GCD_IN_GGA(X, Y, Divisor) -> U8_GGA(X, Y, Divisor, >=_in_gg(X, Y)) GCD_IN_GGA(X, Y, Divisor) -> >=_IN_GG(X, Y) U8_GGA(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_GGA(X, Y, Divisor, >_in_gg(Y, 0)) U8_GGA(X, Y, Divisor, >=_out_gg(X, Y)) -> >_IN_GG(Y, 0) U9_GGA(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_GGA(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) U9_GGA(X, Y, Divisor, >_out_gg(Y, 0)) -> IS_IN_AG(Remainder, mod(X, Y)) U10_GGA(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_GGA(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U10_GGA(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> GCD_IN_GAA(Y, Remainder, Divisor) GCD_IN_GAA(X, Y, Divisor) -> U8_GAA(X, Y, Divisor, >=_in_ga(X, Y)) GCD_IN_GAA(X, Y, Divisor) -> >=_IN_GA(X, Y) U8_GAA(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_GAA(X, Y, Divisor, >_in_ag(Y, 0)) U8_GAA(X, Y, Divisor, >=_out_ga(X, Y)) -> >_IN_AG(Y, 0) U9_GAA(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_GAA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U9_GAA(X, Y, Divisor, >_out_ag(Y, 0)) -> IS_IN_AA(Remainder, mod(X, Y)) U10_GAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_GAA(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) U10_GAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_AAA(Y, Remainder, Divisor) GCD_IN_AAA(X, Y, Divisor) -> U8_AAA(X, Y, Divisor, >=_in_aa(X, Y)) GCD_IN_AAA(X, Y, Divisor) -> >=_IN_AA(X, Y) U8_AAA(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_AAA(X, Y, Divisor, >_in_ag(Y, 0)) U8_AAA(X, Y, Divisor, >=_out_aa(X, Y)) -> >_IN_AG(Y, 0) U9_AAA(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_AAA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U9_AAA(X, Y, Divisor, >_out_ag(Y, 0)) -> IS_IN_AA(Remainder, mod(X, Y)) U10_AAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_AAA(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) U10_AAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_AAA(Y, Remainder, Divisor) GCD_IN_AAA(X, Y, Divisor) -> U12_AAA(X, Y, Divisor, <_in_aa(X, Y)) GCD_IN_AAA(X, Y, Divisor) -> <_IN_AA(X, Y) U12_AAA(X, Y, Divisor, <_out_aa(X, Y)) -> U13_AAA(X, Y, Divisor, >_in_ag(X, 0)) U12_AAA(X, Y, Divisor, <_out_aa(X, Y)) -> >_IN_AG(X, 0) U13_AAA(X, Y, Divisor, >_out_ag(X, 0)) -> U14_AAA(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U13_AAA(X, Y, Divisor, >_out_ag(X, 0)) -> GCD_IN_AAA(Y, X, Divisor) GCD_IN_GAA(X, Y, Divisor) -> U12_GAA(X, Y, Divisor, <_in_ga(X, Y)) GCD_IN_GAA(X, Y, Divisor) -> <_IN_GA(X, Y) U12_GAA(X, Y, Divisor, <_out_ga(X, Y)) -> U13_GAA(X, Y, Divisor, >_in_gg(X, 0)) U12_GAA(X, Y, Divisor, <_out_ga(X, Y)) -> >_IN_GG(X, 0) U13_GAA(X, Y, Divisor, >_out_gg(X, 0)) -> U14_GAA(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) U13_GAA(X, Y, Divisor, >_out_gg(X, 0)) -> GCD_IN_AGA(Y, X, Divisor) GCD_IN_AGA(X, Y, Divisor) -> U8_AGA(X, Y, Divisor, >=_in_ag(X, Y)) GCD_IN_AGA(X, Y, Divisor) -> >=_IN_AG(X, Y) U8_AGA(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_AGA(X, Y, Divisor, >_in_gg(Y, 0)) U8_AGA(X, Y, Divisor, >=_out_ag(X, Y)) -> >_IN_GG(Y, 0) U9_AGA(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_AGA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U9_AGA(X, Y, Divisor, >_out_gg(Y, 0)) -> IS_IN_AA(Remainder, mod(X, Y)) U10_AGA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_AGA(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U10_AGA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_GAA(Y, Remainder, Divisor) GCD_IN_AGA(X, Y, Divisor) -> U12_AGA(X, Y, Divisor, <_in_ag(X, Y)) GCD_IN_AGA(X, Y, Divisor) -> <_IN_AG(X, Y) U12_AGA(X, Y, Divisor, <_out_ag(X, Y)) -> U13_AGA(X, Y, Divisor, >_in_ag(X, 0)) U12_AGA(X, Y, Divisor, <_out_ag(X, Y)) -> >_IN_AG(X, 0) U13_AGA(X, Y, Divisor, >_out_ag(X, 0)) -> U14_AGA(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U13_AGA(X, Y, Divisor, >_out_ag(X, 0)) -> GCD_IN_GAA(Y, X, Divisor) GCD_IN_GGA(X, Y, Divisor) -> U12_GGA(X, Y, Divisor, <_in_gg(X, Y)) GCD_IN_GGA(X, Y, Divisor) -> <_IN_GG(X, Y) U12_GGA(X, Y, Divisor, <_out_gg(X, Y)) -> U13_GGA(X, Y, Divisor, >_in_gg(X, 0)) U12_GGA(X, Y, Divisor, <_out_gg(X, Y)) -> >_IN_GG(X, 0) U13_GGA(X, Y, Divisor, >_out_gg(X, 0)) -> U14_GGA(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U13_GGA(X, Y, Divisor, >_out_gg(X, 0)) -> GCD_IN_GGA(Y, X, Divisor) U1_GA(C, D, gcd_out_gga(C, D, Gcd)) -> U2_GA(C, D, =:=_in_ag(Gcd, 1)) U1_GA(C, D, gcd_out_gga(C, D, Gcd)) -> =:=_IN_AG(Gcd, 1) REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> U3_GA(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> GCD_IN_GGA(C, D, Gcd) U3_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_GA(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U3_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> >_IN_AG(Gcd, 1) U4_GA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_GA(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U4_GA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> REDUCE_IN_AA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) REDUCE_IN_AA(frac(C, D), frac(C, D)) -> U1_AA(C, D, gcd_in_aaa(C, D, Gcd)) REDUCE_IN_AA(frac(C, D), frac(C, D)) -> GCD_IN_AAA(C, D, Gcd) U1_AA(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_AA(C, D, =:=_in_ag(Gcd, 1)) U1_AA(C, D, gcd_out_aaa(C, D, Gcd)) -> =:=_IN_AG(Gcd, 1) REDUCE_IN_AA(frac(C, D), frac(Cres, Dres)) -> U3_AA(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) REDUCE_IN_AA(frac(C, D), frac(Cres, Dres)) -> GCD_IN_AAA(C, D, Gcd) U3_AA(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_AA(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U3_AA(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> >_IN_AG(Gcd, 1) U4_AA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_AA(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U4_AA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> REDUCE_IN_AA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) U5_AA(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_AA(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U5_AA(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> IS_IN_AA(Cres, CRec) U6_AA(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_AA(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U6_AA(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> IS_IN_AA(Dres, DRec) U5_GA(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_GA(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U5_GA(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> IS_IN_AA(Cres, CRec) U6_GA(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_GA(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U6_GA(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> IS_IN_AA(Dres, DRec) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, 0, X) -> gcd_out_gga(X, 0, X) gcd_in_gga(0, X, X) -> gcd_out_gga(0, X, X) gcd_in_gga(X, Y, Divisor) -> U8_gga(X, Y, Divisor, >=_in_gg(X, Y)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U8_gga(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_gga(X, Y, Divisor, >_in_gg(Y, 0)) >_in_gg(X0, X1) -> >_out_gg(X0, X1) U9_gga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_gga(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U10_gga(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_gga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) gcd_in_gaa(X, 0, X) -> gcd_out_gaa(X, 0, X) gcd_in_gaa(0, X, X) -> gcd_out_gaa(0, X, X) gcd_in_gaa(X, Y, Divisor) -> U8_gaa(X, Y, Divisor, >=_in_ga(X, Y)) >=_in_ga(X0, X1) -> >=_out_ga(X0, X1) U8_gaa(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_gaa(X, Y, Divisor, >_in_ag(Y, 0)) >_in_ag(X0, X1) -> >_out_ag(X0, X1) U9_gaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_gaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U10_gaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_gaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, 0, X) -> gcd_out_aaa(X, 0, X) gcd_in_aaa(0, X, X) -> gcd_out_aaa(0, X, X) gcd_in_aaa(X, Y, Divisor) -> U8_aaa(X, Y, Divisor, >=_in_aa(X, Y)) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) U8_aaa(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_aaa(X, Y, Divisor, >_in_ag(Y, 0)) U9_aaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_aaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, Y, Divisor) -> U12_aaa(X, Y, Divisor, <_in_aa(X, Y)) <_in_aa(X0, X1) -> <_out_aa(X0, X1) U12_aaa(X, Y, Divisor, <_out_aa(X, Y)) -> U13_aaa(X, Y, Divisor, >_in_ag(X, 0)) U13_aaa(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aaa(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U14_aaa(X, Y, Divisor, gcd_out_aaa(Y, X, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_aaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_gaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_gaa(X, Y, Divisor) gcd_in_gaa(X, Y, Divisor) -> U12_gaa(X, Y, Divisor, <_in_ga(X, Y)) <_in_ga(X0, X1) -> <_out_ga(X0, X1) U12_gaa(X, Y, Divisor, <_out_ga(X, Y)) -> U13_gaa(X, Y, Divisor, >_in_gg(X, 0)) U13_gaa(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gaa(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) gcd_in_aga(X, 0, X) -> gcd_out_aga(X, 0, X) gcd_in_aga(0, X, X) -> gcd_out_aga(0, X, X) gcd_in_aga(X, Y, Divisor) -> U8_aga(X, Y, Divisor, >=_in_ag(X, Y)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U8_aga(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_aga(X, Y, Divisor, >_in_gg(Y, 0)) U9_aga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_aga(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aga(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U11_aga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_aga(X, Y, Divisor) gcd_in_aga(X, Y, Divisor) -> U12_aga(X, Y, Divisor, <_in_ag(X, Y)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U12_aga(X, Y, Divisor, <_out_ag(X, Y)) -> U13_aga(X, Y, Divisor, >_in_ag(X, 0)) U13_aga(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aga(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U14_aga(X, Y, Divisor, gcd_out_gaa(Y, X, Divisor)) -> gcd_out_aga(X, Y, Divisor) U14_gaa(X, Y, Divisor, gcd_out_aga(Y, X, Divisor)) -> gcd_out_gaa(X, Y, Divisor) U11_gga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, <_in_gg(X, Y)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U12_gga(X, Y, Divisor, <_out_gg(X, Y)) -> U13_gga(X, Y, Divisor, >_in_gg(X, 0)) U13_gga(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U14_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =:=_in_ag(Gcd, 1)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U2_ga(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U3_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U3_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_ga(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_ga(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_ga(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) reduce_in_aa(frac(C, D), frac(C, D)) -> U1_aa(C, D, gcd_in_aaa(C, D, Gcd)) U1_aa(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_aa(C, D, =:=_in_ag(Gcd, 1)) U2_aa(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_aa(frac(C, D), frac(C, D)) reduce_in_aa(frac(C, D), frac(Cres, Dres)) -> U3_aa(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_aa(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_aa(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_aa(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_aa(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U5_aa(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_aa(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_aa(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_aa(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_aa(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_aa(frac(C, D), frac(Cres, Dres)) U5_ga(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_ga(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_ga(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_ga(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_ga(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) 0 = 0 gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2) U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) mod(x1, x2) = mod(x1, x2) U11_gga(x1, x2, x3, x4, x5) = U11_gga(x1, x2, x5) gcd_in_gaa(x1, x2, x3) = gcd_in_gaa(x1) gcd_out_gaa(x1, x2, x3) = gcd_out_gaa(x1) U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) >=_in_ga(x1, x2) = >=_in_ga(x1) >=_out_ga(x1, x2) = >=_out_ga(x1) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag(x2) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x1, x5) gcd_in_aaa(x1, x2, x3) = gcd_in_aaa gcd_out_aaa(x1, x2, x3) = gcd_out_aaa U8_aaa(x1, x2, x3, x4) = U8_aaa(x4) >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) U11_aaa(x1, x2, x3, x4, x5) = U11_aaa(x5) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa U13_aaa(x1, x2, x3, x4) = U13_aaa(x4) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) <_in_ga(x1, x2) = <_in_ga(x1) <_out_ga(x1, x2) = <_out_ga(x1) U13_gaa(x1, x2, x3, x4) = U13_gaa(x1, x4) U14_gaa(x1, x2, x3, x4) = U14_gaa(x1, x4) gcd_in_aga(x1, x2, x3) = gcd_in_aga(x2) gcd_out_aga(x1, x2, x3) = gcd_out_aga(x2) U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag(x2) U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4, x5) = U11_aga(x2, x5) U12_aga(x1, x2, x3, x4) = U12_aga(x2, x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag(x2) U13_aga(x1, x2, x3, x4) = U13_aga(x2, x4) U14_aga(x1, x2, x3, x4) = U14_aga(x2, x4) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg(x1, x2) U13_gga(x1, x2, x3, x4) = U13_gga(x1, x2, x4) U14_gga(x1, x2, x3, x4) = U14_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag(x2) 1 = 1 reduce_out_ga(x1, x2) = reduce_out_ga(x1) U3_ga(x1, x2, x3, x4, x5) = U3_ga(x1, x2, x5) U4_ga(x1, x2, x3, x4, x5, x6) = U4_ga(x1, x2, x6) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) reduce_in_aa(x1, x2) = reduce_in_aa U1_aa(x1, x2, x3) = U1_aa(x3) U2_aa(x1, x2, x3) = U2_aa(x3) reduce_out_aa(x1, x2) = reduce_out_aa U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) U4_aa(x1, x2, x3, x4, x5, x6) = U4_aa(x6) U5_aa(x1, x2, x3, x4, x5) = U5_aa(x5) U6_aa(x1, x2, x3, x4, x5, x6) = U6_aa(x6) U7_aa(x1, x2, x3, x4, x5) = U7_aa(x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x6) U7_ga(x1, x2, x3, x4, x5) = U7_ga(x1, x2, x5) REDUCE_IN_GA(x1, x2) = REDUCE_IN_GA(x1) U1_GA(x1, x2, x3) = U1_GA(x1, x2, x3) GCD_IN_GGA(x1, x2, x3) = GCD_IN_GGA(x1, x2) U8_GGA(x1, x2, x3, x4) = U8_GGA(x1, x2, x4) >=_IN_GG(x1, x2) = >=_IN_GG(x1, x2) U9_GGA(x1, x2, x3, x4) = U9_GGA(x1, x2, x4) >_IN_GG(x1, x2) = >_IN_GG(x1, x2) U10_GGA(x1, x2, x3, x4) = U10_GGA(x1, x2, x4) IS_IN_AG(x1, x2) = IS_IN_AG(x2) U11_GGA(x1, x2, x3, x4, x5) = U11_GGA(x1, x2, x5) GCD_IN_GAA(x1, x2, x3) = GCD_IN_GAA(x1) U8_GAA(x1, x2, x3, x4) = U8_GAA(x1, x4) >=_IN_GA(x1, x2) = >=_IN_GA(x1) U9_GAA(x1, x2, x3, x4) = U9_GAA(x1, x4) >_IN_AG(x1, x2) = >_IN_AG(x2) U10_GAA(x1, x2, x3, x4) = U10_GAA(x1, x4) IS_IN_AA(x1, x2) = IS_IN_AA U11_GAA(x1, x2, x3, x4, x5) = U11_GAA(x1, x5) GCD_IN_AAA(x1, x2, x3) = GCD_IN_AAA U8_AAA(x1, x2, x3, x4) = U8_AAA(x4) >=_IN_AA(x1, x2) = >=_IN_AA U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) U11_AAA(x1, x2, x3, x4, x5) = U11_AAA(x5) U12_AAA(x1, x2, x3, x4) = U12_AAA(x4) <_IN_AA(x1, x2) = <_IN_AA U13_AAA(x1, x2, x3, x4) = U13_AAA(x4) U14_AAA(x1, x2, x3, x4) = U14_AAA(x4) U12_GAA(x1, x2, x3, x4) = U12_GAA(x1, x4) <_IN_GA(x1, x2) = <_IN_GA(x1) U13_GAA(x1, x2, x3, x4) = U13_GAA(x1, x4) U14_GAA(x1, x2, x3, x4) = U14_GAA(x1, x4) GCD_IN_AGA(x1, x2, x3) = GCD_IN_AGA(x2) U8_AGA(x1, x2, x3, x4) = U8_AGA(x2, x4) >=_IN_AG(x1, x2) = >=_IN_AG(x2) U9_AGA(x1, x2, x3, x4) = U9_AGA(x2, x4) U10_AGA(x1, x2, x3, x4) = U10_AGA(x2, x4) U11_AGA(x1, x2, x3, x4, x5) = U11_AGA(x2, x5) U12_AGA(x1, x2, x3, x4) = U12_AGA(x2, x4) <_IN_AG(x1, x2) = <_IN_AG(x2) U13_AGA(x1, x2, x3, x4) = U13_AGA(x2, x4) U14_AGA(x1, x2, x3, x4) = U14_AGA(x2, x4) U12_GGA(x1, x2, x3, x4) = U12_GGA(x1, x2, x4) <_IN_GG(x1, x2) = <_IN_GG(x1, x2) U13_GGA(x1, x2, x3, x4) = U13_GGA(x1, x2, x4) U14_GGA(x1, x2, x3, x4) = U14_GGA(x1, x2, x4) U2_GA(x1, x2, x3) = U2_GA(x1, x2, x3) =:=_IN_AG(x1, x2) = =:=_IN_AG(x2) U3_GA(x1, x2, x3, x4, x5) = U3_GA(x1, x2, x5) U4_GA(x1, x2, x3, x4, x5, x6) = U4_GA(x1, x2, x6) U5_GA(x1, x2, x3, x4, x5) = U5_GA(x1, x2, x5) REDUCE_IN_AA(x1, x2) = REDUCE_IN_AA U1_AA(x1, x2, x3) = U1_AA(x3) U2_AA(x1, x2, x3) = U2_AA(x3) U3_AA(x1, x2, x3, x4, x5) = U3_AA(x5) U4_AA(x1, x2, x3, x4, x5, x6) = U4_AA(x6) U5_AA(x1, x2, x3, x4, x5) = U5_AA(x5) U6_AA(x1, x2, x3, x4, x5, x6) = U6_AA(x6) U7_AA(x1, x2, x3, x4, x5) = U7_AA(x5) U6_GA(x1, x2, x3, x4, x5, x6) = U6_GA(x1, x2, x6) U7_GA(x1, x2, x3, x4, x5) = U7_GA(x1, x2, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (156) Obligation: Pi DP problem: The TRS P consists of the following rules: REDUCE_IN_GA(frac(C, D), frac(C, D)) -> U1_GA(C, D, gcd_in_gga(C, D, Gcd)) REDUCE_IN_GA(frac(C, D), frac(C, D)) -> GCD_IN_GGA(C, D, Gcd) GCD_IN_GGA(X, Y, Divisor) -> U8_GGA(X, Y, Divisor, >=_in_gg(X, Y)) GCD_IN_GGA(X, Y, Divisor) -> >=_IN_GG(X, Y) U8_GGA(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_GGA(X, Y, Divisor, >_in_gg(Y, 0)) U8_GGA(X, Y, Divisor, >=_out_gg(X, Y)) -> >_IN_GG(Y, 0) U9_GGA(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_GGA(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) U9_GGA(X, Y, Divisor, >_out_gg(Y, 0)) -> IS_IN_AG(Remainder, mod(X, Y)) U10_GGA(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_GGA(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U10_GGA(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> GCD_IN_GAA(Y, Remainder, Divisor) GCD_IN_GAA(X, Y, Divisor) -> U8_GAA(X, Y, Divisor, >=_in_ga(X, Y)) GCD_IN_GAA(X, Y, Divisor) -> >=_IN_GA(X, Y) U8_GAA(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_GAA(X, Y, Divisor, >_in_ag(Y, 0)) U8_GAA(X, Y, Divisor, >=_out_ga(X, Y)) -> >_IN_AG(Y, 0) U9_GAA(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_GAA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U9_GAA(X, Y, Divisor, >_out_ag(Y, 0)) -> IS_IN_AA(Remainder, mod(X, Y)) U10_GAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_GAA(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) U10_GAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_AAA(Y, Remainder, Divisor) GCD_IN_AAA(X, Y, Divisor) -> U8_AAA(X, Y, Divisor, >=_in_aa(X, Y)) GCD_IN_AAA(X, Y, Divisor) -> >=_IN_AA(X, Y) U8_AAA(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_AAA(X, Y, Divisor, >_in_ag(Y, 0)) U8_AAA(X, Y, Divisor, >=_out_aa(X, Y)) -> >_IN_AG(Y, 0) U9_AAA(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_AAA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U9_AAA(X, Y, Divisor, >_out_ag(Y, 0)) -> IS_IN_AA(Remainder, mod(X, Y)) U10_AAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_AAA(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) U10_AAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_AAA(Y, Remainder, Divisor) GCD_IN_AAA(X, Y, Divisor) -> U12_AAA(X, Y, Divisor, <_in_aa(X, Y)) GCD_IN_AAA(X, Y, Divisor) -> <_IN_AA(X, Y) U12_AAA(X, Y, Divisor, <_out_aa(X, Y)) -> U13_AAA(X, Y, Divisor, >_in_ag(X, 0)) U12_AAA(X, Y, Divisor, <_out_aa(X, Y)) -> >_IN_AG(X, 0) U13_AAA(X, Y, Divisor, >_out_ag(X, 0)) -> U14_AAA(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U13_AAA(X, Y, Divisor, >_out_ag(X, 0)) -> GCD_IN_AAA(Y, X, Divisor) GCD_IN_GAA(X, Y, Divisor) -> U12_GAA(X, Y, Divisor, <_in_ga(X, Y)) GCD_IN_GAA(X, Y, Divisor) -> <_IN_GA(X, Y) U12_GAA(X, Y, Divisor, <_out_ga(X, Y)) -> U13_GAA(X, Y, Divisor, >_in_gg(X, 0)) U12_GAA(X, Y, Divisor, <_out_ga(X, Y)) -> >_IN_GG(X, 0) U13_GAA(X, Y, Divisor, >_out_gg(X, 0)) -> U14_GAA(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) U13_GAA(X, Y, Divisor, >_out_gg(X, 0)) -> GCD_IN_AGA(Y, X, Divisor) GCD_IN_AGA(X, Y, Divisor) -> U8_AGA(X, Y, Divisor, >=_in_ag(X, Y)) GCD_IN_AGA(X, Y, Divisor) -> >=_IN_AG(X, Y) U8_AGA(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_AGA(X, Y, Divisor, >_in_gg(Y, 0)) U8_AGA(X, Y, Divisor, >=_out_ag(X, Y)) -> >_IN_GG(Y, 0) U9_AGA(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_AGA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U9_AGA(X, Y, Divisor, >_out_gg(Y, 0)) -> IS_IN_AA(Remainder, mod(X, Y)) U10_AGA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_AGA(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U10_AGA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_GAA(Y, Remainder, Divisor) GCD_IN_AGA(X, Y, Divisor) -> U12_AGA(X, Y, Divisor, <_in_ag(X, Y)) GCD_IN_AGA(X, Y, Divisor) -> <_IN_AG(X, Y) U12_AGA(X, Y, Divisor, <_out_ag(X, Y)) -> U13_AGA(X, Y, Divisor, >_in_ag(X, 0)) U12_AGA(X, Y, Divisor, <_out_ag(X, Y)) -> >_IN_AG(X, 0) U13_AGA(X, Y, Divisor, >_out_ag(X, 0)) -> U14_AGA(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U13_AGA(X, Y, Divisor, >_out_ag(X, 0)) -> GCD_IN_GAA(Y, X, Divisor) GCD_IN_GGA(X, Y, Divisor) -> U12_GGA(X, Y, Divisor, <_in_gg(X, Y)) GCD_IN_GGA(X, Y, Divisor) -> <_IN_GG(X, Y) U12_GGA(X, Y, Divisor, <_out_gg(X, Y)) -> U13_GGA(X, Y, Divisor, >_in_gg(X, 0)) U12_GGA(X, Y, Divisor, <_out_gg(X, Y)) -> >_IN_GG(X, 0) U13_GGA(X, Y, Divisor, >_out_gg(X, 0)) -> U14_GGA(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U13_GGA(X, Y, Divisor, >_out_gg(X, 0)) -> GCD_IN_GGA(Y, X, Divisor) U1_GA(C, D, gcd_out_gga(C, D, Gcd)) -> U2_GA(C, D, =:=_in_ag(Gcd, 1)) U1_GA(C, D, gcd_out_gga(C, D, Gcd)) -> =:=_IN_AG(Gcd, 1) REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> U3_GA(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> GCD_IN_GGA(C, D, Gcd) U3_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_GA(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U3_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> >_IN_AG(Gcd, 1) U4_GA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_GA(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U4_GA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> REDUCE_IN_AA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) REDUCE_IN_AA(frac(C, D), frac(C, D)) -> U1_AA(C, D, gcd_in_aaa(C, D, Gcd)) REDUCE_IN_AA(frac(C, D), frac(C, D)) -> GCD_IN_AAA(C, D, Gcd) U1_AA(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_AA(C, D, =:=_in_ag(Gcd, 1)) U1_AA(C, D, gcd_out_aaa(C, D, Gcd)) -> =:=_IN_AG(Gcd, 1) REDUCE_IN_AA(frac(C, D), frac(Cres, Dres)) -> U3_AA(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) REDUCE_IN_AA(frac(C, D), frac(Cres, Dres)) -> GCD_IN_AAA(C, D, Gcd) U3_AA(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_AA(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U3_AA(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> >_IN_AG(Gcd, 1) U4_AA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_AA(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U4_AA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> REDUCE_IN_AA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) U5_AA(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_AA(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U5_AA(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> IS_IN_AA(Cres, CRec) U6_AA(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_AA(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U6_AA(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> IS_IN_AA(Dres, DRec) U5_GA(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_GA(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U5_GA(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> IS_IN_AA(Cres, CRec) U6_GA(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_GA(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U6_GA(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> IS_IN_AA(Dres, DRec) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, 0, X) -> gcd_out_gga(X, 0, X) gcd_in_gga(0, X, X) -> gcd_out_gga(0, X, X) gcd_in_gga(X, Y, Divisor) -> U8_gga(X, Y, Divisor, >=_in_gg(X, Y)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U8_gga(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_gga(X, Y, Divisor, >_in_gg(Y, 0)) >_in_gg(X0, X1) -> >_out_gg(X0, X1) U9_gga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_gga(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U10_gga(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_gga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) gcd_in_gaa(X, 0, X) -> gcd_out_gaa(X, 0, X) gcd_in_gaa(0, X, X) -> gcd_out_gaa(0, X, X) gcd_in_gaa(X, Y, Divisor) -> U8_gaa(X, Y, Divisor, >=_in_ga(X, Y)) >=_in_ga(X0, X1) -> >=_out_ga(X0, X1) U8_gaa(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_gaa(X, Y, Divisor, >_in_ag(Y, 0)) >_in_ag(X0, X1) -> >_out_ag(X0, X1) U9_gaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_gaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U10_gaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_gaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, 0, X) -> gcd_out_aaa(X, 0, X) gcd_in_aaa(0, X, X) -> gcd_out_aaa(0, X, X) gcd_in_aaa(X, Y, Divisor) -> U8_aaa(X, Y, Divisor, >=_in_aa(X, Y)) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) U8_aaa(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_aaa(X, Y, Divisor, >_in_ag(Y, 0)) U9_aaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_aaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, Y, Divisor) -> U12_aaa(X, Y, Divisor, <_in_aa(X, Y)) <_in_aa(X0, X1) -> <_out_aa(X0, X1) U12_aaa(X, Y, Divisor, <_out_aa(X, Y)) -> U13_aaa(X, Y, Divisor, >_in_ag(X, 0)) U13_aaa(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aaa(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U14_aaa(X, Y, Divisor, gcd_out_aaa(Y, X, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_aaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_gaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_gaa(X, Y, Divisor) gcd_in_gaa(X, Y, Divisor) -> U12_gaa(X, Y, Divisor, <_in_ga(X, Y)) <_in_ga(X0, X1) -> <_out_ga(X0, X1) U12_gaa(X, Y, Divisor, <_out_ga(X, Y)) -> U13_gaa(X, Y, Divisor, >_in_gg(X, 0)) U13_gaa(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gaa(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) gcd_in_aga(X, 0, X) -> gcd_out_aga(X, 0, X) gcd_in_aga(0, X, X) -> gcd_out_aga(0, X, X) gcd_in_aga(X, Y, Divisor) -> U8_aga(X, Y, Divisor, >=_in_ag(X, Y)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U8_aga(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_aga(X, Y, Divisor, >_in_gg(Y, 0)) U9_aga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_aga(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aga(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U11_aga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_aga(X, Y, Divisor) gcd_in_aga(X, Y, Divisor) -> U12_aga(X, Y, Divisor, <_in_ag(X, Y)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U12_aga(X, Y, Divisor, <_out_ag(X, Y)) -> U13_aga(X, Y, Divisor, >_in_ag(X, 0)) U13_aga(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aga(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U14_aga(X, Y, Divisor, gcd_out_gaa(Y, X, Divisor)) -> gcd_out_aga(X, Y, Divisor) U14_gaa(X, Y, Divisor, gcd_out_aga(Y, X, Divisor)) -> gcd_out_gaa(X, Y, Divisor) U11_gga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, <_in_gg(X, Y)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U12_gga(X, Y, Divisor, <_out_gg(X, Y)) -> U13_gga(X, Y, Divisor, >_in_gg(X, 0)) U13_gga(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U14_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =:=_in_ag(Gcd, 1)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U2_ga(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U3_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U3_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_ga(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_ga(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_ga(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) reduce_in_aa(frac(C, D), frac(C, D)) -> U1_aa(C, D, gcd_in_aaa(C, D, Gcd)) U1_aa(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_aa(C, D, =:=_in_ag(Gcd, 1)) U2_aa(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_aa(frac(C, D), frac(C, D)) reduce_in_aa(frac(C, D), frac(Cres, Dres)) -> U3_aa(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_aa(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_aa(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_aa(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_aa(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U5_aa(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_aa(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_aa(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_aa(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_aa(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_aa(frac(C, D), frac(Cres, Dres)) U5_ga(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_ga(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_ga(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_ga(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_ga(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) 0 = 0 gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2) U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) mod(x1, x2) = mod(x1, x2) U11_gga(x1, x2, x3, x4, x5) = U11_gga(x1, x2, x5) gcd_in_gaa(x1, x2, x3) = gcd_in_gaa(x1) gcd_out_gaa(x1, x2, x3) = gcd_out_gaa(x1) U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) >=_in_ga(x1, x2) = >=_in_ga(x1) >=_out_ga(x1, x2) = >=_out_ga(x1) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag(x2) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x1, x5) gcd_in_aaa(x1, x2, x3) = gcd_in_aaa gcd_out_aaa(x1, x2, x3) = gcd_out_aaa U8_aaa(x1, x2, x3, x4) = U8_aaa(x4) >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) U11_aaa(x1, x2, x3, x4, x5) = U11_aaa(x5) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa U13_aaa(x1, x2, x3, x4) = U13_aaa(x4) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) <_in_ga(x1, x2) = <_in_ga(x1) <_out_ga(x1, x2) = <_out_ga(x1) U13_gaa(x1, x2, x3, x4) = U13_gaa(x1, x4) U14_gaa(x1, x2, x3, x4) = U14_gaa(x1, x4) gcd_in_aga(x1, x2, x3) = gcd_in_aga(x2) gcd_out_aga(x1, x2, x3) = gcd_out_aga(x2) U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag(x2) U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4, x5) = U11_aga(x2, x5) U12_aga(x1, x2, x3, x4) = U12_aga(x2, x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag(x2) U13_aga(x1, x2, x3, x4) = U13_aga(x2, x4) U14_aga(x1, x2, x3, x4) = U14_aga(x2, x4) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg(x1, x2) U13_gga(x1, x2, x3, x4) = U13_gga(x1, x2, x4) U14_gga(x1, x2, x3, x4) = U14_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag(x2) 1 = 1 reduce_out_ga(x1, x2) = reduce_out_ga(x1) U3_ga(x1, x2, x3, x4, x5) = U3_ga(x1, x2, x5) U4_ga(x1, x2, x3, x4, x5, x6) = U4_ga(x1, x2, x6) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) reduce_in_aa(x1, x2) = reduce_in_aa U1_aa(x1, x2, x3) = U1_aa(x3) U2_aa(x1, x2, x3) = U2_aa(x3) reduce_out_aa(x1, x2) = reduce_out_aa U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) U4_aa(x1, x2, x3, x4, x5, x6) = U4_aa(x6) U5_aa(x1, x2, x3, x4, x5) = U5_aa(x5) U6_aa(x1, x2, x3, x4, x5, x6) = U6_aa(x6) U7_aa(x1, x2, x3, x4, x5) = U7_aa(x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x6) U7_ga(x1, x2, x3, x4, x5) = U7_ga(x1, x2, x5) REDUCE_IN_GA(x1, x2) = REDUCE_IN_GA(x1) U1_GA(x1, x2, x3) = U1_GA(x1, x2, x3) GCD_IN_GGA(x1, x2, x3) = GCD_IN_GGA(x1, x2) U8_GGA(x1, x2, x3, x4) = U8_GGA(x1, x2, x4) >=_IN_GG(x1, x2) = >=_IN_GG(x1, x2) U9_GGA(x1, x2, x3, x4) = U9_GGA(x1, x2, x4) >_IN_GG(x1, x2) = >_IN_GG(x1, x2) U10_GGA(x1, x2, x3, x4) = U10_GGA(x1, x2, x4) IS_IN_AG(x1, x2) = IS_IN_AG(x2) U11_GGA(x1, x2, x3, x4, x5) = U11_GGA(x1, x2, x5) GCD_IN_GAA(x1, x2, x3) = GCD_IN_GAA(x1) U8_GAA(x1, x2, x3, x4) = U8_GAA(x1, x4) >=_IN_GA(x1, x2) = >=_IN_GA(x1) U9_GAA(x1, x2, x3, x4) = U9_GAA(x1, x4) >_IN_AG(x1, x2) = >_IN_AG(x2) U10_GAA(x1, x2, x3, x4) = U10_GAA(x1, x4) IS_IN_AA(x1, x2) = IS_IN_AA U11_GAA(x1, x2, x3, x4, x5) = U11_GAA(x1, x5) GCD_IN_AAA(x1, x2, x3) = GCD_IN_AAA U8_AAA(x1, x2, x3, x4) = U8_AAA(x4) >=_IN_AA(x1, x2) = >=_IN_AA U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) U11_AAA(x1, x2, x3, x4, x5) = U11_AAA(x5) U12_AAA(x1, x2, x3, x4) = U12_AAA(x4) <_IN_AA(x1, x2) = <_IN_AA U13_AAA(x1, x2, x3, x4) = U13_AAA(x4) U14_AAA(x1, x2, x3, x4) = U14_AAA(x4) U12_GAA(x1, x2, x3, x4) = U12_GAA(x1, x4) <_IN_GA(x1, x2) = <_IN_GA(x1) U13_GAA(x1, x2, x3, x4) = U13_GAA(x1, x4) U14_GAA(x1, x2, x3, x4) = U14_GAA(x1, x4) GCD_IN_AGA(x1, x2, x3) = GCD_IN_AGA(x2) U8_AGA(x1, x2, x3, x4) = U8_AGA(x2, x4) >=_IN_AG(x1, x2) = >=_IN_AG(x2) U9_AGA(x1, x2, x3, x4) = U9_AGA(x2, x4) U10_AGA(x1, x2, x3, x4) = U10_AGA(x2, x4) U11_AGA(x1, x2, x3, x4, x5) = U11_AGA(x2, x5) U12_AGA(x1, x2, x3, x4) = U12_AGA(x2, x4) <_IN_AG(x1, x2) = <_IN_AG(x2) U13_AGA(x1, x2, x3, x4) = U13_AGA(x2, x4) U14_AGA(x1, x2, x3, x4) = U14_AGA(x2, x4) U12_GGA(x1, x2, x3, x4) = U12_GGA(x1, x2, x4) <_IN_GG(x1, x2) = <_IN_GG(x1, x2) U13_GGA(x1, x2, x3, x4) = U13_GGA(x1, x2, x4) U14_GGA(x1, x2, x3, x4) = U14_GGA(x1, x2, x4) U2_GA(x1, x2, x3) = U2_GA(x1, x2, x3) =:=_IN_AG(x1, x2) = =:=_IN_AG(x2) U3_GA(x1, x2, x3, x4, x5) = U3_GA(x1, x2, x5) U4_GA(x1, x2, x3, x4, x5, x6) = U4_GA(x1, x2, x6) U5_GA(x1, x2, x3, x4, x5) = U5_GA(x1, x2, x5) REDUCE_IN_AA(x1, x2) = REDUCE_IN_AA U1_AA(x1, x2, x3) = U1_AA(x3) U2_AA(x1, x2, x3) = U2_AA(x3) U3_AA(x1, x2, x3, x4, x5) = U3_AA(x5) U4_AA(x1, x2, x3, x4, x5, x6) = U4_AA(x6) U5_AA(x1, x2, x3, x4, x5) = U5_AA(x5) U6_AA(x1, x2, x3, x4, x5, x6) = U6_AA(x6) U7_AA(x1, x2, x3, x4, x5) = U7_AA(x5) U6_GA(x1, x2, x3, x4, x5, x6) = U6_GA(x1, x2, x6) U7_GA(x1, x2, x3, x4, x5) = U7_GA(x1, x2, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (157) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 61 less nodes. ---------------------------------------- (158) Complex Obligation (AND) ---------------------------------------- (159) Obligation: Pi DP problem: The TRS P consists of the following rules: U8_AAA(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_AAA(X, Y, Divisor, >_in_ag(Y, 0)) U9_AAA(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_AAA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_AAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_AAA(Y, Remainder, Divisor) GCD_IN_AAA(X, Y, Divisor) -> U8_AAA(X, Y, Divisor, >=_in_aa(X, Y)) GCD_IN_AAA(X, Y, Divisor) -> U12_AAA(X, Y, Divisor, <_in_aa(X, Y)) U12_AAA(X, Y, Divisor, <_out_aa(X, Y)) -> U13_AAA(X, Y, Divisor, >_in_ag(X, 0)) U13_AAA(X, Y, Divisor, >_out_ag(X, 0)) -> GCD_IN_AAA(Y, X, Divisor) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, 0, X) -> gcd_out_gga(X, 0, X) gcd_in_gga(0, X, X) -> gcd_out_gga(0, X, X) gcd_in_gga(X, Y, Divisor) -> U8_gga(X, Y, Divisor, >=_in_gg(X, Y)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U8_gga(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_gga(X, Y, Divisor, >_in_gg(Y, 0)) >_in_gg(X0, X1) -> >_out_gg(X0, X1) U9_gga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_gga(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U10_gga(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_gga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) gcd_in_gaa(X, 0, X) -> gcd_out_gaa(X, 0, X) gcd_in_gaa(0, X, X) -> gcd_out_gaa(0, X, X) gcd_in_gaa(X, Y, Divisor) -> U8_gaa(X, Y, Divisor, >=_in_ga(X, Y)) >=_in_ga(X0, X1) -> >=_out_ga(X0, X1) U8_gaa(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_gaa(X, Y, Divisor, >_in_ag(Y, 0)) >_in_ag(X0, X1) -> >_out_ag(X0, X1) U9_gaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_gaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U10_gaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_gaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, 0, X) -> gcd_out_aaa(X, 0, X) gcd_in_aaa(0, X, X) -> gcd_out_aaa(0, X, X) gcd_in_aaa(X, Y, Divisor) -> U8_aaa(X, Y, Divisor, >=_in_aa(X, Y)) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) U8_aaa(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_aaa(X, Y, Divisor, >_in_ag(Y, 0)) U9_aaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_aaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, Y, Divisor) -> U12_aaa(X, Y, Divisor, <_in_aa(X, Y)) <_in_aa(X0, X1) -> <_out_aa(X0, X1) U12_aaa(X, Y, Divisor, <_out_aa(X, Y)) -> U13_aaa(X, Y, Divisor, >_in_ag(X, 0)) U13_aaa(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aaa(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U14_aaa(X, Y, Divisor, gcd_out_aaa(Y, X, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_aaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_gaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_gaa(X, Y, Divisor) gcd_in_gaa(X, Y, Divisor) -> U12_gaa(X, Y, Divisor, <_in_ga(X, Y)) <_in_ga(X0, X1) -> <_out_ga(X0, X1) U12_gaa(X, Y, Divisor, <_out_ga(X, Y)) -> U13_gaa(X, Y, Divisor, >_in_gg(X, 0)) U13_gaa(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gaa(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) gcd_in_aga(X, 0, X) -> gcd_out_aga(X, 0, X) gcd_in_aga(0, X, X) -> gcd_out_aga(0, X, X) gcd_in_aga(X, Y, Divisor) -> U8_aga(X, Y, Divisor, >=_in_ag(X, Y)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U8_aga(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_aga(X, Y, Divisor, >_in_gg(Y, 0)) U9_aga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_aga(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aga(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U11_aga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_aga(X, Y, Divisor) gcd_in_aga(X, Y, Divisor) -> U12_aga(X, Y, Divisor, <_in_ag(X, Y)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U12_aga(X, Y, Divisor, <_out_ag(X, Y)) -> U13_aga(X, Y, Divisor, >_in_ag(X, 0)) U13_aga(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aga(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U14_aga(X, Y, Divisor, gcd_out_gaa(Y, X, Divisor)) -> gcd_out_aga(X, Y, Divisor) U14_gaa(X, Y, Divisor, gcd_out_aga(Y, X, Divisor)) -> gcd_out_gaa(X, Y, Divisor) U11_gga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, <_in_gg(X, Y)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U12_gga(X, Y, Divisor, <_out_gg(X, Y)) -> U13_gga(X, Y, Divisor, >_in_gg(X, 0)) U13_gga(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U14_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =:=_in_ag(Gcd, 1)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U2_ga(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U3_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U3_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_ga(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_ga(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_ga(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) reduce_in_aa(frac(C, D), frac(C, D)) -> U1_aa(C, D, gcd_in_aaa(C, D, Gcd)) U1_aa(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_aa(C, D, =:=_in_ag(Gcd, 1)) U2_aa(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_aa(frac(C, D), frac(C, D)) reduce_in_aa(frac(C, D), frac(Cres, Dres)) -> U3_aa(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_aa(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_aa(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_aa(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_aa(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U5_aa(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_aa(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_aa(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_aa(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_aa(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_aa(frac(C, D), frac(Cres, Dres)) U5_ga(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_ga(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_ga(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_ga(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_ga(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) 0 = 0 gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2) U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) mod(x1, x2) = mod(x1, x2) U11_gga(x1, x2, x3, x4, x5) = U11_gga(x1, x2, x5) gcd_in_gaa(x1, x2, x3) = gcd_in_gaa(x1) gcd_out_gaa(x1, x2, x3) = gcd_out_gaa(x1) U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) >=_in_ga(x1, x2) = >=_in_ga(x1) >=_out_ga(x1, x2) = >=_out_ga(x1) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag(x2) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x1, x5) gcd_in_aaa(x1, x2, x3) = gcd_in_aaa gcd_out_aaa(x1, x2, x3) = gcd_out_aaa U8_aaa(x1, x2, x3, x4) = U8_aaa(x4) >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) U11_aaa(x1, x2, x3, x4, x5) = U11_aaa(x5) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa U13_aaa(x1, x2, x3, x4) = U13_aaa(x4) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) <_in_ga(x1, x2) = <_in_ga(x1) <_out_ga(x1, x2) = <_out_ga(x1) U13_gaa(x1, x2, x3, x4) = U13_gaa(x1, x4) U14_gaa(x1, x2, x3, x4) = U14_gaa(x1, x4) gcd_in_aga(x1, x2, x3) = gcd_in_aga(x2) gcd_out_aga(x1, x2, x3) = gcd_out_aga(x2) U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag(x2) U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4, x5) = U11_aga(x2, x5) U12_aga(x1, x2, x3, x4) = U12_aga(x2, x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag(x2) U13_aga(x1, x2, x3, x4) = U13_aga(x2, x4) U14_aga(x1, x2, x3, x4) = U14_aga(x2, x4) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg(x1, x2) U13_gga(x1, x2, x3, x4) = U13_gga(x1, x2, x4) U14_gga(x1, x2, x3, x4) = U14_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag(x2) 1 = 1 reduce_out_ga(x1, x2) = reduce_out_ga(x1) U3_ga(x1, x2, x3, x4, x5) = U3_ga(x1, x2, x5) U4_ga(x1, x2, x3, x4, x5, x6) = U4_ga(x1, x2, x6) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) reduce_in_aa(x1, x2) = reduce_in_aa U1_aa(x1, x2, x3) = U1_aa(x3) U2_aa(x1, x2, x3) = U2_aa(x3) reduce_out_aa(x1, x2) = reduce_out_aa U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) U4_aa(x1, x2, x3, x4, x5, x6) = U4_aa(x6) U5_aa(x1, x2, x3, x4, x5) = U5_aa(x5) U6_aa(x1, x2, x3, x4, x5, x6) = U6_aa(x6) U7_aa(x1, x2, x3, x4, x5) = U7_aa(x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x6) U7_ga(x1, x2, x3, x4, x5) = U7_ga(x1, x2, x5) GCD_IN_AAA(x1, x2, x3) = GCD_IN_AAA U8_AAA(x1, x2, x3, x4) = U8_AAA(x4) U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) U12_AAA(x1, x2, x3, x4) = U12_AAA(x4) U13_AAA(x1, x2, x3, x4) = U13_AAA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (160) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (161) Obligation: Pi DP problem: The TRS P consists of the following rules: U8_AAA(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_AAA(X, Y, Divisor, >_in_ag(Y, 0)) U9_AAA(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_AAA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_AAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_AAA(Y, Remainder, Divisor) GCD_IN_AAA(X, Y, Divisor) -> U8_AAA(X, Y, Divisor, >=_in_aa(X, Y)) GCD_IN_AAA(X, Y, Divisor) -> U12_AAA(X, Y, Divisor, <_in_aa(X, Y)) U12_AAA(X, Y, Divisor, <_out_aa(X, Y)) -> U13_AAA(X, Y, Divisor, >_in_ag(X, 0)) U13_AAA(X, Y, Divisor, >_out_ag(X, 0)) -> GCD_IN_AAA(Y, X, Divisor) The TRS R consists of the following rules: >_in_ag(X0, X1) -> >_out_ag(X0, X1) is_in_aa(X0, X1) -> is_out_aa(X0, X1) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) <_in_aa(X0, X1) -> <_out_aa(X0, X1) The argument filtering Pi contains the following mapping: 0 = 0 mod(x1, x2) = mod(x1, x2) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag(x2) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa GCD_IN_AAA(x1, x2, x3) = GCD_IN_AAA U8_AAA(x1, x2, x3, x4) = U8_AAA(x4) U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) U12_AAA(x1, x2, x3, x4) = U12_AAA(x4) U13_AAA(x1, x2, x3, x4) = U13_AAA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (162) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (163) Obligation: Q DP problem: The TRS P consists of the following rules: U8_AAA(>=_out_aa) -> U9_AAA(>_in_ag(0)) U9_AAA(>_out_ag(0)) -> U10_AAA(is_in_aa) U10_AAA(is_out_aa) -> GCD_IN_AAA GCD_IN_AAA -> U8_AAA(>=_in_aa) GCD_IN_AAA -> U12_AAA(<_in_aa) U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag(0)) -> GCD_IN_AAA The TRS R consists of the following rules: >_in_ag(X1) -> >_out_ag(X1) is_in_aa -> is_out_aa >=_in_aa -> >=_out_aa <_in_aa -> <_out_aa The set Q consists of the following terms: >_in_ag(x0) is_in_aa >=_in_aa <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (164) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U8_AAA(>=_out_aa) -> U9_AAA(>_in_ag(0)) at position [0] we obtained the following new rules [LPAR04]: (U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag(0)),U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag(0))) ---------------------------------------- (165) Obligation: Q DP problem: The TRS P consists of the following rules: U9_AAA(>_out_ag(0)) -> U10_AAA(is_in_aa) U10_AAA(is_out_aa) -> GCD_IN_AAA GCD_IN_AAA -> U8_AAA(>=_in_aa) GCD_IN_AAA -> U12_AAA(<_in_aa) U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag(0)) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag(0)) The TRS R consists of the following rules: >_in_ag(X1) -> >_out_ag(X1) is_in_aa -> is_out_aa >=_in_aa -> >=_out_aa <_in_aa -> <_out_aa The set Q consists of the following terms: >_in_ag(x0) is_in_aa >=_in_aa <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (166) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U9_AAA(>_out_ag(0)) -> U10_AAA(is_in_aa) at position [0] we obtained the following new rules [LPAR04]: (U9_AAA(>_out_ag(0)) -> U10_AAA(is_out_aa),U9_AAA(>_out_ag(0)) -> U10_AAA(is_out_aa)) ---------------------------------------- (167) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA GCD_IN_AAA -> U8_AAA(>=_in_aa) GCD_IN_AAA -> U12_AAA(<_in_aa) U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag(0)) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag(0)) U9_AAA(>_out_ag(0)) -> U10_AAA(is_out_aa) The TRS R consists of the following rules: >_in_ag(X1) -> >_out_ag(X1) is_in_aa -> is_out_aa >=_in_aa -> >=_out_aa <_in_aa -> <_out_aa The set Q consists of the following terms: >_in_ag(x0) is_in_aa >=_in_aa <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (168) 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. ---------------------------------------- (169) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA GCD_IN_AAA -> U8_AAA(>=_in_aa) GCD_IN_AAA -> U12_AAA(<_in_aa) U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag(0)) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag(0)) U9_AAA(>_out_ag(0)) -> U10_AAA(is_out_aa) The TRS R consists of the following rules: >_in_ag(X1) -> >_out_ag(X1) <_in_aa -> <_out_aa >=_in_aa -> >=_out_aa The set Q consists of the following terms: >_in_ag(x0) is_in_aa >=_in_aa <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (170) 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_aa ---------------------------------------- (171) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA GCD_IN_AAA -> U8_AAA(>=_in_aa) GCD_IN_AAA -> U12_AAA(<_in_aa) U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag(0)) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag(0)) U9_AAA(>_out_ag(0)) -> U10_AAA(is_out_aa) The TRS R consists of the following rules: >_in_ag(X1) -> >_out_ag(X1) <_in_aa -> <_out_aa >=_in_aa -> >=_out_aa The set Q consists of the following terms: >_in_ag(x0) >=_in_aa <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (172) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule GCD_IN_AAA -> U8_AAA(>=_in_aa) at position [0] we obtained the following new rules [LPAR04]: (GCD_IN_AAA -> U8_AAA(>=_out_aa),GCD_IN_AAA -> U8_AAA(>=_out_aa)) ---------------------------------------- (173) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA GCD_IN_AAA -> U12_AAA(<_in_aa) U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag(0)) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag(0)) U9_AAA(>_out_ag(0)) -> U10_AAA(is_out_aa) GCD_IN_AAA -> U8_AAA(>=_out_aa) The TRS R consists of the following rules: >_in_ag(X1) -> >_out_ag(X1) <_in_aa -> <_out_aa >=_in_aa -> >=_out_aa The set Q consists of the following terms: >_in_ag(x0) >=_in_aa <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (174) 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. ---------------------------------------- (175) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA GCD_IN_AAA -> U12_AAA(<_in_aa) U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag(0)) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag(0)) U9_AAA(>_out_ag(0)) -> U10_AAA(is_out_aa) GCD_IN_AAA -> U8_AAA(>=_out_aa) The TRS R consists of the following rules: >_in_ag(X1) -> >_out_ag(X1) <_in_aa -> <_out_aa The set Q consists of the following terms: >_in_ag(x0) >=_in_aa <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (176) 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 ---------------------------------------- (177) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA GCD_IN_AAA -> U12_AAA(<_in_aa) U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag(0)) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag(0)) U9_AAA(>_out_ag(0)) -> U10_AAA(is_out_aa) GCD_IN_AAA -> U8_AAA(>=_out_aa) The TRS R consists of the following rules: >_in_ag(X1) -> >_out_ag(X1) <_in_aa -> <_out_aa The set Q consists of the following terms: >_in_ag(x0) <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (178) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule GCD_IN_AAA -> U12_AAA(<_in_aa) at position [0] we obtained the following new rules [LPAR04]: (GCD_IN_AAA -> U12_AAA(<_out_aa),GCD_IN_AAA -> U12_AAA(<_out_aa)) ---------------------------------------- (179) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag(0)) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag(0)) U9_AAA(>_out_ag(0)) -> U10_AAA(is_out_aa) GCD_IN_AAA -> U8_AAA(>=_out_aa) GCD_IN_AAA -> U12_AAA(<_out_aa) The TRS R consists of the following rules: >_in_ag(X1) -> >_out_ag(X1) <_in_aa -> <_out_aa The set Q consists of the following terms: >_in_ag(x0) <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (180) 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. ---------------------------------------- (181) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag(0)) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag(0)) U9_AAA(>_out_ag(0)) -> U10_AAA(is_out_aa) GCD_IN_AAA -> U8_AAA(>=_out_aa) GCD_IN_AAA -> U12_AAA(<_out_aa) 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) <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (182) 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 ---------------------------------------- (183) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag(0)) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag(0)) U9_AAA(>_out_ag(0)) -> U10_AAA(is_out_aa) GCD_IN_AAA -> U8_AAA(>=_out_aa) GCD_IN_AAA -> U12_AAA(<_out_aa) 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. ---------------------------------------- (184) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) at position [0] we obtained the following new rules [LPAR04]: (U12_AAA(<_out_aa) -> U13_AAA(>_out_ag(0)),U12_AAA(<_out_aa) -> U13_AAA(>_out_ag(0))) ---------------------------------------- (185) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA U13_AAA(>_out_ag(0)) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag(0)) U9_AAA(>_out_ag(0)) -> U10_AAA(is_out_aa) GCD_IN_AAA -> U8_AAA(>=_out_aa) GCD_IN_AAA -> U12_AAA(<_out_aa) U12_AAA(<_out_aa) -> U13_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. ---------------------------------------- (186) 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. ---------------------------------------- (187) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA U13_AAA(>_out_ag(0)) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag(0)) U9_AAA(>_out_ag(0)) -> U10_AAA(is_out_aa) GCD_IN_AAA -> U8_AAA(>=_out_aa) GCD_IN_AAA -> U12_AAA(<_out_aa) U12_AAA(<_out_aa) -> U13_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. ---------------------------------------- (188) 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) ---------------------------------------- (189) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA U13_AAA(>_out_ag(0)) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag(0)) U9_AAA(>_out_ag(0)) -> U10_AAA(is_out_aa) GCD_IN_AAA -> U8_AAA(>=_out_aa) GCD_IN_AAA -> U12_AAA(<_out_aa) U12_AAA(<_out_aa) -> U13_AAA(>_out_ag(0)) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (190) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by narrowing to the left: s = GCD_IN_AAA evaluates to t =GCD_IN_AAA Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence GCD_IN_AAA -> U12_AAA(<_out_aa) with rule GCD_IN_AAA -> U12_AAA(<_out_aa) at position [] and matcher [ ] U12_AAA(<_out_aa) -> U13_AAA(>_out_ag(0)) with rule U12_AAA(<_out_aa) -> U13_AAA(>_out_ag(0)) at position [] and matcher [ ] U13_AAA(>_out_ag(0)) -> GCD_IN_AAA with rule U13_AAA(>_out_ag(0)) -> GCD_IN_AAA Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence All these steps are and every following step will be a correct step w.r.t to Q. ---------------------------------------- (191) NO ---------------------------------------- (192) Obligation: Pi DP problem: The TRS P consists of the following rules: REDUCE_IN_AA(frac(C, D), frac(Cres, Dres)) -> U3_AA(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_AA(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_AA(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_AA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> REDUCE_IN_AA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, 0, X) -> gcd_out_gga(X, 0, X) gcd_in_gga(0, X, X) -> gcd_out_gga(0, X, X) gcd_in_gga(X, Y, Divisor) -> U8_gga(X, Y, Divisor, >=_in_gg(X, Y)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U8_gga(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_gga(X, Y, Divisor, >_in_gg(Y, 0)) >_in_gg(X0, X1) -> >_out_gg(X0, X1) U9_gga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_gga(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U10_gga(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_gga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) gcd_in_gaa(X, 0, X) -> gcd_out_gaa(X, 0, X) gcd_in_gaa(0, X, X) -> gcd_out_gaa(0, X, X) gcd_in_gaa(X, Y, Divisor) -> U8_gaa(X, Y, Divisor, >=_in_ga(X, Y)) >=_in_ga(X0, X1) -> >=_out_ga(X0, X1) U8_gaa(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_gaa(X, Y, Divisor, >_in_ag(Y, 0)) >_in_ag(X0, X1) -> >_out_ag(X0, X1) U9_gaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_gaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U10_gaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_gaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, 0, X) -> gcd_out_aaa(X, 0, X) gcd_in_aaa(0, X, X) -> gcd_out_aaa(0, X, X) gcd_in_aaa(X, Y, Divisor) -> U8_aaa(X, Y, Divisor, >=_in_aa(X, Y)) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) U8_aaa(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_aaa(X, Y, Divisor, >_in_ag(Y, 0)) U9_aaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_aaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, Y, Divisor) -> U12_aaa(X, Y, Divisor, <_in_aa(X, Y)) <_in_aa(X0, X1) -> <_out_aa(X0, X1) U12_aaa(X, Y, Divisor, <_out_aa(X, Y)) -> U13_aaa(X, Y, Divisor, >_in_ag(X, 0)) U13_aaa(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aaa(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U14_aaa(X, Y, Divisor, gcd_out_aaa(Y, X, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_aaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_gaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_gaa(X, Y, Divisor) gcd_in_gaa(X, Y, Divisor) -> U12_gaa(X, Y, Divisor, <_in_ga(X, Y)) <_in_ga(X0, X1) -> <_out_ga(X0, X1) U12_gaa(X, Y, Divisor, <_out_ga(X, Y)) -> U13_gaa(X, Y, Divisor, >_in_gg(X, 0)) U13_gaa(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gaa(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) gcd_in_aga(X, 0, X) -> gcd_out_aga(X, 0, X) gcd_in_aga(0, X, X) -> gcd_out_aga(0, X, X) gcd_in_aga(X, Y, Divisor) -> U8_aga(X, Y, Divisor, >=_in_ag(X, Y)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U8_aga(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_aga(X, Y, Divisor, >_in_gg(Y, 0)) U9_aga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_aga(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aga(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U11_aga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_aga(X, Y, Divisor) gcd_in_aga(X, Y, Divisor) -> U12_aga(X, Y, Divisor, <_in_ag(X, Y)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U12_aga(X, Y, Divisor, <_out_ag(X, Y)) -> U13_aga(X, Y, Divisor, >_in_ag(X, 0)) U13_aga(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aga(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U14_aga(X, Y, Divisor, gcd_out_gaa(Y, X, Divisor)) -> gcd_out_aga(X, Y, Divisor) U14_gaa(X, Y, Divisor, gcd_out_aga(Y, X, Divisor)) -> gcd_out_gaa(X, Y, Divisor) U11_gga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, <_in_gg(X, Y)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U12_gga(X, Y, Divisor, <_out_gg(X, Y)) -> U13_gga(X, Y, Divisor, >_in_gg(X, 0)) U13_gga(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U14_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =:=_in_ag(Gcd, 1)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U2_ga(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U3_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U3_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_ga(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_ga(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_ga(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) reduce_in_aa(frac(C, D), frac(C, D)) -> U1_aa(C, D, gcd_in_aaa(C, D, Gcd)) U1_aa(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_aa(C, D, =:=_in_ag(Gcd, 1)) U2_aa(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_aa(frac(C, D), frac(C, D)) reduce_in_aa(frac(C, D), frac(Cres, Dres)) -> U3_aa(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_aa(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_aa(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_aa(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_aa(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U5_aa(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_aa(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_aa(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_aa(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_aa(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_aa(frac(C, D), frac(Cres, Dres)) U5_ga(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_ga(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_ga(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_ga(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_ga(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) 0 = 0 gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2) U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) mod(x1, x2) = mod(x1, x2) U11_gga(x1, x2, x3, x4, x5) = U11_gga(x1, x2, x5) gcd_in_gaa(x1, x2, x3) = gcd_in_gaa(x1) gcd_out_gaa(x1, x2, x3) = gcd_out_gaa(x1) U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) >=_in_ga(x1, x2) = >=_in_ga(x1) >=_out_ga(x1, x2) = >=_out_ga(x1) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag(x2) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x1, x5) gcd_in_aaa(x1, x2, x3) = gcd_in_aaa gcd_out_aaa(x1, x2, x3) = gcd_out_aaa U8_aaa(x1, x2, x3, x4) = U8_aaa(x4) >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) U11_aaa(x1, x2, x3, x4, x5) = U11_aaa(x5) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa U13_aaa(x1, x2, x3, x4) = U13_aaa(x4) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) <_in_ga(x1, x2) = <_in_ga(x1) <_out_ga(x1, x2) = <_out_ga(x1) U13_gaa(x1, x2, x3, x4) = U13_gaa(x1, x4) U14_gaa(x1, x2, x3, x4) = U14_gaa(x1, x4) gcd_in_aga(x1, x2, x3) = gcd_in_aga(x2) gcd_out_aga(x1, x2, x3) = gcd_out_aga(x2) U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag(x2) U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4, x5) = U11_aga(x2, x5) U12_aga(x1, x2, x3, x4) = U12_aga(x2, x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag(x2) U13_aga(x1, x2, x3, x4) = U13_aga(x2, x4) U14_aga(x1, x2, x3, x4) = U14_aga(x2, x4) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg(x1, x2) U13_gga(x1, x2, x3, x4) = U13_gga(x1, x2, x4) U14_gga(x1, x2, x3, x4) = U14_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag(x2) 1 = 1 reduce_out_ga(x1, x2) = reduce_out_ga(x1) U3_ga(x1, x2, x3, x4, x5) = U3_ga(x1, x2, x5) U4_ga(x1, x2, x3, x4, x5, x6) = U4_ga(x1, x2, x6) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) reduce_in_aa(x1, x2) = reduce_in_aa U1_aa(x1, x2, x3) = U1_aa(x3) U2_aa(x1, x2, x3) = U2_aa(x3) reduce_out_aa(x1, x2) = reduce_out_aa U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) U4_aa(x1, x2, x3, x4, x5, x6) = U4_aa(x6) U5_aa(x1, x2, x3, x4, x5) = U5_aa(x5) U6_aa(x1, x2, x3, x4, x5, x6) = U6_aa(x6) U7_aa(x1, x2, x3, x4, x5) = U7_aa(x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x6) U7_ga(x1, x2, x3, x4, x5) = U7_ga(x1, x2, x5) REDUCE_IN_AA(x1, x2) = REDUCE_IN_AA U3_AA(x1, x2, x3, x4, x5) = U3_AA(x5) U4_AA(x1, x2, x3, x4, x5, x6) = U4_AA(x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (193) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (194) Obligation: Pi DP problem: The TRS P consists of the following rules: REDUCE_IN_AA(frac(C, D), frac(Cres, Dres)) -> U3_AA(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_AA(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_AA(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_AA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> REDUCE_IN_AA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) The TRS R consists of the following rules: gcd_in_aaa(X, 0, X) -> gcd_out_aaa(X, 0, X) gcd_in_aaa(0, X, X) -> gcd_out_aaa(0, X, X) gcd_in_aaa(X, Y, Divisor) -> U8_aaa(X, Y, Divisor, >=_in_aa(X, Y)) gcd_in_aaa(X, Y, Divisor) -> U12_aaa(X, Y, Divisor, <_in_aa(X, Y)) >_in_ag(X0, X1) -> >_out_ag(X0, X1) U8_aaa(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_aaa(X, Y, Divisor, >_in_ag(Y, 0)) U12_aaa(X, Y, Divisor, <_out_aa(X, Y)) -> U13_aaa(X, Y, Divisor, >_in_ag(X, 0)) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) U9_aaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_aaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) <_in_aa(X0, X1) -> <_out_aa(X0, X1) U13_aaa(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aaa(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U10_aaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) U14_aaa(X, Y, Divisor, gcd_out_aaa(Y, X, Divisor)) -> gcd_out_aaa(X, Y, Divisor) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U11_aaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_aaa(X, Y, Divisor) The argument filtering Pi contains the following mapping: frac(x1, x2) = frac(x1, x2) 0 = 0 mod(x1, x2) = mod(x1, x2) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag(x2) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa gcd_in_aaa(x1, x2, x3) = gcd_in_aaa gcd_out_aaa(x1, x2, x3) = gcd_out_aaa U8_aaa(x1, x2, x3, x4) = U8_aaa(x4) >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) U11_aaa(x1, x2, x3, x4, x5) = U11_aaa(x5) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa U13_aaa(x1, x2, x3, x4) = U13_aaa(x4) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) 1 = 1 REDUCE_IN_AA(x1, x2) = REDUCE_IN_AA U3_AA(x1, x2, x3, x4, x5) = U3_AA(x5) U4_AA(x1, x2, x3, x4, x5, x6) = U4_AA(x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (195) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (196) Obligation: Q DP problem: The TRS P consists of the following rules: REDUCE_IN_AA -> U3_AA(gcd_in_aaa) U3_AA(gcd_out_aaa) -> U4_AA(>_in_ag(1)) U4_AA(>_out_ag(1)) -> REDUCE_IN_AA The TRS R consists of the following rules: gcd_in_aaa -> gcd_out_aaa gcd_in_aaa -> U8_aaa(>=_in_aa) gcd_in_aaa -> U12_aaa(<_in_aa) >_in_ag(X1) -> >_out_ag(X1) U8_aaa(>=_out_aa) -> U9_aaa(>_in_ag(0)) U12_aaa(<_out_aa) -> U13_aaa(>_in_ag(0)) >=_in_aa -> >=_out_aa U9_aaa(>_out_ag(0)) -> U10_aaa(is_in_aa) <_in_aa -> <_out_aa U13_aaa(>_out_ag(0)) -> U14_aaa(gcd_in_aaa) U10_aaa(is_out_aa) -> U11_aaa(gcd_in_aaa) U14_aaa(gcd_out_aaa) -> gcd_out_aaa is_in_aa -> is_out_aa U11_aaa(gcd_out_aaa) -> gcd_out_aaa The set Q consists of the following terms: gcd_in_aaa >_in_ag(x0) U8_aaa(x0) U12_aaa(x0) >=_in_aa U9_aaa(x0) <_in_aa U13_aaa(x0) U10_aaa(x0) U14_aaa(x0) is_in_aa U11_aaa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (197) Obligation: Pi DP problem: The TRS P consists of the following rules: GCD_IN_GAA(X, Y, Divisor) -> U12_GAA(X, Y, Divisor, <_in_ga(X, Y)) U12_GAA(X, Y, Divisor, <_out_ga(X, Y)) -> U13_GAA(X, Y, Divisor, >_in_gg(X, 0)) U13_GAA(X, Y, Divisor, >_out_gg(X, 0)) -> GCD_IN_AGA(Y, X, Divisor) GCD_IN_AGA(X, Y, Divisor) -> U8_AGA(X, Y, Divisor, >=_in_ag(X, Y)) U8_AGA(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_AGA(X, Y, Divisor, >_in_gg(Y, 0)) U9_AGA(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_AGA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_AGA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_GAA(Y, Remainder, Divisor) GCD_IN_AGA(X, Y, Divisor) -> U12_AGA(X, Y, Divisor, <_in_ag(X, Y)) U12_AGA(X, Y, Divisor, <_out_ag(X, Y)) -> U13_AGA(X, Y, Divisor, >_in_ag(X, 0)) U13_AGA(X, Y, Divisor, >_out_ag(X, 0)) -> GCD_IN_GAA(Y, X, Divisor) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, 0, X) -> gcd_out_gga(X, 0, X) gcd_in_gga(0, X, X) -> gcd_out_gga(0, X, X) gcd_in_gga(X, Y, Divisor) -> U8_gga(X, Y, Divisor, >=_in_gg(X, Y)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U8_gga(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_gga(X, Y, Divisor, >_in_gg(Y, 0)) >_in_gg(X0, X1) -> >_out_gg(X0, X1) U9_gga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_gga(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U10_gga(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_gga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) gcd_in_gaa(X, 0, X) -> gcd_out_gaa(X, 0, X) gcd_in_gaa(0, X, X) -> gcd_out_gaa(0, X, X) gcd_in_gaa(X, Y, Divisor) -> U8_gaa(X, Y, Divisor, >=_in_ga(X, Y)) >=_in_ga(X0, X1) -> >=_out_ga(X0, X1) U8_gaa(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_gaa(X, Y, Divisor, >_in_ag(Y, 0)) >_in_ag(X0, X1) -> >_out_ag(X0, X1) U9_gaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_gaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U10_gaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_gaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, 0, X) -> gcd_out_aaa(X, 0, X) gcd_in_aaa(0, X, X) -> gcd_out_aaa(0, X, X) gcd_in_aaa(X, Y, Divisor) -> U8_aaa(X, Y, Divisor, >=_in_aa(X, Y)) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) U8_aaa(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_aaa(X, Y, Divisor, >_in_ag(Y, 0)) U9_aaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_aaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, Y, Divisor) -> U12_aaa(X, Y, Divisor, <_in_aa(X, Y)) <_in_aa(X0, X1) -> <_out_aa(X0, X1) U12_aaa(X, Y, Divisor, <_out_aa(X, Y)) -> U13_aaa(X, Y, Divisor, >_in_ag(X, 0)) U13_aaa(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aaa(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U14_aaa(X, Y, Divisor, gcd_out_aaa(Y, X, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_aaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_gaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_gaa(X, Y, Divisor) gcd_in_gaa(X, Y, Divisor) -> U12_gaa(X, Y, Divisor, <_in_ga(X, Y)) <_in_ga(X0, X1) -> <_out_ga(X0, X1) U12_gaa(X, Y, Divisor, <_out_ga(X, Y)) -> U13_gaa(X, Y, Divisor, >_in_gg(X, 0)) U13_gaa(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gaa(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) gcd_in_aga(X, 0, X) -> gcd_out_aga(X, 0, X) gcd_in_aga(0, X, X) -> gcd_out_aga(0, X, X) gcd_in_aga(X, Y, Divisor) -> U8_aga(X, Y, Divisor, >=_in_ag(X, Y)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U8_aga(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_aga(X, Y, Divisor, >_in_gg(Y, 0)) U9_aga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_aga(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aga(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U11_aga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_aga(X, Y, Divisor) gcd_in_aga(X, Y, Divisor) -> U12_aga(X, Y, Divisor, <_in_ag(X, Y)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U12_aga(X, Y, Divisor, <_out_ag(X, Y)) -> U13_aga(X, Y, Divisor, >_in_ag(X, 0)) U13_aga(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aga(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U14_aga(X, Y, Divisor, gcd_out_gaa(Y, X, Divisor)) -> gcd_out_aga(X, Y, Divisor) U14_gaa(X, Y, Divisor, gcd_out_aga(Y, X, Divisor)) -> gcd_out_gaa(X, Y, Divisor) U11_gga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, <_in_gg(X, Y)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U12_gga(X, Y, Divisor, <_out_gg(X, Y)) -> U13_gga(X, Y, Divisor, >_in_gg(X, 0)) U13_gga(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U14_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =:=_in_ag(Gcd, 1)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U2_ga(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U3_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U3_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_ga(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_ga(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_ga(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) reduce_in_aa(frac(C, D), frac(C, D)) -> U1_aa(C, D, gcd_in_aaa(C, D, Gcd)) U1_aa(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_aa(C, D, =:=_in_ag(Gcd, 1)) U2_aa(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_aa(frac(C, D), frac(C, D)) reduce_in_aa(frac(C, D), frac(Cres, Dres)) -> U3_aa(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_aa(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_aa(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_aa(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_aa(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U5_aa(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_aa(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_aa(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_aa(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_aa(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_aa(frac(C, D), frac(Cres, Dres)) U5_ga(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_ga(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_ga(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_ga(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_ga(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) 0 = 0 gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2) U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) mod(x1, x2) = mod(x1, x2) U11_gga(x1, x2, x3, x4, x5) = U11_gga(x1, x2, x5) gcd_in_gaa(x1, x2, x3) = gcd_in_gaa(x1) gcd_out_gaa(x1, x2, x3) = gcd_out_gaa(x1) U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) >=_in_ga(x1, x2) = >=_in_ga(x1) >=_out_ga(x1, x2) = >=_out_ga(x1) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag(x2) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x1, x5) gcd_in_aaa(x1, x2, x3) = gcd_in_aaa gcd_out_aaa(x1, x2, x3) = gcd_out_aaa U8_aaa(x1, x2, x3, x4) = U8_aaa(x4) >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) U11_aaa(x1, x2, x3, x4, x5) = U11_aaa(x5) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa U13_aaa(x1, x2, x3, x4) = U13_aaa(x4) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) <_in_ga(x1, x2) = <_in_ga(x1) <_out_ga(x1, x2) = <_out_ga(x1) U13_gaa(x1, x2, x3, x4) = U13_gaa(x1, x4) U14_gaa(x1, x2, x3, x4) = U14_gaa(x1, x4) gcd_in_aga(x1, x2, x3) = gcd_in_aga(x2) gcd_out_aga(x1, x2, x3) = gcd_out_aga(x2) U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag(x2) U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4, x5) = U11_aga(x2, x5) U12_aga(x1, x2, x3, x4) = U12_aga(x2, x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag(x2) U13_aga(x1, x2, x3, x4) = U13_aga(x2, x4) U14_aga(x1, x2, x3, x4) = U14_aga(x2, x4) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg(x1, x2) U13_gga(x1, x2, x3, x4) = U13_gga(x1, x2, x4) U14_gga(x1, x2, x3, x4) = U14_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag(x2) 1 = 1 reduce_out_ga(x1, x2) = reduce_out_ga(x1) U3_ga(x1, x2, x3, x4, x5) = U3_ga(x1, x2, x5) U4_ga(x1, x2, x3, x4, x5, x6) = U4_ga(x1, x2, x6) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) reduce_in_aa(x1, x2) = reduce_in_aa U1_aa(x1, x2, x3) = U1_aa(x3) U2_aa(x1, x2, x3) = U2_aa(x3) reduce_out_aa(x1, x2) = reduce_out_aa U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) U4_aa(x1, x2, x3, x4, x5, x6) = U4_aa(x6) U5_aa(x1, x2, x3, x4, x5) = U5_aa(x5) U6_aa(x1, x2, x3, x4, x5, x6) = U6_aa(x6) U7_aa(x1, x2, x3, x4, x5) = U7_aa(x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x6) U7_ga(x1, x2, x3, x4, x5) = U7_ga(x1, x2, x5) GCD_IN_GAA(x1, x2, x3) = GCD_IN_GAA(x1) U12_GAA(x1, x2, x3, x4) = U12_GAA(x1, x4) U13_GAA(x1, x2, x3, x4) = U13_GAA(x1, x4) GCD_IN_AGA(x1, x2, x3) = GCD_IN_AGA(x2) U8_AGA(x1, x2, x3, x4) = U8_AGA(x2, x4) U9_AGA(x1, x2, x3, x4) = U9_AGA(x2, x4) U10_AGA(x1, x2, x3, x4) = U10_AGA(x2, x4) U12_AGA(x1, x2, x3, x4) = U12_AGA(x2, x4) U13_AGA(x1, x2, x3, x4) = U13_AGA(x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (198) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (199) Obligation: Pi DP problem: The TRS P consists of the following rules: GCD_IN_GAA(X, Y, Divisor) -> U12_GAA(X, Y, Divisor, <_in_ga(X, Y)) U12_GAA(X, Y, Divisor, <_out_ga(X, Y)) -> U13_GAA(X, Y, Divisor, >_in_gg(X, 0)) U13_GAA(X, Y, Divisor, >_out_gg(X, 0)) -> GCD_IN_AGA(Y, X, Divisor) GCD_IN_AGA(X, Y, Divisor) -> U8_AGA(X, Y, Divisor, >=_in_ag(X, Y)) U8_AGA(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_AGA(X, Y, Divisor, >_in_gg(Y, 0)) U9_AGA(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_AGA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_AGA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_GAA(Y, Remainder, Divisor) GCD_IN_AGA(X, Y, Divisor) -> U12_AGA(X, Y, Divisor, <_in_ag(X, Y)) U12_AGA(X, Y, Divisor, <_out_ag(X, Y)) -> U13_AGA(X, Y, Divisor, >_in_ag(X, 0)) U13_AGA(X, Y, Divisor, >_out_ag(X, 0)) -> GCD_IN_GAA(Y, X, Divisor) The TRS R consists of the following rules: <_in_ga(X0, X1) -> <_out_ga(X0, X1) >_in_gg(X0, X1) -> >_out_gg(X0, X1) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) is_in_aa(X0, X1) -> is_out_aa(X0, X1) <_in_ag(X0, X1) -> <_out_ag(X0, X1) >_in_ag(X0, X1) -> >_out_ag(X0, X1) The argument filtering Pi contains the following mapping: 0 = 0 >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg(x1, x2) mod(x1, x2) = mod(x1, x2) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag(x2) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa <_in_ga(x1, x2) = <_in_ga(x1) <_out_ga(x1, x2) = <_out_ga(x1) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag(x2) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag(x2) GCD_IN_GAA(x1, x2, x3) = GCD_IN_GAA(x1) U12_GAA(x1, x2, x3, x4) = U12_GAA(x1, x4) U13_GAA(x1, x2, x3, x4) = U13_GAA(x1, x4) GCD_IN_AGA(x1, x2, x3) = GCD_IN_AGA(x2) U8_AGA(x1, x2, x3, x4) = U8_AGA(x2, x4) U9_AGA(x1, x2, x3, x4) = U9_AGA(x2, x4) U10_AGA(x1, x2, x3, x4) = U10_AGA(x2, x4) U12_AGA(x1, x2, x3, x4) = U12_AGA(x2, x4) U13_AGA(x1, x2, x3, x4) = U13_AGA(x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (200) Obligation: Pi DP problem: The TRS P consists of the following rules: GCD_IN_GGA(X, Y, Divisor) -> U12_GGA(X, Y, Divisor, <_in_gg(X, Y)) U12_GGA(X, Y, Divisor, <_out_gg(X, Y)) -> U13_GGA(X, Y, Divisor, >_in_gg(X, 0)) U13_GGA(X, Y, Divisor, >_out_gg(X, 0)) -> GCD_IN_GGA(Y, X, Divisor) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, 0, X) -> gcd_out_gga(X, 0, X) gcd_in_gga(0, X, X) -> gcd_out_gga(0, X, X) gcd_in_gga(X, Y, Divisor) -> U8_gga(X, Y, Divisor, >=_in_gg(X, Y)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U8_gga(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_gga(X, Y, Divisor, >_in_gg(Y, 0)) >_in_gg(X0, X1) -> >_out_gg(X0, X1) U9_gga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_gga(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U10_gga(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_gga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) gcd_in_gaa(X, 0, X) -> gcd_out_gaa(X, 0, X) gcd_in_gaa(0, X, X) -> gcd_out_gaa(0, X, X) gcd_in_gaa(X, Y, Divisor) -> U8_gaa(X, Y, Divisor, >=_in_ga(X, Y)) >=_in_ga(X0, X1) -> >=_out_ga(X0, X1) U8_gaa(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_gaa(X, Y, Divisor, >_in_ag(Y, 0)) >_in_ag(X0, X1) -> >_out_ag(X0, X1) U9_gaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_gaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U10_gaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_gaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, 0, X) -> gcd_out_aaa(X, 0, X) gcd_in_aaa(0, X, X) -> gcd_out_aaa(0, X, X) gcd_in_aaa(X, Y, Divisor) -> U8_aaa(X, Y, Divisor, >=_in_aa(X, Y)) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) U8_aaa(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_aaa(X, Y, Divisor, >_in_ag(Y, 0)) U9_aaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_aaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, Y, Divisor) -> U12_aaa(X, Y, Divisor, <_in_aa(X, Y)) <_in_aa(X0, X1) -> <_out_aa(X0, X1) U12_aaa(X, Y, Divisor, <_out_aa(X, Y)) -> U13_aaa(X, Y, Divisor, >_in_ag(X, 0)) U13_aaa(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aaa(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U14_aaa(X, Y, Divisor, gcd_out_aaa(Y, X, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_aaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_gaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_gaa(X, Y, Divisor) gcd_in_gaa(X, Y, Divisor) -> U12_gaa(X, Y, Divisor, <_in_ga(X, Y)) <_in_ga(X0, X1) -> <_out_ga(X0, X1) U12_gaa(X, Y, Divisor, <_out_ga(X, Y)) -> U13_gaa(X, Y, Divisor, >_in_gg(X, 0)) U13_gaa(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gaa(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) gcd_in_aga(X, 0, X) -> gcd_out_aga(X, 0, X) gcd_in_aga(0, X, X) -> gcd_out_aga(0, X, X) gcd_in_aga(X, Y, Divisor) -> U8_aga(X, Y, Divisor, >=_in_ag(X, Y)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U8_aga(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_aga(X, Y, Divisor, >_in_gg(Y, 0)) U9_aga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_aga(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aga(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U11_aga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_aga(X, Y, Divisor) gcd_in_aga(X, Y, Divisor) -> U12_aga(X, Y, Divisor, <_in_ag(X, Y)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U12_aga(X, Y, Divisor, <_out_ag(X, Y)) -> U13_aga(X, Y, Divisor, >_in_ag(X, 0)) U13_aga(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aga(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U14_aga(X, Y, Divisor, gcd_out_gaa(Y, X, Divisor)) -> gcd_out_aga(X, Y, Divisor) U14_gaa(X, Y, Divisor, gcd_out_aga(Y, X, Divisor)) -> gcd_out_gaa(X, Y, Divisor) U11_gga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, <_in_gg(X, Y)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U12_gga(X, Y, Divisor, <_out_gg(X, Y)) -> U13_gga(X, Y, Divisor, >_in_gg(X, 0)) U13_gga(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U14_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =:=_in_ag(Gcd, 1)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U2_ga(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U3_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U3_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_ga(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_ga(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_ga(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) reduce_in_aa(frac(C, D), frac(C, D)) -> U1_aa(C, D, gcd_in_aaa(C, D, Gcd)) U1_aa(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_aa(C, D, =:=_in_ag(Gcd, 1)) U2_aa(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_aa(frac(C, D), frac(C, D)) reduce_in_aa(frac(C, D), frac(Cres, Dres)) -> U3_aa(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_aa(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_aa(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_aa(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_aa(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U5_aa(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_aa(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_aa(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_aa(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_aa(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_aa(frac(C, D), frac(Cres, Dres)) U5_ga(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_ga(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_ga(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_ga(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_ga(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x1, x2, x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) 0 = 0 gcd_out_gga(x1, x2, x3) = gcd_out_gga(x1, x2) U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) mod(x1, x2) = mod(x1, x2) U11_gga(x1, x2, x3, x4, x5) = U11_gga(x1, x2, x5) gcd_in_gaa(x1, x2, x3) = gcd_in_gaa(x1) gcd_out_gaa(x1, x2, x3) = gcd_out_gaa(x1) U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) >=_in_ga(x1, x2) = >=_in_ga(x1) >=_out_ga(x1, x2) = >=_out_ga(x1) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag(x2) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x1, x5) gcd_in_aaa(x1, x2, x3) = gcd_in_aaa gcd_out_aaa(x1, x2, x3) = gcd_out_aaa U8_aaa(x1, x2, x3, x4) = U8_aaa(x4) >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) U11_aaa(x1, x2, x3, x4, x5) = U11_aaa(x5) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa U13_aaa(x1, x2, x3, x4) = U13_aaa(x4) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) <_in_ga(x1, x2) = <_in_ga(x1) <_out_ga(x1, x2) = <_out_ga(x1) U13_gaa(x1, x2, x3, x4) = U13_gaa(x1, x4) U14_gaa(x1, x2, x3, x4) = U14_gaa(x1, x4) gcd_in_aga(x1, x2, x3) = gcd_in_aga(x2) gcd_out_aga(x1, x2, x3) = gcd_out_aga(x2) U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag(x2) U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4, x5) = U11_aga(x2, x5) U12_aga(x1, x2, x3, x4) = U12_aga(x2, x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag(x2) U13_aga(x1, x2, x3, x4) = U13_aga(x2, x4) U14_aga(x1, x2, x3, x4) = U14_aga(x2, x4) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg(x1, x2) U13_gga(x1, x2, x3, x4) = U13_gga(x1, x2, x4) U14_gga(x1, x2, x3, x4) = U14_gga(x1, x2, x4) U2_ga(x1, x2, x3) = U2_ga(x1, x2, x3) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag(x2) 1 = 1 reduce_out_ga(x1, x2) = reduce_out_ga(x1) U3_ga(x1, x2, x3, x4, x5) = U3_ga(x1, x2, x5) U4_ga(x1, x2, x3, x4, x5, x6) = U4_ga(x1, x2, x6) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x1, x2, x5) reduce_in_aa(x1, x2) = reduce_in_aa U1_aa(x1, x2, x3) = U1_aa(x3) U2_aa(x1, x2, x3) = U2_aa(x3) reduce_out_aa(x1, x2) = reduce_out_aa U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) U4_aa(x1, x2, x3, x4, x5, x6) = U4_aa(x6) U5_aa(x1, x2, x3, x4, x5) = U5_aa(x5) U6_aa(x1, x2, x3, x4, x5, x6) = U6_aa(x6) U7_aa(x1, x2, x3, x4, x5) = U7_aa(x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x1, x2, x6) U7_ga(x1, x2, x3, x4, x5) = U7_ga(x1, x2, x5) GCD_IN_GGA(x1, x2, x3) = GCD_IN_GGA(x1, x2) U12_GGA(x1, x2, x3, x4) = U12_GGA(x1, x2, x4) U13_GGA(x1, x2, x3, x4) = U13_GGA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (201) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (202) Obligation: Pi DP problem: The TRS P consists of the following rules: GCD_IN_GGA(X, Y, Divisor) -> U12_GGA(X, Y, Divisor, <_in_gg(X, Y)) U12_GGA(X, Y, Divisor, <_out_gg(X, Y)) -> U13_GGA(X, Y, Divisor, >_in_gg(X, 0)) U13_GGA(X, Y, Divisor, >_out_gg(X, 0)) -> GCD_IN_GGA(Y, X, Divisor) The TRS R consists of the following rules: <_in_gg(X0, X1) -> <_out_gg(X0, X1) >_in_gg(X0, X1) -> >_out_gg(X0, X1) The argument filtering Pi contains the following mapping: 0 = 0 >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg(x1, x2) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg(x1, x2) GCD_IN_GGA(x1, x2, x3) = GCD_IN_GGA(x1, x2) U12_GGA(x1, x2, x3, x4) = U12_GGA(x1, x2, x4) U13_GGA(x1, x2, x3, x4) = U13_GGA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (203) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: reduce_in_2: (b,f) (f,f) gcd_in_3: (b,b,f) (b,f,f) (f,f,f) (f,b,f) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, 0, X) -> gcd_out_gga(X, 0, X) gcd_in_gga(0, X, X) -> gcd_out_gga(0, X, X) gcd_in_gga(X, Y, Divisor) -> U8_gga(X, Y, Divisor, >=_in_gg(X, Y)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U8_gga(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_gga(X, Y, Divisor, >_in_gg(Y, 0)) >_in_gg(X0, X1) -> >_out_gg(X0, X1) U9_gga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_gga(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U10_gga(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_gga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) gcd_in_gaa(X, 0, X) -> gcd_out_gaa(X, 0, X) gcd_in_gaa(0, X, X) -> gcd_out_gaa(0, X, X) gcd_in_gaa(X, Y, Divisor) -> U8_gaa(X, Y, Divisor, >=_in_ga(X, Y)) >=_in_ga(X0, X1) -> >=_out_ga(X0, X1) U8_gaa(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_gaa(X, Y, Divisor, >_in_ag(Y, 0)) >_in_ag(X0, X1) -> >_out_ag(X0, X1) U9_gaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_gaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U10_gaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_gaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, 0, X) -> gcd_out_aaa(X, 0, X) gcd_in_aaa(0, X, X) -> gcd_out_aaa(0, X, X) gcd_in_aaa(X, Y, Divisor) -> U8_aaa(X, Y, Divisor, >=_in_aa(X, Y)) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) U8_aaa(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_aaa(X, Y, Divisor, >_in_ag(Y, 0)) U9_aaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_aaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, Y, Divisor) -> U12_aaa(X, Y, Divisor, <_in_aa(X, Y)) <_in_aa(X0, X1) -> <_out_aa(X0, X1) U12_aaa(X, Y, Divisor, <_out_aa(X, Y)) -> U13_aaa(X, Y, Divisor, >_in_ag(X, 0)) U13_aaa(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aaa(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U14_aaa(X, Y, Divisor, gcd_out_aaa(Y, X, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_aaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_gaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_gaa(X, Y, Divisor) gcd_in_gaa(X, Y, Divisor) -> U12_gaa(X, Y, Divisor, <_in_ga(X, Y)) <_in_ga(X0, X1) -> <_out_ga(X0, X1) U12_gaa(X, Y, Divisor, <_out_ga(X, Y)) -> U13_gaa(X, Y, Divisor, >_in_gg(X, 0)) U13_gaa(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gaa(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) gcd_in_aga(X, 0, X) -> gcd_out_aga(X, 0, X) gcd_in_aga(0, X, X) -> gcd_out_aga(0, X, X) gcd_in_aga(X, Y, Divisor) -> U8_aga(X, Y, Divisor, >=_in_ag(X, Y)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U8_aga(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_aga(X, Y, Divisor, >_in_gg(Y, 0)) U9_aga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_aga(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aga(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U11_aga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_aga(X, Y, Divisor) gcd_in_aga(X, Y, Divisor) -> U12_aga(X, Y, Divisor, <_in_ag(X, Y)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U12_aga(X, Y, Divisor, <_out_ag(X, Y)) -> U13_aga(X, Y, Divisor, >_in_ag(X, 0)) U13_aga(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aga(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U14_aga(X, Y, Divisor, gcd_out_gaa(Y, X, Divisor)) -> gcd_out_aga(X, Y, Divisor) U14_gaa(X, Y, Divisor, gcd_out_aga(Y, X, Divisor)) -> gcd_out_gaa(X, Y, Divisor) U11_gga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, <_in_gg(X, Y)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U12_gga(X, Y, Divisor, <_out_gg(X, Y)) -> U13_gga(X, Y, Divisor, >_in_gg(X, 0)) U13_gga(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U14_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =:=_in_ag(Gcd, 1)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U2_ga(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U3_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U3_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_ga(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_ga(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_ga(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) reduce_in_aa(frac(C, D), frac(C, D)) -> U1_aa(C, D, gcd_in_aaa(C, D, Gcd)) U1_aa(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_aa(C, D, =:=_in_ag(Gcd, 1)) U2_aa(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_aa(frac(C, D), frac(C, D)) reduce_in_aa(frac(C, D), frac(Cres, Dres)) -> U3_aa(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_aa(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_aa(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_aa(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_aa(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U5_aa(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_aa(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_aa(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_aa(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_aa(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_aa(frac(C, D), frac(Cres, Dres)) U5_ga(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_ga(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_ga(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_ga(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_ga(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) 0 = 0 gcd_out_gga(x1, x2, x3) = gcd_out_gga U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg U10_gga(x1, x2, x3, x4) = U10_gga(x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag mod(x1, x2) = mod(x1, x2) U11_gga(x1, x2, x3, x4, x5) = U11_gga(x5) gcd_in_gaa(x1, x2, x3) = gcd_in_gaa(x1) gcd_out_gaa(x1, x2, x3) = gcd_out_gaa U8_gaa(x1, x2, x3, x4) = U8_gaa(x4) >=_in_ga(x1, x2) = >=_in_ga(x1) >=_out_ga(x1, x2) = >=_out_ga U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x5) gcd_in_aaa(x1, x2, x3) = gcd_in_aaa gcd_out_aaa(x1, x2, x3) = gcd_out_aaa U8_aaa(x1, x2, x3, x4) = U8_aaa(x4) >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) U11_aaa(x1, x2, x3, x4, x5) = U11_aaa(x5) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa U13_aaa(x1, x2, x3, x4) = U13_aaa(x4) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) <_in_ga(x1, x2) = <_in_ga(x1) <_out_ga(x1, x2) = <_out_ga U13_gaa(x1, x2, x3, x4) = U13_gaa(x1, x4) U14_gaa(x1, x2, x3, x4) = U14_gaa(x4) gcd_in_aga(x1, x2, x3) = gcd_in_aga(x2) gcd_out_aga(x1, x2, x3) = gcd_out_aga U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4, x5) = U11_aga(x5) U12_aga(x1, x2, x3, x4) = U12_aga(x2, x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag U13_aga(x1, x2, x3, x4) = U13_aga(x2, x4) U14_aga(x1, x2, x3, x4) = U14_aga(x4) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg U13_gga(x1, x2, x3, x4) = U13_gga(x1, x2, x4) U14_gga(x1, x2, x3, x4) = U14_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x3) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag 1 = 1 reduce_out_ga(x1, x2) = reduce_out_ga U3_ga(x1, x2, x3, x4, x5) = U3_ga(x5) U4_ga(x1, x2, x3, x4, x5, x6) = U4_ga(x6) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x5) reduce_in_aa(x1, x2) = reduce_in_aa U1_aa(x1, x2, x3) = U1_aa(x3) U2_aa(x1, x2, x3) = U2_aa(x3) reduce_out_aa(x1, x2) = reduce_out_aa U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) U4_aa(x1, x2, x3, x4, x5, x6) = U4_aa(x6) U5_aa(x1, x2, x3, x4, x5) = U5_aa(x5) U6_aa(x1, x2, x3, x4, x5, x6) = U6_aa(x6) U7_aa(x1, x2, x3, x4, x5) = U7_aa(x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x6) U7_ga(x1, x2, x3, x4, x5) = U7_ga(x5) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (204) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, 0, X) -> gcd_out_gga(X, 0, X) gcd_in_gga(0, X, X) -> gcd_out_gga(0, X, X) gcd_in_gga(X, Y, Divisor) -> U8_gga(X, Y, Divisor, >=_in_gg(X, Y)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U8_gga(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_gga(X, Y, Divisor, >_in_gg(Y, 0)) >_in_gg(X0, X1) -> >_out_gg(X0, X1) U9_gga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_gga(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U10_gga(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_gga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) gcd_in_gaa(X, 0, X) -> gcd_out_gaa(X, 0, X) gcd_in_gaa(0, X, X) -> gcd_out_gaa(0, X, X) gcd_in_gaa(X, Y, Divisor) -> U8_gaa(X, Y, Divisor, >=_in_ga(X, Y)) >=_in_ga(X0, X1) -> >=_out_ga(X0, X1) U8_gaa(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_gaa(X, Y, Divisor, >_in_ag(Y, 0)) >_in_ag(X0, X1) -> >_out_ag(X0, X1) U9_gaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_gaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U10_gaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_gaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, 0, X) -> gcd_out_aaa(X, 0, X) gcd_in_aaa(0, X, X) -> gcd_out_aaa(0, X, X) gcd_in_aaa(X, Y, Divisor) -> U8_aaa(X, Y, Divisor, >=_in_aa(X, Y)) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) U8_aaa(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_aaa(X, Y, Divisor, >_in_ag(Y, 0)) U9_aaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_aaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, Y, Divisor) -> U12_aaa(X, Y, Divisor, <_in_aa(X, Y)) <_in_aa(X0, X1) -> <_out_aa(X0, X1) U12_aaa(X, Y, Divisor, <_out_aa(X, Y)) -> U13_aaa(X, Y, Divisor, >_in_ag(X, 0)) U13_aaa(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aaa(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U14_aaa(X, Y, Divisor, gcd_out_aaa(Y, X, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_aaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_gaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_gaa(X, Y, Divisor) gcd_in_gaa(X, Y, Divisor) -> U12_gaa(X, Y, Divisor, <_in_ga(X, Y)) <_in_ga(X0, X1) -> <_out_ga(X0, X1) U12_gaa(X, Y, Divisor, <_out_ga(X, Y)) -> U13_gaa(X, Y, Divisor, >_in_gg(X, 0)) U13_gaa(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gaa(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) gcd_in_aga(X, 0, X) -> gcd_out_aga(X, 0, X) gcd_in_aga(0, X, X) -> gcd_out_aga(0, X, X) gcd_in_aga(X, Y, Divisor) -> U8_aga(X, Y, Divisor, >=_in_ag(X, Y)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U8_aga(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_aga(X, Y, Divisor, >_in_gg(Y, 0)) U9_aga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_aga(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aga(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U11_aga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_aga(X, Y, Divisor) gcd_in_aga(X, Y, Divisor) -> U12_aga(X, Y, Divisor, <_in_ag(X, Y)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U12_aga(X, Y, Divisor, <_out_ag(X, Y)) -> U13_aga(X, Y, Divisor, >_in_ag(X, 0)) U13_aga(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aga(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U14_aga(X, Y, Divisor, gcd_out_gaa(Y, X, Divisor)) -> gcd_out_aga(X, Y, Divisor) U14_gaa(X, Y, Divisor, gcd_out_aga(Y, X, Divisor)) -> gcd_out_gaa(X, Y, Divisor) U11_gga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, <_in_gg(X, Y)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U12_gga(X, Y, Divisor, <_out_gg(X, Y)) -> U13_gga(X, Y, Divisor, >_in_gg(X, 0)) U13_gga(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U14_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =:=_in_ag(Gcd, 1)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U2_ga(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U3_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U3_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_ga(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_ga(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_ga(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) reduce_in_aa(frac(C, D), frac(C, D)) -> U1_aa(C, D, gcd_in_aaa(C, D, Gcd)) U1_aa(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_aa(C, D, =:=_in_ag(Gcd, 1)) U2_aa(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_aa(frac(C, D), frac(C, D)) reduce_in_aa(frac(C, D), frac(Cres, Dres)) -> U3_aa(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_aa(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_aa(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_aa(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_aa(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U5_aa(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_aa(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_aa(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_aa(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_aa(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_aa(frac(C, D), frac(Cres, Dres)) U5_ga(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_ga(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_ga(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_ga(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_ga(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) 0 = 0 gcd_out_gga(x1, x2, x3) = gcd_out_gga U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg U10_gga(x1, x2, x3, x4) = U10_gga(x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag mod(x1, x2) = mod(x1, x2) U11_gga(x1, x2, x3, x4, x5) = U11_gga(x5) gcd_in_gaa(x1, x2, x3) = gcd_in_gaa(x1) gcd_out_gaa(x1, x2, x3) = gcd_out_gaa U8_gaa(x1, x2, x3, x4) = U8_gaa(x4) >=_in_ga(x1, x2) = >=_in_ga(x1) >=_out_ga(x1, x2) = >=_out_ga U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x5) gcd_in_aaa(x1, x2, x3) = gcd_in_aaa gcd_out_aaa(x1, x2, x3) = gcd_out_aaa U8_aaa(x1, x2, x3, x4) = U8_aaa(x4) >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) U11_aaa(x1, x2, x3, x4, x5) = U11_aaa(x5) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa U13_aaa(x1, x2, x3, x4) = U13_aaa(x4) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) <_in_ga(x1, x2) = <_in_ga(x1) <_out_ga(x1, x2) = <_out_ga U13_gaa(x1, x2, x3, x4) = U13_gaa(x1, x4) U14_gaa(x1, x2, x3, x4) = U14_gaa(x4) gcd_in_aga(x1, x2, x3) = gcd_in_aga(x2) gcd_out_aga(x1, x2, x3) = gcd_out_aga U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4, x5) = U11_aga(x5) U12_aga(x1, x2, x3, x4) = U12_aga(x2, x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag U13_aga(x1, x2, x3, x4) = U13_aga(x2, x4) U14_aga(x1, x2, x3, x4) = U14_aga(x4) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg U13_gga(x1, x2, x3, x4) = U13_gga(x1, x2, x4) U14_gga(x1, x2, x3, x4) = U14_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x3) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag 1 = 1 reduce_out_ga(x1, x2) = reduce_out_ga U3_ga(x1, x2, x3, x4, x5) = U3_ga(x5) U4_ga(x1, x2, x3, x4, x5, x6) = U4_ga(x6) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x5) reduce_in_aa(x1, x2) = reduce_in_aa U1_aa(x1, x2, x3) = U1_aa(x3) U2_aa(x1, x2, x3) = U2_aa(x3) reduce_out_aa(x1, x2) = reduce_out_aa U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) U4_aa(x1, x2, x3, x4, x5, x6) = U4_aa(x6) U5_aa(x1, x2, x3, x4, x5) = U5_aa(x5) U6_aa(x1, x2, x3, x4, x5, x6) = U6_aa(x6) U7_aa(x1, x2, x3, x4, x5) = U7_aa(x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x6) U7_ga(x1, x2, x3, x4, x5) = U7_ga(x5) ---------------------------------------- (205) 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: REDUCE_IN_GA(frac(C, D), frac(C, D)) -> U1_GA(C, D, gcd_in_gga(C, D, Gcd)) REDUCE_IN_GA(frac(C, D), frac(C, D)) -> GCD_IN_GGA(C, D, Gcd) GCD_IN_GGA(X, Y, Divisor) -> U8_GGA(X, Y, Divisor, >=_in_gg(X, Y)) GCD_IN_GGA(X, Y, Divisor) -> >=_IN_GG(X, Y) U8_GGA(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_GGA(X, Y, Divisor, >_in_gg(Y, 0)) U8_GGA(X, Y, Divisor, >=_out_gg(X, Y)) -> >_IN_GG(Y, 0) U9_GGA(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_GGA(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) U9_GGA(X, Y, Divisor, >_out_gg(Y, 0)) -> IS_IN_AG(Remainder, mod(X, Y)) U10_GGA(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_GGA(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U10_GGA(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> GCD_IN_GAA(Y, Remainder, Divisor) GCD_IN_GAA(X, Y, Divisor) -> U8_GAA(X, Y, Divisor, >=_in_ga(X, Y)) GCD_IN_GAA(X, Y, Divisor) -> >=_IN_GA(X, Y) U8_GAA(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_GAA(X, Y, Divisor, >_in_ag(Y, 0)) U8_GAA(X, Y, Divisor, >=_out_ga(X, Y)) -> >_IN_AG(Y, 0) U9_GAA(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_GAA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U9_GAA(X, Y, Divisor, >_out_ag(Y, 0)) -> IS_IN_AA(Remainder, mod(X, Y)) U10_GAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_GAA(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) U10_GAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_AAA(Y, Remainder, Divisor) GCD_IN_AAA(X, Y, Divisor) -> U8_AAA(X, Y, Divisor, >=_in_aa(X, Y)) GCD_IN_AAA(X, Y, Divisor) -> >=_IN_AA(X, Y) U8_AAA(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_AAA(X, Y, Divisor, >_in_ag(Y, 0)) U8_AAA(X, Y, Divisor, >=_out_aa(X, Y)) -> >_IN_AG(Y, 0) U9_AAA(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_AAA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U9_AAA(X, Y, Divisor, >_out_ag(Y, 0)) -> IS_IN_AA(Remainder, mod(X, Y)) U10_AAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_AAA(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) U10_AAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_AAA(Y, Remainder, Divisor) GCD_IN_AAA(X, Y, Divisor) -> U12_AAA(X, Y, Divisor, <_in_aa(X, Y)) GCD_IN_AAA(X, Y, Divisor) -> <_IN_AA(X, Y) U12_AAA(X, Y, Divisor, <_out_aa(X, Y)) -> U13_AAA(X, Y, Divisor, >_in_ag(X, 0)) U12_AAA(X, Y, Divisor, <_out_aa(X, Y)) -> >_IN_AG(X, 0) U13_AAA(X, Y, Divisor, >_out_ag(X, 0)) -> U14_AAA(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U13_AAA(X, Y, Divisor, >_out_ag(X, 0)) -> GCD_IN_AAA(Y, X, Divisor) GCD_IN_GAA(X, Y, Divisor) -> U12_GAA(X, Y, Divisor, <_in_ga(X, Y)) GCD_IN_GAA(X, Y, Divisor) -> <_IN_GA(X, Y) U12_GAA(X, Y, Divisor, <_out_ga(X, Y)) -> U13_GAA(X, Y, Divisor, >_in_gg(X, 0)) U12_GAA(X, Y, Divisor, <_out_ga(X, Y)) -> >_IN_GG(X, 0) U13_GAA(X, Y, Divisor, >_out_gg(X, 0)) -> U14_GAA(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) U13_GAA(X, Y, Divisor, >_out_gg(X, 0)) -> GCD_IN_AGA(Y, X, Divisor) GCD_IN_AGA(X, Y, Divisor) -> U8_AGA(X, Y, Divisor, >=_in_ag(X, Y)) GCD_IN_AGA(X, Y, Divisor) -> >=_IN_AG(X, Y) U8_AGA(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_AGA(X, Y, Divisor, >_in_gg(Y, 0)) U8_AGA(X, Y, Divisor, >=_out_ag(X, Y)) -> >_IN_GG(Y, 0) U9_AGA(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_AGA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U9_AGA(X, Y, Divisor, >_out_gg(Y, 0)) -> IS_IN_AA(Remainder, mod(X, Y)) U10_AGA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_AGA(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U10_AGA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_GAA(Y, Remainder, Divisor) GCD_IN_AGA(X, Y, Divisor) -> U12_AGA(X, Y, Divisor, <_in_ag(X, Y)) GCD_IN_AGA(X, Y, Divisor) -> <_IN_AG(X, Y) U12_AGA(X, Y, Divisor, <_out_ag(X, Y)) -> U13_AGA(X, Y, Divisor, >_in_ag(X, 0)) U12_AGA(X, Y, Divisor, <_out_ag(X, Y)) -> >_IN_AG(X, 0) U13_AGA(X, Y, Divisor, >_out_ag(X, 0)) -> U14_AGA(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U13_AGA(X, Y, Divisor, >_out_ag(X, 0)) -> GCD_IN_GAA(Y, X, Divisor) GCD_IN_GGA(X, Y, Divisor) -> U12_GGA(X, Y, Divisor, <_in_gg(X, Y)) GCD_IN_GGA(X, Y, Divisor) -> <_IN_GG(X, Y) U12_GGA(X, Y, Divisor, <_out_gg(X, Y)) -> U13_GGA(X, Y, Divisor, >_in_gg(X, 0)) U12_GGA(X, Y, Divisor, <_out_gg(X, Y)) -> >_IN_GG(X, 0) U13_GGA(X, Y, Divisor, >_out_gg(X, 0)) -> U14_GGA(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U13_GGA(X, Y, Divisor, >_out_gg(X, 0)) -> GCD_IN_GGA(Y, X, Divisor) U1_GA(C, D, gcd_out_gga(C, D, Gcd)) -> U2_GA(C, D, =:=_in_ag(Gcd, 1)) U1_GA(C, D, gcd_out_gga(C, D, Gcd)) -> =:=_IN_AG(Gcd, 1) REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> U3_GA(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> GCD_IN_GGA(C, D, Gcd) U3_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_GA(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U3_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> >_IN_AG(Gcd, 1) U4_GA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_GA(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U4_GA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> REDUCE_IN_AA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) REDUCE_IN_AA(frac(C, D), frac(C, D)) -> U1_AA(C, D, gcd_in_aaa(C, D, Gcd)) REDUCE_IN_AA(frac(C, D), frac(C, D)) -> GCD_IN_AAA(C, D, Gcd) U1_AA(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_AA(C, D, =:=_in_ag(Gcd, 1)) U1_AA(C, D, gcd_out_aaa(C, D, Gcd)) -> =:=_IN_AG(Gcd, 1) REDUCE_IN_AA(frac(C, D), frac(Cres, Dres)) -> U3_AA(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) REDUCE_IN_AA(frac(C, D), frac(Cres, Dres)) -> GCD_IN_AAA(C, D, Gcd) U3_AA(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_AA(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U3_AA(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> >_IN_AG(Gcd, 1) U4_AA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_AA(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U4_AA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> REDUCE_IN_AA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) U5_AA(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_AA(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U5_AA(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> IS_IN_AA(Cres, CRec) U6_AA(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_AA(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U6_AA(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> IS_IN_AA(Dres, DRec) U5_GA(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_GA(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U5_GA(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> IS_IN_AA(Cres, CRec) U6_GA(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_GA(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U6_GA(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> IS_IN_AA(Dres, DRec) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, 0, X) -> gcd_out_gga(X, 0, X) gcd_in_gga(0, X, X) -> gcd_out_gga(0, X, X) gcd_in_gga(X, Y, Divisor) -> U8_gga(X, Y, Divisor, >=_in_gg(X, Y)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U8_gga(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_gga(X, Y, Divisor, >_in_gg(Y, 0)) >_in_gg(X0, X1) -> >_out_gg(X0, X1) U9_gga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_gga(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U10_gga(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_gga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) gcd_in_gaa(X, 0, X) -> gcd_out_gaa(X, 0, X) gcd_in_gaa(0, X, X) -> gcd_out_gaa(0, X, X) gcd_in_gaa(X, Y, Divisor) -> U8_gaa(X, Y, Divisor, >=_in_ga(X, Y)) >=_in_ga(X0, X1) -> >=_out_ga(X0, X1) U8_gaa(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_gaa(X, Y, Divisor, >_in_ag(Y, 0)) >_in_ag(X0, X1) -> >_out_ag(X0, X1) U9_gaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_gaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U10_gaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_gaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, 0, X) -> gcd_out_aaa(X, 0, X) gcd_in_aaa(0, X, X) -> gcd_out_aaa(0, X, X) gcd_in_aaa(X, Y, Divisor) -> U8_aaa(X, Y, Divisor, >=_in_aa(X, Y)) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) U8_aaa(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_aaa(X, Y, Divisor, >_in_ag(Y, 0)) U9_aaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_aaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, Y, Divisor) -> U12_aaa(X, Y, Divisor, <_in_aa(X, Y)) <_in_aa(X0, X1) -> <_out_aa(X0, X1) U12_aaa(X, Y, Divisor, <_out_aa(X, Y)) -> U13_aaa(X, Y, Divisor, >_in_ag(X, 0)) U13_aaa(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aaa(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U14_aaa(X, Y, Divisor, gcd_out_aaa(Y, X, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_aaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_gaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_gaa(X, Y, Divisor) gcd_in_gaa(X, Y, Divisor) -> U12_gaa(X, Y, Divisor, <_in_ga(X, Y)) <_in_ga(X0, X1) -> <_out_ga(X0, X1) U12_gaa(X, Y, Divisor, <_out_ga(X, Y)) -> U13_gaa(X, Y, Divisor, >_in_gg(X, 0)) U13_gaa(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gaa(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) gcd_in_aga(X, 0, X) -> gcd_out_aga(X, 0, X) gcd_in_aga(0, X, X) -> gcd_out_aga(0, X, X) gcd_in_aga(X, Y, Divisor) -> U8_aga(X, Y, Divisor, >=_in_ag(X, Y)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U8_aga(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_aga(X, Y, Divisor, >_in_gg(Y, 0)) U9_aga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_aga(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aga(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U11_aga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_aga(X, Y, Divisor) gcd_in_aga(X, Y, Divisor) -> U12_aga(X, Y, Divisor, <_in_ag(X, Y)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U12_aga(X, Y, Divisor, <_out_ag(X, Y)) -> U13_aga(X, Y, Divisor, >_in_ag(X, 0)) U13_aga(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aga(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U14_aga(X, Y, Divisor, gcd_out_gaa(Y, X, Divisor)) -> gcd_out_aga(X, Y, Divisor) U14_gaa(X, Y, Divisor, gcd_out_aga(Y, X, Divisor)) -> gcd_out_gaa(X, Y, Divisor) U11_gga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, <_in_gg(X, Y)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U12_gga(X, Y, Divisor, <_out_gg(X, Y)) -> U13_gga(X, Y, Divisor, >_in_gg(X, 0)) U13_gga(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U14_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =:=_in_ag(Gcd, 1)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U2_ga(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U3_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U3_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_ga(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_ga(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_ga(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) reduce_in_aa(frac(C, D), frac(C, D)) -> U1_aa(C, D, gcd_in_aaa(C, D, Gcd)) U1_aa(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_aa(C, D, =:=_in_ag(Gcd, 1)) U2_aa(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_aa(frac(C, D), frac(C, D)) reduce_in_aa(frac(C, D), frac(Cres, Dres)) -> U3_aa(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_aa(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_aa(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_aa(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_aa(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U5_aa(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_aa(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_aa(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_aa(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_aa(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_aa(frac(C, D), frac(Cres, Dres)) U5_ga(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_ga(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_ga(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_ga(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_ga(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) 0 = 0 gcd_out_gga(x1, x2, x3) = gcd_out_gga U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg U10_gga(x1, x2, x3, x4) = U10_gga(x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag mod(x1, x2) = mod(x1, x2) U11_gga(x1, x2, x3, x4, x5) = U11_gga(x5) gcd_in_gaa(x1, x2, x3) = gcd_in_gaa(x1) gcd_out_gaa(x1, x2, x3) = gcd_out_gaa U8_gaa(x1, x2, x3, x4) = U8_gaa(x4) >=_in_ga(x1, x2) = >=_in_ga(x1) >=_out_ga(x1, x2) = >=_out_ga U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x5) gcd_in_aaa(x1, x2, x3) = gcd_in_aaa gcd_out_aaa(x1, x2, x3) = gcd_out_aaa U8_aaa(x1, x2, x3, x4) = U8_aaa(x4) >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) U11_aaa(x1, x2, x3, x4, x5) = U11_aaa(x5) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa U13_aaa(x1, x2, x3, x4) = U13_aaa(x4) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) <_in_ga(x1, x2) = <_in_ga(x1) <_out_ga(x1, x2) = <_out_ga U13_gaa(x1, x2, x3, x4) = U13_gaa(x1, x4) U14_gaa(x1, x2, x3, x4) = U14_gaa(x4) gcd_in_aga(x1, x2, x3) = gcd_in_aga(x2) gcd_out_aga(x1, x2, x3) = gcd_out_aga U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4, x5) = U11_aga(x5) U12_aga(x1, x2, x3, x4) = U12_aga(x2, x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag U13_aga(x1, x2, x3, x4) = U13_aga(x2, x4) U14_aga(x1, x2, x3, x4) = U14_aga(x4) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg U13_gga(x1, x2, x3, x4) = U13_gga(x1, x2, x4) U14_gga(x1, x2, x3, x4) = U14_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x3) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag 1 = 1 reduce_out_ga(x1, x2) = reduce_out_ga U3_ga(x1, x2, x3, x4, x5) = U3_ga(x5) U4_ga(x1, x2, x3, x4, x5, x6) = U4_ga(x6) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x5) reduce_in_aa(x1, x2) = reduce_in_aa U1_aa(x1, x2, x3) = U1_aa(x3) U2_aa(x1, x2, x3) = U2_aa(x3) reduce_out_aa(x1, x2) = reduce_out_aa U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) U4_aa(x1, x2, x3, x4, x5, x6) = U4_aa(x6) U5_aa(x1, x2, x3, x4, x5) = U5_aa(x5) U6_aa(x1, x2, x3, x4, x5, x6) = U6_aa(x6) U7_aa(x1, x2, x3, x4, x5) = U7_aa(x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x6) U7_ga(x1, x2, x3, x4, x5) = U7_ga(x5) REDUCE_IN_GA(x1, x2) = REDUCE_IN_GA(x1) U1_GA(x1, x2, x3) = U1_GA(x3) GCD_IN_GGA(x1, x2, x3) = GCD_IN_GGA(x1, x2) U8_GGA(x1, x2, x3, x4) = U8_GGA(x1, x2, x4) >=_IN_GG(x1, x2) = >=_IN_GG(x1, x2) U9_GGA(x1, x2, x3, x4) = U9_GGA(x1, x2, x4) >_IN_GG(x1, x2) = >_IN_GG(x1, x2) U10_GGA(x1, x2, x3, x4) = U10_GGA(x2, x4) IS_IN_AG(x1, x2) = IS_IN_AG(x2) U11_GGA(x1, x2, x3, x4, x5) = U11_GGA(x5) GCD_IN_GAA(x1, x2, x3) = GCD_IN_GAA(x1) U8_GAA(x1, x2, x3, x4) = U8_GAA(x4) >=_IN_GA(x1, x2) = >=_IN_GA(x1) U9_GAA(x1, x2, x3, x4) = U9_GAA(x4) >_IN_AG(x1, x2) = >_IN_AG(x2) U10_GAA(x1, x2, x3, x4) = U10_GAA(x4) IS_IN_AA(x1, x2) = IS_IN_AA U11_GAA(x1, x2, x3, x4, x5) = U11_GAA(x5) GCD_IN_AAA(x1, x2, x3) = GCD_IN_AAA U8_AAA(x1, x2, x3, x4) = U8_AAA(x4) >=_IN_AA(x1, x2) = >=_IN_AA U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) U11_AAA(x1, x2, x3, x4, x5) = U11_AAA(x5) U12_AAA(x1, x2, x3, x4) = U12_AAA(x4) <_IN_AA(x1, x2) = <_IN_AA U13_AAA(x1, x2, x3, x4) = U13_AAA(x4) U14_AAA(x1, x2, x3, x4) = U14_AAA(x4) U12_GAA(x1, x2, x3, x4) = U12_GAA(x1, x4) <_IN_GA(x1, x2) = <_IN_GA(x1) U13_GAA(x1, x2, x3, x4) = U13_GAA(x1, x4) U14_GAA(x1, x2, x3, x4) = U14_GAA(x4) GCD_IN_AGA(x1, x2, x3) = GCD_IN_AGA(x2) U8_AGA(x1, x2, x3, x4) = U8_AGA(x2, x4) >=_IN_AG(x1, x2) = >=_IN_AG(x2) U9_AGA(x1, x2, x3, x4) = U9_AGA(x2, x4) U10_AGA(x1, x2, x3, x4) = U10_AGA(x2, x4) U11_AGA(x1, x2, x3, x4, x5) = U11_AGA(x5) U12_AGA(x1, x2, x3, x4) = U12_AGA(x2, x4) <_IN_AG(x1, x2) = <_IN_AG(x2) U13_AGA(x1, x2, x3, x4) = U13_AGA(x2, x4) U14_AGA(x1, x2, x3, x4) = U14_AGA(x4) U12_GGA(x1, x2, x3, x4) = U12_GGA(x1, x2, x4) <_IN_GG(x1, x2) = <_IN_GG(x1, x2) U13_GGA(x1, x2, x3, x4) = U13_GGA(x1, x2, x4) U14_GGA(x1, x2, x3, x4) = U14_GGA(x4) U2_GA(x1, x2, x3) = U2_GA(x3) =:=_IN_AG(x1, x2) = =:=_IN_AG(x2) U3_GA(x1, x2, x3, x4, x5) = U3_GA(x5) U4_GA(x1, x2, x3, x4, x5, x6) = U4_GA(x6) U5_GA(x1, x2, x3, x4, x5) = U5_GA(x5) REDUCE_IN_AA(x1, x2) = REDUCE_IN_AA U1_AA(x1, x2, x3) = U1_AA(x3) U2_AA(x1, x2, x3) = U2_AA(x3) U3_AA(x1, x2, x3, x4, x5) = U3_AA(x5) U4_AA(x1, x2, x3, x4, x5, x6) = U4_AA(x6) U5_AA(x1, x2, x3, x4, x5) = U5_AA(x5) U6_AA(x1, x2, x3, x4, x5, x6) = U6_AA(x6) U7_AA(x1, x2, x3, x4, x5) = U7_AA(x5) U6_GA(x1, x2, x3, x4, x5, x6) = U6_GA(x6) U7_GA(x1, x2, x3, x4, x5) = U7_GA(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (206) Obligation: Pi DP problem: The TRS P consists of the following rules: REDUCE_IN_GA(frac(C, D), frac(C, D)) -> U1_GA(C, D, gcd_in_gga(C, D, Gcd)) REDUCE_IN_GA(frac(C, D), frac(C, D)) -> GCD_IN_GGA(C, D, Gcd) GCD_IN_GGA(X, Y, Divisor) -> U8_GGA(X, Y, Divisor, >=_in_gg(X, Y)) GCD_IN_GGA(X, Y, Divisor) -> >=_IN_GG(X, Y) U8_GGA(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_GGA(X, Y, Divisor, >_in_gg(Y, 0)) U8_GGA(X, Y, Divisor, >=_out_gg(X, Y)) -> >_IN_GG(Y, 0) U9_GGA(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_GGA(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) U9_GGA(X, Y, Divisor, >_out_gg(Y, 0)) -> IS_IN_AG(Remainder, mod(X, Y)) U10_GGA(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_GGA(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U10_GGA(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> GCD_IN_GAA(Y, Remainder, Divisor) GCD_IN_GAA(X, Y, Divisor) -> U8_GAA(X, Y, Divisor, >=_in_ga(X, Y)) GCD_IN_GAA(X, Y, Divisor) -> >=_IN_GA(X, Y) U8_GAA(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_GAA(X, Y, Divisor, >_in_ag(Y, 0)) U8_GAA(X, Y, Divisor, >=_out_ga(X, Y)) -> >_IN_AG(Y, 0) U9_GAA(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_GAA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U9_GAA(X, Y, Divisor, >_out_ag(Y, 0)) -> IS_IN_AA(Remainder, mod(X, Y)) U10_GAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_GAA(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) U10_GAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_AAA(Y, Remainder, Divisor) GCD_IN_AAA(X, Y, Divisor) -> U8_AAA(X, Y, Divisor, >=_in_aa(X, Y)) GCD_IN_AAA(X, Y, Divisor) -> >=_IN_AA(X, Y) U8_AAA(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_AAA(X, Y, Divisor, >_in_ag(Y, 0)) U8_AAA(X, Y, Divisor, >=_out_aa(X, Y)) -> >_IN_AG(Y, 0) U9_AAA(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_AAA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U9_AAA(X, Y, Divisor, >_out_ag(Y, 0)) -> IS_IN_AA(Remainder, mod(X, Y)) U10_AAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_AAA(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) U10_AAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_AAA(Y, Remainder, Divisor) GCD_IN_AAA(X, Y, Divisor) -> U12_AAA(X, Y, Divisor, <_in_aa(X, Y)) GCD_IN_AAA(X, Y, Divisor) -> <_IN_AA(X, Y) U12_AAA(X, Y, Divisor, <_out_aa(X, Y)) -> U13_AAA(X, Y, Divisor, >_in_ag(X, 0)) U12_AAA(X, Y, Divisor, <_out_aa(X, Y)) -> >_IN_AG(X, 0) U13_AAA(X, Y, Divisor, >_out_ag(X, 0)) -> U14_AAA(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U13_AAA(X, Y, Divisor, >_out_ag(X, 0)) -> GCD_IN_AAA(Y, X, Divisor) GCD_IN_GAA(X, Y, Divisor) -> U12_GAA(X, Y, Divisor, <_in_ga(X, Y)) GCD_IN_GAA(X, Y, Divisor) -> <_IN_GA(X, Y) U12_GAA(X, Y, Divisor, <_out_ga(X, Y)) -> U13_GAA(X, Y, Divisor, >_in_gg(X, 0)) U12_GAA(X, Y, Divisor, <_out_ga(X, Y)) -> >_IN_GG(X, 0) U13_GAA(X, Y, Divisor, >_out_gg(X, 0)) -> U14_GAA(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) U13_GAA(X, Y, Divisor, >_out_gg(X, 0)) -> GCD_IN_AGA(Y, X, Divisor) GCD_IN_AGA(X, Y, Divisor) -> U8_AGA(X, Y, Divisor, >=_in_ag(X, Y)) GCD_IN_AGA(X, Y, Divisor) -> >=_IN_AG(X, Y) U8_AGA(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_AGA(X, Y, Divisor, >_in_gg(Y, 0)) U8_AGA(X, Y, Divisor, >=_out_ag(X, Y)) -> >_IN_GG(Y, 0) U9_AGA(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_AGA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U9_AGA(X, Y, Divisor, >_out_gg(Y, 0)) -> IS_IN_AA(Remainder, mod(X, Y)) U10_AGA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_AGA(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U10_AGA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_GAA(Y, Remainder, Divisor) GCD_IN_AGA(X, Y, Divisor) -> U12_AGA(X, Y, Divisor, <_in_ag(X, Y)) GCD_IN_AGA(X, Y, Divisor) -> <_IN_AG(X, Y) U12_AGA(X, Y, Divisor, <_out_ag(X, Y)) -> U13_AGA(X, Y, Divisor, >_in_ag(X, 0)) U12_AGA(X, Y, Divisor, <_out_ag(X, Y)) -> >_IN_AG(X, 0) U13_AGA(X, Y, Divisor, >_out_ag(X, 0)) -> U14_AGA(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U13_AGA(X, Y, Divisor, >_out_ag(X, 0)) -> GCD_IN_GAA(Y, X, Divisor) GCD_IN_GGA(X, Y, Divisor) -> U12_GGA(X, Y, Divisor, <_in_gg(X, Y)) GCD_IN_GGA(X, Y, Divisor) -> <_IN_GG(X, Y) U12_GGA(X, Y, Divisor, <_out_gg(X, Y)) -> U13_GGA(X, Y, Divisor, >_in_gg(X, 0)) U12_GGA(X, Y, Divisor, <_out_gg(X, Y)) -> >_IN_GG(X, 0) U13_GGA(X, Y, Divisor, >_out_gg(X, 0)) -> U14_GGA(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U13_GGA(X, Y, Divisor, >_out_gg(X, 0)) -> GCD_IN_GGA(Y, X, Divisor) U1_GA(C, D, gcd_out_gga(C, D, Gcd)) -> U2_GA(C, D, =:=_in_ag(Gcd, 1)) U1_GA(C, D, gcd_out_gga(C, D, Gcd)) -> =:=_IN_AG(Gcd, 1) REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> U3_GA(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) REDUCE_IN_GA(frac(C, D), frac(Cres, Dres)) -> GCD_IN_GGA(C, D, Gcd) U3_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_GA(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U3_GA(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> >_IN_AG(Gcd, 1) U4_GA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_GA(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U4_GA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> REDUCE_IN_AA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) REDUCE_IN_AA(frac(C, D), frac(C, D)) -> U1_AA(C, D, gcd_in_aaa(C, D, Gcd)) REDUCE_IN_AA(frac(C, D), frac(C, D)) -> GCD_IN_AAA(C, D, Gcd) U1_AA(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_AA(C, D, =:=_in_ag(Gcd, 1)) U1_AA(C, D, gcd_out_aaa(C, D, Gcd)) -> =:=_IN_AG(Gcd, 1) REDUCE_IN_AA(frac(C, D), frac(Cres, Dres)) -> U3_AA(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) REDUCE_IN_AA(frac(C, D), frac(Cres, Dres)) -> GCD_IN_AAA(C, D, Gcd) U3_AA(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_AA(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U3_AA(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> >_IN_AG(Gcd, 1) U4_AA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_AA(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U4_AA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> REDUCE_IN_AA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) U5_AA(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_AA(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U5_AA(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> IS_IN_AA(Cres, CRec) U6_AA(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_AA(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U6_AA(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> IS_IN_AA(Dres, DRec) U5_GA(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_GA(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U5_GA(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> IS_IN_AA(Cres, CRec) U6_GA(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_GA(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U6_GA(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> IS_IN_AA(Dres, DRec) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, 0, X) -> gcd_out_gga(X, 0, X) gcd_in_gga(0, X, X) -> gcd_out_gga(0, X, X) gcd_in_gga(X, Y, Divisor) -> U8_gga(X, Y, Divisor, >=_in_gg(X, Y)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U8_gga(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_gga(X, Y, Divisor, >_in_gg(Y, 0)) >_in_gg(X0, X1) -> >_out_gg(X0, X1) U9_gga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_gga(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U10_gga(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_gga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) gcd_in_gaa(X, 0, X) -> gcd_out_gaa(X, 0, X) gcd_in_gaa(0, X, X) -> gcd_out_gaa(0, X, X) gcd_in_gaa(X, Y, Divisor) -> U8_gaa(X, Y, Divisor, >=_in_ga(X, Y)) >=_in_ga(X0, X1) -> >=_out_ga(X0, X1) U8_gaa(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_gaa(X, Y, Divisor, >_in_ag(Y, 0)) >_in_ag(X0, X1) -> >_out_ag(X0, X1) U9_gaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_gaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U10_gaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_gaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, 0, X) -> gcd_out_aaa(X, 0, X) gcd_in_aaa(0, X, X) -> gcd_out_aaa(0, X, X) gcd_in_aaa(X, Y, Divisor) -> U8_aaa(X, Y, Divisor, >=_in_aa(X, Y)) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) U8_aaa(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_aaa(X, Y, Divisor, >_in_ag(Y, 0)) U9_aaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_aaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, Y, Divisor) -> U12_aaa(X, Y, Divisor, <_in_aa(X, Y)) <_in_aa(X0, X1) -> <_out_aa(X0, X1) U12_aaa(X, Y, Divisor, <_out_aa(X, Y)) -> U13_aaa(X, Y, Divisor, >_in_ag(X, 0)) U13_aaa(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aaa(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U14_aaa(X, Y, Divisor, gcd_out_aaa(Y, X, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_aaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_gaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_gaa(X, Y, Divisor) gcd_in_gaa(X, Y, Divisor) -> U12_gaa(X, Y, Divisor, <_in_ga(X, Y)) <_in_ga(X0, X1) -> <_out_ga(X0, X1) U12_gaa(X, Y, Divisor, <_out_ga(X, Y)) -> U13_gaa(X, Y, Divisor, >_in_gg(X, 0)) U13_gaa(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gaa(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) gcd_in_aga(X, 0, X) -> gcd_out_aga(X, 0, X) gcd_in_aga(0, X, X) -> gcd_out_aga(0, X, X) gcd_in_aga(X, Y, Divisor) -> U8_aga(X, Y, Divisor, >=_in_ag(X, Y)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U8_aga(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_aga(X, Y, Divisor, >_in_gg(Y, 0)) U9_aga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_aga(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aga(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U11_aga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_aga(X, Y, Divisor) gcd_in_aga(X, Y, Divisor) -> U12_aga(X, Y, Divisor, <_in_ag(X, Y)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U12_aga(X, Y, Divisor, <_out_ag(X, Y)) -> U13_aga(X, Y, Divisor, >_in_ag(X, 0)) U13_aga(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aga(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U14_aga(X, Y, Divisor, gcd_out_gaa(Y, X, Divisor)) -> gcd_out_aga(X, Y, Divisor) U14_gaa(X, Y, Divisor, gcd_out_aga(Y, X, Divisor)) -> gcd_out_gaa(X, Y, Divisor) U11_gga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, <_in_gg(X, Y)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U12_gga(X, Y, Divisor, <_out_gg(X, Y)) -> U13_gga(X, Y, Divisor, >_in_gg(X, 0)) U13_gga(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U14_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =:=_in_ag(Gcd, 1)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U2_ga(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U3_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U3_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_ga(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_ga(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_ga(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) reduce_in_aa(frac(C, D), frac(C, D)) -> U1_aa(C, D, gcd_in_aaa(C, D, Gcd)) U1_aa(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_aa(C, D, =:=_in_ag(Gcd, 1)) U2_aa(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_aa(frac(C, D), frac(C, D)) reduce_in_aa(frac(C, D), frac(Cres, Dres)) -> U3_aa(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_aa(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_aa(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_aa(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_aa(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U5_aa(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_aa(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_aa(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_aa(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_aa(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_aa(frac(C, D), frac(Cres, Dres)) U5_ga(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_ga(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_ga(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_ga(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_ga(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) 0 = 0 gcd_out_gga(x1, x2, x3) = gcd_out_gga U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg U10_gga(x1, x2, x3, x4) = U10_gga(x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag mod(x1, x2) = mod(x1, x2) U11_gga(x1, x2, x3, x4, x5) = U11_gga(x5) gcd_in_gaa(x1, x2, x3) = gcd_in_gaa(x1) gcd_out_gaa(x1, x2, x3) = gcd_out_gaa U8_gaa(x1, x2, x3, x4) = U8_gaa(x4) >=_in_ga(x1, x2) = >=_in_ga(x1) >=_out_ga(x1, x2) = >=_out_ga U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x5) gcd_in_aaa(x1, x2, x3) = gcd_in_aaa gcd_out_aaa(x1, x2, x3) = gcd_out_aaa U8_aaa(x1, x2, x3, x4) = U8_aaa(x4) >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) U11_aaa(x1, x2, x3, x4, x5) = U11_aaa(x5) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa U13_aaa(x1, x2, x3, x4) = U13_aaa(x4) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) <_in_ga(x1, x2) = <_in_ga(x1) <_out_ga(x1, x2) = <_out_ga U13_gaa(x1, x2, x3, x4) = U13_gaa(x1, x4) U14_gaa(x1, x2, x3, x4) = U14_gaa(x4) gcd_in_aga(x1, x2, x3) = gcd_in_aga(x2) gcd_out_aga(x1, x2, x3) = gcd_out_aga U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4, x5) = U11_aga(x5) U12_aga(x1, x2, x3, x4) = U12_aga(x2, x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag U13_aga(x1, x2, x3, x4) = U13_aga(x2, x4) U14_aga(x1, x2, x3, x4) = U14_aga(x4) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg U13_gga(x1, x2, x3, x4) = U13_gga(x1, x2, x4) U14_gga(x1, x2, x3, x4) = U14_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x3) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag 1 = 1 reduce_out_ga(x1, x2) = reduce_out_ga U3_ga(x1, x2, x3, x4, x5) = U3_ga(x5) U4_ga(x1, x2, x3, x4, x5, x6) = U4_ga(x6) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x5) reduce_in_aa(x1, x2) = reduce_in_aa U1_aa(x1, x2, x3) = U1_aa(x3) U2_aa(x1, x2, x3) = U2_aa(x3) reduce_out_aa(x1, x2) = reduce_out_aa U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) U4_aa(x1, x2, x3, x4, x5, x6) = U4_aa(x6) U5_aa(x1, x2, x3, x4, x5) = U5_aa(x5) U6_aa(x1, x2, x3, x4, x5, x6) = U6_aa(x6) U7_aa(x1, x2, x3, x4, x5) = U7_aa(x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x6) U7_ga(x1, x2, x3, x4, x5) = U7_ga(x5) REDUCE_IN_GA(x1, x2) = REDUCE_IN_GA(x1) U1_GA(x1, x2, x3) = U1_GA(x3) GCD_IN_GGA(x1, x2, x3) = GCD_IN_GGA(x1, x2) U8_GGA(x1, x2, x3, x4) = U8_GGA(x1, x2, x4) >=_IN_GG(x1, x2) = >=_IN_GG(x1, x2) U9_GGA(x1, x2, x3, x4) = U9_GGA(x1, x2, x4) >_IN_GG(x1, x2) = >_IN_GG(x1, x2) U10_GGA(x1, x2, x3, x4) = U10_GGA(x2, x4) IS_IN_AG(x1, x2) = IS_IN_AG(x2) U11_GGA(x1, x2, x3, x4, x5) = U11_GGA(x5) GCD_IN_GAA(x1, x2, x3) = GCD_IN_GAA(x1) U8_GAA(x1, x2, x3, x4) = U8_GAA(x4) >=_IN_GA(x1, x2) = >=_IN_GA(x1) U9_GAA(x1, x2, x3, x4) = U9_GAA(x4) >_IN_AG(x1, x2) = >_IN_AG(x2) U10_GAA(x1, x2, x3, x4) = U10_GAA(x4) IS_IN_AA(x1, x2) = IS_IN_AA U11_GAA(x1, x2, x3, x4, x5) = U11_GAA(x5) GCD_IN_AAA(x1, x2, x3) = GCD_IN_AAA U8_AAA(x1, x2, x3, x4) = U8_AAA(x4) >=_IN_AA(x1, x2) = >=_IN_AA U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) U11_AAA(x1, x2, x3, x4, x5) = U11_AAA(x5) U12_AAA(x1, x2, x3, x4) = U12_AAA(x4) <_IN_AA(x1, x2) = <_IN_AA U13_AAA(x1, x2, x3, x4) = U13_AAA(x4) U14_AAA(x1, x2, x3, x4) = U14_AAA(x4) U12_GAA(x1, x2, x3, x4) = U12_GAA(x1, x4) <_IN_GA(x1, x2) = <_IN_GA(x1) U13_GAA(x1, x2, x3, x4) = U13_GAA(x1, x4) U14_GAA(x1, x2, x3, x4) = U14_GAA(x4) GCD_IN_AGA(x1, x2, x3) = GCD_IN_AGA(x2) U8_AGA(x1, x2, x3, x4) = U8_AGA(x2, x4) >=_IN_AG(x1, x2) = >=_IN_AG(x2) U9_AGA(x1, x2, x3, x4) = U9_AGA(x2, x4) U10_AGA(x1, x2, x3, x4) = U10_AGA(x2, x4) U11_AGA(x1, x2, x3, x4, x5) = U11_AGA(x5) U12_AGA(x1, x2, x3, x4) = U12_AGA(x2, x4) <_IN_AG(x1, x2) = <_IN_AG(x2) U13_AGA(x1, x2, x3, x4) = U13_AGA(x2, x4) U14_AGA(x1, x2, x3, x4) = U14_AGA(x4) U12_GGA(x1, x2, x3, x4) = U12_GGA(x1, x2, x4) <_IN_GG(x1, x2) = <_IN_GG(x1, x2) U13_GGA(x1, x2, x3, x4) = U13_GGA(x1, x2, x4) U14_GGA(x1, x2, x3, x4) = U14_GGA(x4) U2_GA(x1, x2, x3) = U2_GA(x3) =:=_IN_AG(x1, x2) = =:=_IN_AG(x2) U3_GA(x1, x2, x3, x4, x5) = U3_GA(x5) U4_GA(x1, x2, x3, x4, x5, x6) = U4_GA(x6) U5_GA(x1, x2, x3, x4, x5) = U5_GA(x5) REDUCE_IN_AA(x1, x2) = REDUCE_IN_AA U1_AA(x1, x2, x3) = U1_AA(x3) U2_AA(x1, x2, x3) = U2_AA(x3) U3_AA(x1, x2, x3, x4, x5) = U3_AA(x5) U4_AA(x1, x2, x3, x4, x5, x6) = U4_AA(x6) U5_AA(x1, x2, x3, x4, x5) = U5_AA(x5) U6_AA(x1, x2, x3, x4, x5, x6) = U6_AA(x6) U7_AA(x1, x2, x3, x4, x5) = U7_AA(x5) U6_GA(x1, x2, x3, x4, x5, x6) = U6_GA(x6) U7_GA(x1, x2, x3, x4, x5) = U7_GA(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (207) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 61 less nodes. ---------------------------------------- (208) Complex Obligation (AND) ---------------------------------------- (209) Obligation: Pi DP problem: The TRS P consists of the following rules: U8_AAA(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_AAA(X, Y, Divisor, >_in_ag(Y, 0)) U9_AAA(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_AAA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_AAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_AAA(Y, Remainder, Divisor) GCD_IN_AAA(X, Y, Divisor) -> U8_AAA(X, Y, Divisor, >=_in_aa(X, Y)) GCD_IN_AAA(X, Y, Divisor) -> U12_AAA(X, Y, Divisor, <_in_aa(X, Y)) U12_AAA(X, Y, Divisor, <_out_aa(X, Y)) -> U13_AAA(X, Y, Divisor, >_in_ag(X, 0)) U13_AAA(X, Y, Divisor, >_out_ag(X, 0)) -> GCD_IN_AAA(Y, X, Divisor) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, 0, X) -> gcd_out_gga(X, 0, X) gcd_in_gga(0, X, X) -> gcd_out_gga(0, X, X) gcd_in_gga(X, Y, Divisor) -> U8_gga(X, Y, Divisor, >=_in_gg(X, Y)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U8_gga(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_gga(X, Y, Divisor, >_in_gg(Y, 0)) >_in_gg(X0, X1) -> >_out_gg(X0, X1) U9_gga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_gga(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U10_gga(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_gga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) gcd_in_gaa(X, 0, X) -> gcd_out_gaa(X, 0, X) gcd_in_gaa(0, X, X) -> gcd_out_gaa(0, X, X) gcd_in_gaa(X, Y, Divisor) -> U8_gaa(X, Y, Divisor, >=_in_ga(X, Y)) >=_in_ga(X0, X1) -> >=_out_ga(X0, X1) U8_gaa(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_gaa(X, Y, Divisor, >_in_ag(Y, 0)) >_in_ag(X0, X1) -> >_out_ag(X0, X1) U9_gaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_gaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U10_gaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_gaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, 0, X) -> gcd_out_aaa(X, 0, X) gcd_in_aaa(0, X, X) -> gcd_out_aaa(0, X, X) gcd_in_aaa(X, Y, Divisor) -> U8_aaa(X, Y, Divisor, >=_in_aa(X, Y)) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) U8_aaa(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_aaa(X, Y, Divisor, >_in_ag(Y, 0)) U9_aaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_aaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, Y, Divisor) -> U12_aaa(X, Y, Divisor, <_in_aa(X, Y)) <_in_aa(X0, X1) -> <_out_aa(X0, X1) U12_aaa(X, Y, Divisor, <_out_aa(X, Y)) -> U13_aaa(X, Y, Divisor, >_in_ag(X, 0)) U13_aaa(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aaa(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U14_aaa(X, Y, Divisor, gcd_out_aaa(Y, X, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_aaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_gaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_gaa(X, Y, Divisor) gcd_in_gaa(X, Y, Divisor) -> U12_gaa(X, Y, Divisor, <_in_ga(X, Y)) <_in_ga(X0, X1) -> <_out_ga(X0, X1) U12_gaa(X, Y, Divisor, <_out_ga(X, Y)) -> U13_gaa(X, Y, Divisor, >_in_gg(X, 0)) U13_gaa(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gaa(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) gcd_in_aga(X, 0, X) -> gcd_out_aga(X, 0, X) gcd_in_aga(0, X, X) -> gcd_out_aga(0, X, X) gcd_in_aga(X, Y, Divisor) -> U8_aga(X, Y, Divisor, >=_in_ag(X, Y)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U8_aga(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_aga(X, Y, Divisor, >_in_gg(Y, 0)) U9_aga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_aga(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aga(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U11_aga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_aga(X, Y, Divisor) gcd_in_aga(X, Y, Divisor) -> U12_aga(X, Y, Divisor, <_in_ag(X, Y)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U12_aga(X, Y, Divisor, <_out_ag(X, Y)) -> U13_aga(X, Y, Divisor, >_in_ag(X, 0)) U13_aga(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aga(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U14_aga(X, Y, Divisor, gcd_out_gaa(Y, X, Divisor)) -> gcd_out_aga(X, Y, Divisor) U14_gaa(X, Y, Divisor, gcd_out_aga(Y, X, Divisor)) -> gcd_out_gaa(X, Y, Divisor) U11_gga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, <_in_gg(X, Y)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U12_gga(X, Y, Divisor, <_out_gg(X, Y)) -> U13_gga(X, Y, Divisor, >_in_gg(X, 0)) U13_gga(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U14_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =:=_in_ag(Gcd, 1)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U2_ga(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U3_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U3_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_ga(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_ga(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_ga(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) reduce_in_aa(frac(C, D), frac(C, D)) -> U1_aa(C, D, gcd_in_aaa(C, D, Gcd)) U1_aa(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_aa(C, D, =:=_in_ag(Gcd, 1)) U2_aa(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_aa(frac(C, D), frac(C, D)) reduce_in_aa(frac(C, D), frac(Cres, Dres)) -> U3_aa(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_aa(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_aa(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_aa(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_aa(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U5_aa(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_aa(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_aa(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_aa(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_aa(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_aa(frac(C, D), frac(Cres, Dres)) U5_ga(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_ga(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_ga(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_ga(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_ga(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) 0 = 0 gcd_out_gga(x1, x2, x3) = gcd_out_gga U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg U10_gga(x1, x2, x3, x4) = U10_gga(x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag mod(x1, x2) = mod(x1, x2) U11_gga(x1, x2, x3, x4, x5) = U11_gga(x5) gcd_in_gaa(x1, x2, x3) = gcd_in_gaa(x1) gcd_out_gaa(x1, x2, x3) = gcd_out_gaa U8_gaa(x1, x2, x3, x4) = U8_gaa(x4) >=_in_ga(x1, x2) = >=_in_ga(x1) >=_out_ga(x1, x2) = >=_out_ga U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x5) gcd_in_aaa(x1, x2, x3) = gcd_in_aaa gcd_out_aaa(x1, x2, x3) = gcd_out_aaa U8_aaa(x1, x2, x3, x4) = U8_aaa(x4) >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) U11_aaa(x1, x2, x3, x4, x5) = U11_aaa(x5) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa U13_aaa(x1, x2, x3, x4) = U13_aaa(x4) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) <_in_ga(x1, x2) = <_in_ga(x1) <_out_ga(x1, x2) = <_out_ga U13_gaa(x1, x2, x3, x4) = U13_gaa(x1, x4) U14_gaa(x1, x2, x3, x4) = U14_gaa(x4) gcd_in_aga(x1, x2, x3) = gcd_in_aga(x2) gcd_out_aga(x1, x2, x3) = gcd_out_aga U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4, x5) = U11_aga(x5) U12_aga(x1, x2, x3, x4) = U12_aga(x2, x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag U13_aga(x1, x2, x3, x4) = U13_aga(x2, x4) U14_aga(x1, x2, x3, x4) = U14_aga(x4) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg U13_gga(x1, x2, x3, x4) = U13_gga(x1, x2, x4) U14_gga(x1, x2, x3, x4) = U14_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x3) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag 1 = 1 reduce_out_ga(x1, x2) = reduce_out_ga U3_ga(x1, x2, x3, x4, x5) = U3_ga(x5) U4_ga(x1, x2, x3, x4, x5, x6) = U4_ga(x6) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x5) reduce_in_aa(x1, x2) = reduce_in_aa U1_aa(x1, x2, x3) = U1_aa(x3) U2_aa(x1, x2, x3) = U2_aa(x3) reduce_out_aa(x1, x2) = reduce_out_aa U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) U4_aa(x1, x2, x3, x4, x5, x6) = U4_aa(x6) U5_aa(x1, x2, x3, x4, x5) = U5_aa(x5) U6_aa(x1, x2, x3, x4, x5, x6) = U6_aa(x6) U7_aa(x1, x2, x3, x4, x5) = U7_aa(x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x6) U7_ga(x1, x2, x3, x4, x5) = U7_ga(x5) GCD_IN_AAA(x1, x2, x3) = GCD_IN_AAA U8_AAA(x1, x2, x3, x4) = U8_AAA(x4) U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) U12_AAA(x1, x2, x3, x4) = U12_AAA(x4) U13_AAA(x1, x2, x3, x4) = U13_AAA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (210) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (211) Obligation: Pi DP problem: The TRS P consists of the following rules: U8_AAA(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_AAA(X, Y, Divisor, >_in_ag(Y, 0)) U9_AAA(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_AAA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_AAA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_AAA(Y, Remainder, Divisor) GCD_IN_AAA(X, Y, Divisor) -> U8_AAA(X, Y, Divisor, >=_in_aa(X, Y)) GCD_IN_AAA(X, Y, Divisor) -> U12_AAA(X, Y, Divisor, <_in_aa(X, Y)) U12_AAA(X, Y, Divisor, <_out_aa(X, Y)) -> U13_AAA(X, Y, Divisor, >_in_ag(X, 0)) U13_AAA(X, Y, Divisor, >_out_ag(X, 0)) -> GCD_IN_AAA(Y, X, Divisor) The TRS R consists of the following rules: >_in_ag(X0, X1) -> >_out_ag(X0, X1) is_in_aa(X0, X1) -> is_out_aa(X0, X1) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) <_in_aa(X0, X1) -> <_out_aa(X0, X1) The argument filtering Pi contains the following mapping: 0 = 0 mod(x1, x2) = mod(x1, x2) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa GCD_IN_AAA(x1, x2, x3) = GCD_IN_AAA U8_AAA(x1, x2, x3, x4) = U8_AAA(x4) U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) U12_AAA(x1, x2, x3, x4) = U12_AAA(x4) U13_AAA(x1, x2, x3, x4) = U13_AAA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (212) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (213) Obligation: Q DP problem: The TRS P consists of the following rules: U8_AAA(>=_out_aa) -> U9_AAA(>_in_ag(0)) U9_AAA(>_out_ag) -> U10_AAA(is_in_aa) U10_AAA(is_out_aa) -> GCD_IN_AAA GCD_IN_AAA -> U8_AAA(>=_in_aa) GCD_IN_AAA -> U12_AAA(<_in_aa) U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag) -> GCD_IN_AAA The TRS R consists of the following rules: >_in_ag(X1) -> >_out_ag is_in_aa -> is_out_aa >=_in_aa -> >=_out_aa <_in_aa -> <_out_aa The set Q consists of the following terms: >_in_ag(x0) is_in_aa >=_in_aa <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (214) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U8_AAA(>=_out_aa) -> U9_AAA(>_in_ag(0)) at position [0] we obtained the following new rules [LPAR04]: (U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag),U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag)) ---------------------------------------- (215) Obligation: Q DP problem: The TRS P consists of the following rules: U9_AAA(>_out_ag) -> U10_AAA(is_in_aa) U10_AAA(is_out_aa) -> GCD_IN_AAA GCD_IN_AAA -> U8_AAA(>=_in_aa) GCD_IN_AAA -> U12_AAA(<_in_aa) U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag) The TRS R consists of the following rules: >_in_ag(X1) -> >_out_ag is_in_aa -> is_out_aa >=_in_aa -> >=_out_aa <_in_aa -> <_out_aa The set Q consists of the following terms: >_in_ag(x0) is_in_aa >=_in_aa <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (216) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U9_AAA(>_out_ag) -> U10_AAA(is_in_aa) at position [0] we obtained the following new rules [LPAR04]: (U9_AAA(>_out_ag) -> U10_AAA(is_out_aa),U9_AAA(>_out_ag) -> U10_AAA(is_out_aa)) ---------------------------------------- (217) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA GCD_IN_AAA -> U8_AAA(>=_in_aa) GCD_IN_AAA -> U12_AAA(<_in_aa) U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag) U9_AAA(>_out_ag) -> U10_AAA(is_out_aa) The TRS R consists of the following rules: >_in_ag(X1) -> >_out_ag is_in_aa -> is_out_aa >=_in_aa -> >=_out_aa <_in_aa -> <_out_aa The set Q consists of the following terms: >_in_ag(x0) is_in_aa >=_in_aa <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (218) 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. ---------------------------------------- (219) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA GCD_IN_AAA -> U8_AAA(>=_in_aa) GCD_IN_AAA -> U12_AAA(<_in_aa) U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag) U9_AAA(>_out_ag) -> U10_AAA(is_out_aa) The TRS R consists of the following rules: >_in_ag(X1) -> >_out_ag <_in_aa -> <_out_aa >=_in_aa -> >=_out_aa The set Q consists of the following terms: >_in_ag(x0) is_in_aa >=_in_aa <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (220) 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_aa ---------------------------------------- (221) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA GCD_IN_AAA -> U8_AAA(>=_in_aa) GCD_IN_AAA -> U12_AAA(<_in_aa) U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag) U9_AAA(>_out_ag) -> U10_AAA(is_out_aa) The TRS R consists of the following rules: >_in_ag(X1) -> >_out_ag <_in_aa -> <_out_aa >=_in_aa -> >=_out_aa The set Q consists of the following terms: >_in_ag(x0) >=_in_aa <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (222) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule GCD_IN_AAA -> U8_AAA(>=_in_aa) at position [0] we obtained the following new rules [LPAR04]: (GCD_IN_AAA -> U8_AAA(>=_out_aa),GCD_IN_AAA -> U8_AAA(>=_out_aa)) ---------------------------------------- (223) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA GCD_IN_AAA -> U12_AAA(<_in_aa) U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag) U9_AAA(>_out_ag) -> U10_AAA(is_out_aa) GCD_IN_AAA -> U8_AAA(>=_out_aa) The TRS R consists of the following rules: >_in_ag(X1) -> >_out_ag <_in_aa -> <_out_aa >=_in_aa -> >=_out_aa The set Q consists of the following terms: >_in_ag(x0) >=_in_aa <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (224) 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. ---------------------------------------- (225) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA GCD_IN_AAA -> U12_AAA(<_in_aa) U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag) U9_AAA(>_out_ag) -> U10_AAA(is_out_aa) GCD_IN_AAA -> U8_AAA(>=_out_aa) The TRS R consists of the following rules: >_in_ag(X1) -> >_out_ag <_in_aa -> <_out_aa The set Q consists of the following terms: >_in_ag(x0) >=_in_aa <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (226) 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 ---------------------------------------- (227) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA GCD_IN_AAA -> U12_AAA(<_in_aa) U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag) U9_AAA(>_out_ag) -> U10_AAA(is_out_aa) GCD_IN_AAA -> U8_AAA(>=_out_aa) The TRS R consists of the following rules: >_in_ag(X1) -> >_out_ag <_in_aa -> <_out_aa The set Q consists of the following terms: >_in_ag(x0) <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (228) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule GCD_IN_AAA -> U12_AAA(<_in_aa) at position [0] we obtained the following new rules [LPAR04]: (GCD_IN_AAA -> U12_AAA(<_out_aa),GCD_IN_AAA -> U12_AAA(<_out_aa)) ---------------------------------------- (229) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag) U9_AAA(>_out_ag) -> U10_AAA(is_out_aa) GCD_IN_AAA -> U8_AAA(>=_out_aa) GCD_IN_AAA -> U12_AAA(<_out_aa) The TRS R consists of the following rules: >_in_ag(X1) -> >_out_ag <_in_aa -> <_out_aa The set Q consists of the following terms: >_in_ag(x0) <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (230) 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. ---------------------------------------- (231) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag) U9_AAA(>_out_ag) -> U10_AAA(is_out_aa) GCD_IN_AAA -> U8_AAA(>=_out_aa) GCD_IN_AAA -> U12_AAA(<_out_aa) The TRS R consists of the following rules: >_in_ag(X1) -> >_out_ag The set Q consists of the following terms: >_in_ag(x0) <_in_aa We have to consider all (P,Q,R)-chains. ---------------------------------------- (232) 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 ---------------------------------------- (233) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) U13_AAA(>_out_ag) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag) U9_AAA(>_out_ag) -> U10_AAA(is_out_aa) GCD_IN_AAA -> U8_AAA(>=_out_aa) GCD_IN_AAA -> U12_AAA(<_out_aa) 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. ---------------------------------------- (234) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U12_AAA(<_out_aa) -> U13_AAA(>_in_ag(0)) at position [0] we obtained the following new rules [LPAR04]: (U12_AAA(<_out_aa) -> U13_AAA(>_out_ag),U12_AAA(<_out_aa) -> U13_AAA(>_out_ag)) ---------------------------------------- (235) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA U13_AAA(>_out_ag) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag) U9_AAA(>_out_ag) -> U10_AAA(is_out_aa) GCD_IN_AAA -> U8_AAA(>=_out_aa) GCD_IN_AAA -> U12_AAA(<_out_aa) U12_AAA(<_out_aa) -> U13_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. ---------------------------------------- (236) 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. ---------------------------------------- (237) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA U13_AAA(>_out_ag) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag) U9_AAA(>_out_ag) -> U10_AAA(is_out_aa) GCD_IN_AAA -> U8_AAA(>=_out_aa) GCD_IN_AAA -> U12_AAA(<_out_aa) U12_AAA(<_out_aa) -> U13_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. ---------------------------------------- (238) 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) ---------------------------------------- (239) Obligation: Q DP problem: The TRS P consists of the following rules: U10_AAA(is_out_aa) -> GCD_IN_AAA U13_AAA(>_out_ag) -> GCD_IN_AAA U8_AAA(>=_out_aa) -> U9_AAA(>_out_ag) U9_AAA(>_out_ag) -> U10_AAA(is_out_aa) GCD_IN_AAA -> U8_AAA(>=_out_aa) GCD_IN_AAA -> U12_AAA(<_out_aa) U12_AAA(<_out_aa) -> U13_AAA(>_out_ag) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (240) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by narrowing to the left: s = GCD_IN_AAA evaluates to t =GCD_IN_AAA Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence GCD_IN_AAA -> U12_AAA(<_out_aa) with rule GCD_IN_AAA -> U12_AAA(<_out_aa) at position [] and matcher [ ] U12_AAA(<_out_aa) -> U13_AAA(>_out_ag) with rule U12_AAA(<_out_aa) -> U13_AAA(>_out_ag) at position [] and matcher [ ] U13_AAA(>_out_ag) -> GCD_IN_AAA with rule U13_AAA(>_out_ag) -> GCD_IN_AAA Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence All these steps are and every following step will be a correct step w.r.t to Q. ---------------------------------------- (241) NO ---------------------------------------- (242) Obligation: Pi DP problem: The TRS P consists of the following rules: REDUCE_IN_AA(frac(C, D), frac(Cres, Dres)) -> U3_AA(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_AA(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_AA(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_AA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> REDUCE_IN_AA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, 0, X) -> gcd_out_gga(X, 0, X) gcd_in_gga(0, X, X) -> gcd_out_gga(0, X, X) gcd_in_gga(X, Y, Divisor) -> U8_gga(X, Y, Divisor, >=_in_gg(X, Y)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U8_gga(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_gga(X, Y, Divisor, >_in_gg(Y, 0)) >_in_gg(X0, X1) -> >_out_gg(X0, X1) U9_gga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_gga(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U10_gga(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_gga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) gcd_in_gaa(X, 0, X) -> gcd_out_gaa(X, 0, X) gcd_in_gaa(0, X, X) -> gcd_out_gaa(0, X, X) gcd_in_gaa(X, Y, Divisor) -> U8_gaa(X, Y, Divisor, >=_in_ga(X, Y)) >=_in_ga(X0, X1) -> >=_out_ga(X0, X1) U8_gaa(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_gaa(X, Y, Divisor, >_in_ag(Y, 0)) >_in_ag(X0, X1) -> >_out_ag(X0, X1) U9_gaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_gaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U10_gaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_gaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, 0, X) -> gcd_out_aaa(X, 0, X) gcd_in_aaa(0, X, X) -> gcd_out_aaa(0, X, X) gcd_in_aaa(X, Y, Divisor) -> U8_aaa(X, Y, Divisor, >=_in_aa(X, Y)) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) U8_aaa(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_aaa(X, Y, Divisor, >_in_ag(Y, 0)) U9_aaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_aaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, Y, Divisor) -> U12_aaa(X, Y, Divisor, <_in_aa(X, Y)) <_in_aa(X0, X1) -> <_out_aa(X0, X1) U12_aaa(X, Y, Divisor, <_out_aa(X, Y)) -> U13_aaa(X, Y, Divisor, >_in_ag(X, 0)) U13_aaa(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aaa(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U14_aaa(X, Y, Divisor, gcd_out_aaa(Y, X, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_aaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_gaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_gaa(X, Y, Divisor) gcd_in_gaa(X, Y, Divisor) -> U12_gaa(X, Y, Divisor, <_in_ga(X, Y)) <_in_ga(X0, X1) -> <_out_ga(X0, X1) U12_gaa(X, Y, Divisor, <_out_ga(X, Y)) -> U13_gaa(X, Y, Divisor, >_in_gg(X, 0)) U13_gaa(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gaa(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) gcd_in_aga(X, 0, X) -> gcd_out_aga(X, 0, X) gcd_in_aga(0, X, X) -> gcd_out_aga(0, X, X) gcd_in_aga(X, Y, Divisor) -> U8_aga(X, Y, Divisor, >=_in_ag(X, Y)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U8_aga(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_aga(X, Y, Divisor, >_in_gg(Y, 0)) U9_aga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_aga(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aga(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U11_aga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_aga(X, Y, Divisor) gcd_in_aga(X, Y, Divisor) -> U12_aga(X, Y, Divisor, <_in_ag(X, Y)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U12_aga(X, Y, Divisor, <_out_ag(X, Y)) -> U13_aga(X, Y, Divisor, >_in_ag(X, 0)) U13_aga(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aga(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U14_aga(X, Y, Divisor, gcd_out_gaa(Y, X, Divisor)) -> gcd_out_aga(X, Y, Divisor) U14_gaa(X, Y, Divisor, gcd_out_aga(Y, X, Divisor)) -> gcd_out_gaa(X, Y, Divisor) U11_gga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, <_in_gg(X, Y)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U12_gga(X, Y, Divisor, <_out_gg(X, Y)) -> U13_gga(X, Y, Divisor, >_in_gg(X, 0)) U13_gga(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U14_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =:=_in_ag(Gcd, 1)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U2_ga(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U3_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U3_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_ga(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_ga(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_ga(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) reduce_in_aa(frac(C, D), frac(C, D)) -> U1_aa(C, D, gcd_in_aaa(C, D, Gcd)) U1_aa(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_aa(C, D, =:=_in_ag(Gcd, 1)) U2_aa(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_aa(frac(C, D), frac(C, D)) reduce_in_aa(frac(C, D), frac(Cres, Dres)) -> U3_aa(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_aa(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_aa(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_aa(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_aa(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U5_aa(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_aa(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_aa(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_aa(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_aa(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_aa(frac(C, D), frac(Cres, Dres)) U5_ga(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_ga(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_ga(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_ga(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_ga(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) 0 = 0 gcd_out_gga(x1, x2, x3) = gcd_out_gga U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg U10_gga(x1, x2, x3, x4) = U10_gga(x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag mod(x1, x2) = mod(x1, x2) U11_gga(x1, x2, x3, x4, x5) = U11_gga(x5) gcd_in_gaa(x1, x2, x3) = gcd_in_gaa(x1) gcd_out_gaa(x1, x2, x3) = gcd_out_gaa U8_gaa(x1, x2, x3, x4) = U8_gaa(x4) >=_in_ga(x1, x2) = >=_in_ga(x1) >=_out_ga(x1, x2) = >=_out_ga U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x5) gcd_in_aaa(x1, x2, x3) = gcd_in_aaa gcd_out_aaa(x1, x2, x3) = gcd_out_aaa U8_aaa(x1, x2, x3, x4) = U8_aaa(x4) >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) U11_aaa(x1, x2, x3, x4, x5) = U11_aaa(x5) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa U13_aaa(x1, x2, x3, x4) = U13_aaa(x4) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) <_in_ga(x1, x2) = <_in_ga(x1) <_out_ga(x1, x2) = <_out_ga U13_gaa(x1, x2, x3, x4) = U13_gaa(x1, x4) U14_gaa(x1, x2, x3, x4) = U14_gaa(x4) gcd_in_aga(x1, x2, x3) = gcd_in_aga(x2) gcd_out_aga(x1, x2, x3) = gcd_out_aga U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4, x5) = U11_aga(x5) U12_aga(x1, x2, x3, x4) = U12_aga(x2, x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag U13_aga(x1, x2, x3, x4) = U13_aga(x2, x4) U14_aga(x1, x2, x3, x4) = U14_aga(x4) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg U13_gga(x1, x2, x3, x4) = U13_gga(x1, x2, x4) U14_gga(x1, x2, x3, x4) = U14_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x3) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag 1 = 1 reduce_out_ga(x1, x2) = reduce_out_ga U3_ga(x1, x2, x3, x4, x5) = U3_ga(x5) U4_ga(x1, x2, x3, x4, x5, x6) = U4_ga(x6) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x5) reduce_in_aa(x1, x2) = reduce_in_aa U1_aa(x1, x2, x3) = U1_aa(x3) U2_aa(x1, x2, x3) = U2_aa(x3) reduce_out_aa(x1, x2) = reduce_out_aa U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) U4_aa(x1, x2, x3, x4, x5, x6) = U4_aa(x6) U5_aa(x1, x2, x3, x4, x5) = U5_aa(x5) U6_aa(x1, x2, x3, x4, x5, x6) = U6_aa(x6) U7_aa(x1, x2, x3, x4, x5) = U7_aa(x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x6) U7_ga(x1, x2, x3, x4, x5) = U7_ga(x5) REDUCE_IN_AA(x1, x2) = REDUCE_IN_AA U3_AA(x1, x2, x3, x4, x5) = U3_AA(x5) U4_AA(x1, x2, x3, x4, x5, x6) = U4_AA(x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (243) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (244) Obligation: Pi DP problem: The TRS P consists of the following rules: REDUCE_IN_AA(frac(C, D), frac(Cres, Dres)) -> U3_AA(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_AA(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_AA(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_AA(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> REDUCE_IN_AA(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec)) The TRS R consists of the following rules: gcd_in_aaa(X, 0, X) -> gcd_out_aaa(X, 0, X) gcd_in_aaa(0, X, X) -> gcd_out_aaa(0, X, X) gcd_in_aaa(X, Y, Divisor) -> U8_aaa(X, Y, Divisor, >=_in_aa(X, Y)) gcd_in_aaa(X, Y, Divisor) -> U12_aaa(X, Y, Divisor, <_in_aa(X, Y)) >_in_ag(X0, X1) -> >_out_ag(X0, X1) U8_aaa(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_aaa(X, Y, Divisor, >_in_ag(Y, 0)) U12_aaa(X, Y, Divisor, <_out_aa(X, Y)) -> U13_aaa(X, Y, Divisor, >_in_ag(X, 0)) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) U9_aaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_aaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) <_in_aa(X0, X1) -> <_out_aa(X0, X1) U13_aaa(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aaa(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U10_aaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) U14_aaa(X, Y, Divisor, gcd_out_aaa(Y, X, Divisor)) -> gcd_out_aaa(X, Y, Divisor) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U11_aaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_aaa(X, Y, Divisor) The argument filtering Pi contains the following mapping: frac(x1, x2) = frac(x1, x2) 0 = 0 mod(x1, x2) = mod(x1, x2) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa gcd_in_aaa(x1, x2, x3) = gcd_in_aaa gcd_out_aaa(x1, x2, x3) = gcd_out_aaa U8_aaa(x1, x2, x3, x4) = U8_aaa(x4) >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) U11_aaa(x1, x2, x3, x4, x5) = U11_aaa(x5) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa U13_aaa(x1, x2, x3, x4) = U13_aaa(x4) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) 1 = 1 REDUCE_IN_AA(x1, x2) = REDUCE_IN_AA U3_AA(x1, x2, x3, x4, x5) = U3_AA(x5) U4_AA(x1, x2, x3, x4, x5, x6) = U4_AA(x6) We have to consider all (P,R,Pi)-chains ---------------------------------------- (245) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (246) Obligation: Q DP problem: The TRS P consists of the following rules: REDUCE_IN_AA -> U3_AA(gcd_in_aaa) U3_AA(gcd_out_aaa) -> U4_AA(>_in_ag(1)) U4_AA(>_out_ag) -> REDUCE_IN_AA The TRS R consists of the following rules: gcd_in_aaa -> gcd_out_aaa gcd_in_aaa -> U8_aaa(>=_in_aa) gcd_in_aaa -> U12_aaa(<_in_aa) >_in_ag(X1) -> >_out_ag U8_aaa(>=_out_aa) -> U9_aaa(>_in_ag(0)) U12_aaa(<_out_aa) -> U13_aaa(>_in_ag(0)) >=_in_aa -> >=_out_aa U9_aaa(>_out_ag) -> U10_aaa(is_in_aa) <_in_aa -> <_out_aa U13_aaa(>_out_ag) -> U14_aaa(gcd_in_aaa) U10_aaa(is_out_aa) -> U11_aaa(gcd_in_aaa) U14_aaa(gcd_out_aaa) -> gcd_out_aaa is_in_aa -> is_out_aa U11_aaa(gcd_out_aaa) -> gcd_out_aaa The set Q consists of the following terms: gcd_in_aaa >_in_ag(x0) U8_aaa(x0) U12_aaa(x0) >=_in_aa U9_aaa(x0) <_in_aa U13_aaa(x0) U10_aaa(x0) U14_aaa(x0) is_in_aa U11_aaa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (247) Obligation: Pi DP problem: The TRS P consists of the following rules: GCD_IN_GAA(X, Y, Divisor) -> U12_GAA(X, Y, Divisor, <_in_ga(X, Y)) U12_GAA(X, Y, Divisor, <_out_ga(X, Y)) -> U13_GAA(X, Y, Divisor, >_in_gg(X, 0)) U13_GAA(X, Y, Divisor, >_out_gg(X, 0)) -> GCD_IN_AGA(Y, X, Divisor) GCD_IN_AGA(X, Y, Divisor) -> U8_AGA(X, Y, Divisor, >=_in_ag(X, Y)) U8_AGA(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_AGA(X, Y, Divisor, >_in_gg(Y, 0)) U9_AGA(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_AGA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_AGA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_GAA(Y, Remainder, Divisor) GCD_IN_AGA(X, Y, Divisor) -> U12_AGA(X, Y, Divisor, <_in_ag(X, Y)) U12_AGA(X, Y, Divisor, <_out_ag(X, Y)) -> U13_AGA(X, Y, Divisor, >_in_ag(X, 0)) U13_AGA(X, Y, Divisor, >_out_ag(X, 0)) -> GCD_IN_GAA(Y, X, Divisor) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, 0, X) -> gcd_out_gga(X, 0, X) gcd_in_gga(0, X, X) -> gcd_out_gga(0, X, X) gcd_in_gga(X, Y, Divisor) -> U8_gga(X, Y, Divisor, >=_in_gg(X, Y)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U8_gga(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_gga(X, Y, Divisor, >_in_gg(Y, 0)) >_in_gg(X0, X1) -> >_out_gg(X0, X1) U9_gga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_gga(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U10_gga(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_gga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) gcd_in_gaa(X, 0, X) -> gcd_out_gaa(X, 0, X) gcd_in_gaa(0, X, X) -> gcd_out_gaa(0, X, X) gcd_in_gaa(X, Y, Divisor) -> U8_gaa(X, Y, Divisor, >=_in_ga(X, Y)) >=_in_ga(X0, X1) -> >=_out_ga(X0, X1) U8_gaa(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_gaa(X, Y, Divisor, >_in_ag(Y, 0)) >_in_ag(X0, X1) -> >_out_ag(X0, X1) U9_gaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_gaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U10_gaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_gaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, 0, X) -> gcd_out_aaa(X, 0, X) gcd_in_aaa(0, X, X) -> gcd_out_aaa(0, X, X) gcd_in_aaa(X, Y, Divisor) -> U8_aaa(X, Y, Divisor, >=_in_aa(X, Y)) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) U8_aaa(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_aaa(X, Y, Divisor, >_in_ag(Y, 0)) U9_aaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_aaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, Y, Divisor) -> U12_aaa(X, Y, Divisor, <_in_aa(X, Y)) <_in_aa(X0, X1) -> <_out_aa(X0, X1) U12_aaa(X, Y, Divisor, <_out_aa(X, Y)) -> U13_aaa(X, Y, Divisor, >_in_ag(X, 0)) U13_aaa(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aaa(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U14_aaa(X, Y, Divisor, gcd_out_aaa(Y, X, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_aaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_gaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_gaa(X, Y, Divisor) gcd_in_gaa(X, Y, Divisor) -> U12_gaa(X, Y, Divisor, <_in_ga(X, Y)) <_in_ga(X0, X1) -> <_out_ga(X0, X1) U12_gaa(X, Y, Divisor, <_out_ga(X, Y)) -> U13_gaa(X, Y, Divisor, >_in_gg(X, 0)) U13_gaa(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gaa(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) gcd_in_aga(X, 0, X) -> gcd_out_aga(X, 0, X) gcd_in_aga(0, X, X) -> gcd_out_aga(0, X, X) gcd_in_aga(X, Y, Divisor) -> U8_aga(X, Y, Divisor, >=_in_ag(X, Y)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U8_aga(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_aga(X, Y, Divisor, >_in_gg(Y, 0)) U9_aga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_aga(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aga(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U11_aga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_aga(X, Y, Divisor) gcd_in_aga(X, Y, Divisor) -> U12_aga(X, Y, Divisor, <_in_ag(X, Y)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U12_aga(X, Y, Divisor, <_out_ag(X, Y)) -> U13_aga(X, Y, Divisor, >_in_ag(X, 0)) U13_aga(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aga(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U14_aga(X, Y, Divisor, gcd_out_gaa(Y, X, Divisor)) -> gcd_out_aga(X, Y, Divisor) U14_gaa(X, Y, Divisor, gcd_out_aga(Y, X, Divisor)) -> gcd_out_gaa(X, Y, Divisor) U11_gga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, <_in_gg(X, Y)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U12_gga(X, Y, Divisor, <_out_gg(X, Y)) -> U13_gga(X, Y, Divisor, >_in_gg(X, 0)) U13_gga(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U14_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =:=_in_ag(Gcd, 1)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U2_ga(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U3_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U3_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_ga(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_ga(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_ga(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) reduce_in_aa(frac(C, D), frac(C, D)) -> U1_aa(C, D, gcd_in_aaa(C, D, Gcd)) U1_aa(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_aa(C, D, =:=_in_ag(Gcd, 1)) U2_aa(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_aa(frac(C, D), frac(C, D)) reduce_in_aa(frac(C, D), frac(Cres, Dres)) -> U3_aa(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_aa(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_aa(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_aa(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_aa(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U5_aa(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_aa(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_aa(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_aa(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_aa(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_aa(frac(C, D), frac(Cres, Dres)) U5_ga(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_ga(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_ga(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_ga(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_ga(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) 0 = 0 gcd_out_gga(x1, x2, x3) = gcd_out_gga U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg U10_gga(x1, x2, x3, x4) = U10_gga(x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag mod(x1, x2) = mod(x1, x2) U11_gga(x1, x2, x3, x4, x5) = U11_gga(x5) gcd_in_gaa(x1, x2, x3) = gcd_in_gaa(x1) gcd_out_gaa(x1, x2, x3) = gcd_out_gaa U8_gaa(x1, x2, x3, x4) = U8_gaa(x4) >=_in_ga(x1, x2) = >=_in_ga(x1) >=_out_ga(x1, x2) = >=_out_ga U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x5) gcd_in_aaa(x1, x2, x3) = gcd_in_aaa gcd_out_aaa(x1, x2, x3) = gcd_out_aaa U8_aaa(x1, x2, x3, x4) = U8_aaa(x4) >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) U11_aaa(x1, x2, x3, x4, x5) = U11_aaa(x5) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa U13_aaa(x1, x2, x3, x4) = U13_aaa(x4) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) <_in_ga(x1, x2) = <_in_ga(x1) <_out_ga(x1, x2) = <_out_ga U13_gaa(x1, x2, x3, x4) = U13_gaa(x1, x4) U14_gaa(x1, x2, x3, x4) = U14_gaa(x4) gcd_in_aga(x1, x2, x3) = gcd_in_aga(x2) gcd_out_aga(x1, x2, x3) = gcd_out_aga U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4, x5) = U11_aga(x5) U12_aga(x1, x2, x3, x4) = U12_aga(x2, x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag U13_aga(x1, x2, x3, x4) = U13_aga(x2, x4) U14_aga(x1, x2, x3, x4) = U14_aga(x4) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg U13_gga(x1, x2, x3, x4) = U13_gga(x1, x2, x4) U14_gga(x1, x2, x3, x4) = U14_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x3) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag 1 = 1 reduce_out_ga(x1, x2) = reduce_out_ga U3_ga(x1, x2, x3, x4, x5) = U3_ga(x5) U4_ga(x1, x2, x3, x4, x5, x6) = U4_ga(x6) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x5) reduce_in_aa(x1, x2) = reduce_in_aa U1_aa(x1, x2, x3) = U1_aa(x3) U2_aa(x1, x2, x3) = U2_aa(x3) reduce_out_aa(x1, x2) = reduce_out_aa U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) U4_aa(x1, x2, x3, x4, x5, x6) = U4_aa(x6) U5_aa(x1, x2, x3, x4, x5) = U5_aa(x5) U6_aa(x1, x2, x3, x4, x5, x6) = U6_aa(x6) U7_aa(x1, x2, x3, x4, x5) = U7_aa(x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x6) U7_ga(x1, x2, x3, x4, x5) = U7_ga(x5) GCD_IN_GAA(x1, x2, x3) = GCD_IN_GAA(x1) U12_GAA(x1, x2, x3, x4) = U12_GAA(x1, x4) U13_GAA(x1, x2, x3, x4) = U13_GAA(x1, x4) GCD_IN_AGA(x1, x2, x3) = GCD_IN_AGA(x2) U8_AGA(x1, x2, x3, x4) = U8_AGA(x2, x4) U9_AGA(x1, x2, x3, x4) = U9_AGA(x2, x4) U10_AGA(x1, x2, x3, x4) = U10_AGA(x2, x4) U12_AGA(x1, x2, x3, x4) = U12_AGA(x2, x4) U13_AGA(x1, x2, x3, x4) = U13_AGA(x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (248) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (249) Obligation: Pi DP problem: The TRS P consists of the following rules: GCD_IN_GAA(X, Y, Divisor) -> U12_GAA(X, Y, Divisor, <_in_ga(X, Y)) U12_GAA(X, Y, Divisor, <_out_ga(X, Y)) -> U13_GAA(X, Y, Divisor, >_in_gg(X, 0)) U13_GAA(X, Y, Divisor, >_out_gg(X, 0)) -> GCD_IN_AGA(Y, X, Divisor) GCD_IN_AGA(X, Y, Divisor) -> U8_AGA(X, Y, Divisor, >=_in_ag(X, Y)) U8_AGA(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_AGA(X, Y, Divisor, >_in_gg(Y, 0)) U9_AGA(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_AGA(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_AGA(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> GCD_IN_GAA(Y, Remainder, Divisor) GCD_IN_AGA(X, Y, Divisor) -> U12_AGA(X, Y, Divisor, <_in_ag(X, Y)) U12_AGA(X, Y, Divisor, <_out_ag(X, Y)) -> U13_AGA(X, Y, Divisor, >_in_ag(X, 0)) U13_AGA(X, Y, Divisor, >_out_ag(X, 0)) -> GCD_IN_GAA(Y, X, Divisor) The TRS R consists of the following rules: <_in_ga(X0, X1) -> <_out_ga(X0, X1) >_in_gg(X0, X1) -> >_out_gg(X0, X1) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) is_in_aa(X0, X1) -> is_out_aa(X0, X1) <_in_ag(X0, X1) -> <_out_ag(X0, X1) >_in_ag(X0, X1) -> >_out_ag(X0, X1) The argument filtering Pi contains the following mapping: 0 = 0 >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg mod(x1, x2) = mod(x1, x2) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa <_in_ga(x1, x2) = <_in_ga(x1) <_out_ga(x1, x2) = <_out_ga >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag GCD_IN_GAA(x1, x2, x3) = GCD_IN_GAA(x1) U12_GAA(x1, x2, x3, x4) = U12_GAA(x1, x4) U13_GAA(x1, x2, x3, x4) = U13_GAA(x1, x4) GCD_IN_AGA(x1, x2, x3) = GCD_IN_AGA(x2) U8_AGA(x1, x2, x3, x4) = U8_AGA(x2, x4) U9_AGA(x1, x2, x3, x4) = U9_AGA(x2, x4) U10_AGA(x1, x2, x3, x4) = U10_AGA(x2, x4) U12_AGA(x1, x2, x3, x4) = U12_AGA(x2, x4) U13_AGA(x1, x2, x3, x4) = U13_AGA(x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (250) Obligation: Pi DP problem: The TRS P consists of the following rules: GCD_IN_GGA(X, Y, Divisor) -> U12_GGA(X, Y, Divisor, <_in_gg(X, Y)) U12_GGA(X, Y, Divisor, <_out_gg(X, Y)) -> U13_GGA(X, Y, Divisor, >_in_gg(X, 0)) U13_GGA(X, Y, Divisor, >_out_gg(X, 0)) -> GCD_IN_GGA(Y, X, Divisor) The TRS R consists of the following rules: reduce_in_ga(frac(C, D), frac(C, D)) -> U1_ga(C, D, gcd_in_gga(C, D, Gcd)) gcd_in_gga(X, 0, X) -> gcd_out_gga(X, 0, X) gcd_in_gga(0, X, X) -> gcd_out_gga(0, X, X) gcd_in_gga(X, Y, Divisor) -> U8_gga(X, Y, Divisor, >=_in_gg(X, Y)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U8_gga(X, Y, Divisor, >=_out_gg(X, Y)) -> U9_gga(X, Y, Divisor, >_in_gg(Y, 0)) >_in_gg(X0, X1) -> >_out_gg(X0, X1) U9_gga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_gga(X, Y, Divisor, is_in_ag(Remainder, mod(X, Y))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U10_gga(X, Y, Divisor, is_out_ag(Remainder, mod(X, Y))) -> U11_gga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) gcd_in_gaa(X, 0, X) -> gcd_out_gaa(X, 0, X) gcd_in_gaa(0, X, X) -> gcd_out_gaa(0, X, X) gcd_in_gaa(X, Y, Divisor) -> U8_gaa(X, Y, Divisor, >=_in_ga(X, Y)) >=_in_ga(X0, X1) -> >=_out_ga(X0, X1) U8_gaa(X, Y, Divisor, >=_out_ga(X, Y)) -> U9_gaa(X, Y, Divisor, >_in_ag(Y, 0)) >_in_ag(X0, X1) -> >_out_ag(X0, X1) U9_gaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_gaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U10_gaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_gaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, 0, X) -> gcd_out_aaa(X, 0, X) gcd_in_aaa(0, X, X) -> gcd_out_aaa(0, X, X) gcd_in_aaa(X, Y, Divisor) -> U8_aaa(X, Y, Divisor, >=_in_aa(X, Y)) >=_in_aa(X0, X1) -> >=_out_aa(X0, X1) U8_aaa(X, Y, Divisor, >=_out_aa(X, Y)) -> U9_aaa(X, Y, Divisor, >_in_ag(Y, 0)) U9_aaa(X, Y, Divisor, >_out_ag(Y, 0)) -> U10_aaa(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aaa(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aaa(X, Y, Divisor, Remainder, gcd_in_aaa(Y, Remainder, Divisor)) gcd_in_aaa(X, Y, Divisor) -> U12_aaa(X, Y, Divisor, <_in_aa(X, Y)) <_in_aa(X0, X1) -> <_out_aa(X0, X1) U12_aaa(X, Y, Divisor, <_out_aa(X, Y)) -> U13_aaa(X, Y, Divisor, >_in_ag(X, 0)) U13_aaa(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aaa(X, Y, Divisor, gcd_in_aaa(Y, X, Divisor)) U14_aaa(X, Y, Divisor, gcd_out_aaa(Y, X, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_aaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_aaa(X, Y, Divisor) U11_gaa(X, Y, Divisor, Remainder, gcd_out_aaa(Y, Remainder, Divisor)) -> gcd_out_gaa(X, Y, Divisor) gcd_in_gaa(X, Y, Divisor) -> U12_gaa(X, Y, Divisor, <_in_ga(X, Y)) <_in_ga(X0, X1) -> <_out_ga(X0, X1) U12_gaa(X, Y, Divisor, <_out_ga(X, Y)) -> U13_gaa(X, Y, Divisor, >_in_gg(X, 0)) U13_gaa(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gaa(X, Y, Divisor, gcd_in_aga(Y, X, Divisor)) gcd_in_aga(X, 0, X) -> gcd_out_aga(X, 0, X) gcd_in_aga(0, X, X) -> gcd_out_aga(0, X, X) gcd_in_aga(X, Y, Divisor) -> U8_aga(X, Y, Divisor, >=_in_ag(X, Y)) >=_in_ag(X0, X1) -> >=_out_ag(X0, X1) U8_aga(X, Y, Divisor, >=_out_ag(X, Y)) -> U9_aga(X, Y, Divisor, >_in_gg(Y, 0)) U9_aga(X, Y, Divisor, >_out_gg(Y, 0)) -> U10_aga(X, Y, Divisor, is_in_aa(Remainder, mod(X, Y))) U10_aga(X, Y, Divisor, is_out_aa(Remainder, mod(X, Y))) -> U11_aga(X, Y, Divisor, Remainder, gcd_in_gaa(Y, Remainder, Divisor)) U11_aga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_aga(X, Y, Divisor) gcd_in_aga(X, Y, Divisor) -> U12_aga(X, Y, Divisor, <_in_ag(X, Y)) <_in_ag(X0, X1) -> <_out_ag(X0, X1) U12_aga(X, Y, Divisor, <_out_ag(X, Y)) -> U13_aga(X, Y, Divisor, >_in_ag(X, 0)) U13_aga(X, Y, Divisor, >_out_ag(X, 0)) -> U14_aga(X, Y, Divisor, gcd_in_gaa(Y, X, Divisor)) U14_aga(X, Y, Divisor, gcd_out_gaa(Y, X, Divisor)) -> gcd_out_aga(X, Y, Divisor) U14_gaa(X, Y, Divisor, gcd_out_aga(Y, X, Divisor)) -> gcd_out_gaa(X, Y, Divisor) U11_gga(X, Y, Divisor, Remainder, gcd_out_gaa(Y, Remainder, Divisor)) -> gcd_out_gga(X, Y, Divisor) gcd_in_gga(X, Y, Divisor) -> U12_gga(X, Y, Divisor, <_in_gg(X, Y)) <_in_gg(X0, X1) -> <_out_gg(X0, X1) U12_gga(X, Y, Divisor, <_out_gg(X, Y)) -> U13_gga(X, Y, Divisor, >_in_gg(X, 0)) U13_gga(X, Y, Divisor, >_out_gg(X, 0)) -> U14_gga(X, Y, Divisor, gcd_in_gga(Y, X, Divisor)) U14_gga(X, Y, Divisor, gcd_out_gga(Y, X, Divisor)) -> gcd_out_gga(X, Y, Divisor) U1_ga(C, D, gcd_out_gga(C, D, Gcd)) -> U2_ga(C, D, =:=_in_ag(Gcd, 1)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U2_ga(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_ga(frac(C, D), frac(C, D)) reduce_in_ga(frac(C, D), frac(Cres, Dres)) -> U3_ga(C, D, Cres, Dres, gcd_in_gga(C, D, Gcd)) U3_ga(C, D, Cres, Dres, gcd_out_gga(C, D, Gcd)) -> U4_ga(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_ga(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_ga(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) reduce_in_aa(frac(C, D), frac(C, D)) -> U1_aa(C, D, gcd_in_aaa(C, D, Gcd)) U1_aa(C, D, gcd_out_aaa(C, D, Gcd)) -> U2_aa(C, D, =:=_in_ag(Gcd, 1)) U2_aa(C, D, =:=_out_ag(Gcd, 1)) -> reduce_out_aa(frac(C, D), frac(C, D)) reduce_in_aa(frac(C, D), frac(Cres, Dres)) -> U3_aa(C, D, Cres, Dres, gcd_in_aaa(C, D, Gcd)) U3_aa(C, D, Cres, Dres, gcd_out_aaa(C, D, Gcd)) -> U4_aa(C, D, Cres, Dres, Gcd, >_in_ag(Gcd, 1)) U4_aa(C, D, Cres, Dres, Gcd, >_out_ag(Gcd, 1)) -> U5_aa(C, D, Cres, Dres, reduce_in_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) U5_aa(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_aa(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_aa(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_aa(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_aa(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_aa(frac(C, D), frac(Cres, Dres)) U5_ga(C, D, Cres, Dres, reduce_out_aa(frac(//(C, Gcd), //(D, Gcd)), frac(CRec, DRec))) -> U6_ga(C, D, Cres, Dres, DRec, is_in_aa(Cres, CRec)) U6_ga(C, D, Cres, Dres, DRec, is_out_aa(Cres, CRec)) -> U7_ga(C, D, Cres, Dres, is_in_aa(Dres, DRec)) U7_ga(C, D, Cres, Dres, is_out_aa(Dres, DRec)) -> reduce_out_ga(frac(C, D), frac(Cres, Dres)) The argument filtering Pi contains the following mapping: reduce_in_ga(x1, x2) = reduce_in_ga(x1) frac(x1, x2) = frac(x1, x2) U1_ga(x1, x2, x3) = U1_ga(x3) gcd_in_gga(x1, x2, x3) = gcd_in_gga(x1, x2) 0 = 0 gcd_out_gga(x1, x2, x3) = gcd_out_gga U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg U10_gga(x1, x2, x3, x4) = U10_gga(x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag mod(x1, x2) = mod(x1, x2) U11_gga(x1, x2, x3, x4, x5) = U11_gga(x5) gcd_in_gaa(x1, x2, x3) = gcd_in_gaa(x1) gcd_out_gaa(x1, x2, x3) = gcd_out_gaa U8_gaa(x1, x2, x3, x4) = U8_gaa(x4) >=_in_ga(x1, x2) = >=_in_ga(x1) >=_out_ga(x1, x2) = >=_out_ga U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) >_in_ag(x1, x2) = >_in_ag(x2) >_out_ag(x1, x2) = >_out_ag U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U11_gaa(x1, x2, x3, x4, x5) = U11_gaa(x5) gcd_in_aaa(x1, x2, x3) = gcd_in_aaa gcd_out_aaa(x1, x2, x3) = gcd_out_aaa U8_aaa(x1, x2, x3, x4) = U8_aaa(x4) >=_in_aa(x1, x2) = >=_in_aa >=_out_aa(x1, x2) = >=_out_aa U9_aaa(x1, x2, x3, x4) = U9_aaa(x4) U10_aaa(x1, x2, x3, x4) = U10_aaa(x4) U11_aaa(x1, x2, x3, x4, x5) = U11_aaa(x5) U12_aaa(x1, x2, x3, x4) = U12_aaa(x4) <_in_aa(x1, x2) = <_in_aa <_out_aa(x1, x2) = <_out_aa U13_aaa(x1, x2, x3, x4) = U13_aaa(x4) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U12_gaa(x1, x2, x3, x4) = U12_gaa(x1, x4) <_in_ga(x1, x2) = <_in_ga(x1) <_out_ga(x1, x2) = <_out_ga U13_gaa(x1, x2, x3, x4) = U13_gaa(x1, x4) U14_gaa(x1, x2, x3, x4) = U14_gaa(x4) gcd_in_aga(x1, x2, x3) = gcd_in_aga(x2) gcd_out_aga(x1, x2, x3) = gcd_out_aga U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) >=_in_ag(x1, x2) = >=_in_ag(x2) >=_out_ag(x1, x2) = >=_out_ag U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4, x5) = U11_aga(x5) U12_aga(x1, x2, x3, x4) = U12_aga(x2, x4) <_in_ag(x1, x2) = <_in_ag(x2) <_out_ag(x1, x2) = <_out_ag U13_aga(x1, x2, x3, x4) = U13_aga(x2, x4) U14_aga(x1, x2, x3, x4) = U14_aga(x4) U12_gga(x1, x2, x3, x4) = U12_gga(x1, x2, x4) <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg U13_gga(x1, x2, x3, x4) = U13_gga(x1, x2, x4) U14_gga(x1, x2, x3, x4) = U14_gga(x4) U2_ga(x1, x2, x3) = U2_ga(x3) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag 1 = 1 reduce_out_ga(x1, x2) = reduce_out_ga U3_ga(x1, x2, x3, x4, x5) = U3_ga(x5) U4_ga(x1, x2, x3, x4, x5, x6) = U4_ga(x6) U5_ga(x1, x2, x3, x4, x5) = U5_ga(x5) reduce_in_aa(x1, x2) = reduce_in_aa U1_aa(x1, x2, x3) = U1_aa(x3) U2_aa(x1, x2, x3) = U2_aa(x3) reduce_out_aa(x1, x2) = reduce_out_aa U3_aa(x1, x2, x3, x4, x5) = U3_aa(x5) U4_aa(x1, x2, x3, x4, x5, x6) = U4_aa(x6) U5_aa(x1, x2, x3, x4, x5) = U5_aa(x5) U6_aa(x1, x2, x3, x4, x5, x6) = U6_aa(x6) U7_aa(x1, x2, x3, x4, x5) = U7_aa(x5) U6_ga(x1, x2, x3, x4, x5, x6) = U6_ga(x6) U7_ga(x1, x2, x3, x4, x5) = U7_ga(x5) GCD_IN_GGA(x1, x2, x3) = GCD_IN_GGA(x1, x2) U12_GGA(x1, x2, x3, x4) = U12_GGA(x1, x2, x4) U13_GGA(x1, x2, x3, x4) = U13_GGA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (251) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (252) Obligation: Pi DP problem: The TRS P consists of the following rules: GCD_IN_GGA(X, Y, Divisor) -> U12_GGA(X, Y, Divisor, <_in_gg(X, Y)) U12_GGA(X, Y, Divisor, <_out_gg(X, Y)) -> U13_GGA(X, Y, Divisor, >_in_gg(X, 0)) U13_GGA(X, Y, Divisor, >_out_gg(X, 0)) -> GCD_IN_GGA(Y, X, Divisor) The TRS R consists of the following rules: <_in_gg(X0, X1) -> <_out_gg(X0, X1) >_in_gg(X0, X1) -> >_out_gg(X0, X1) The argument filtering Pi contains the following mapping: 0 = 0 >_in_gg(x1, x2) = >_in_gg(x1, x2) >_out_gg(x1, x2) = >_out_gg <_in_gg(x1, x2) = <_in_gg(x1, x2) <_out_gg(x1, x2) = <_out_gg GCD_IN_GGA(x1, x2, x3) = GCD_IN_GGA(x1, x2) U12_GGA(x1, x2, x3, x4) = U12_GGA(x1, x2, x4) U13_GGA(x1, x2, x3, x4) = U13_GGA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (253) PrologToIRSwTTransformerProof (SOUND) Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert { "root": 2, "program": { "directives": [], "clauses": [ [ "(reduce (frac C D) (frac C D))", "(',' (!) (',' (gcd C D Gcd) (=:= Gcd (1))))" ], [ "(reduce (frac C D) (frac Cres Dres))", "(',' (!) (',' (gcd C D Gcd) (',' (> Gcd (1)) (',' (reduce (frac (// C Gcd) (// D Gcd)) (frac CRec DRec)) (',' (is Cres CRec) (is Dres DRec))))))" ], [ "(gcd X (0) X)", "(!)" ], [ "(gcd (0) X X)", "(!)" ], [ "(gcd X Y Divisor)", "(',' (>= X Y) (',' (!) (',' (> Y (0)) (',' (is Remainder (mod X Y)) (gcd Y Remainder Divisor)))))" ], [ "(gcd X Y Divisor)", "(',' (< X Y) (',' (!) (',' (> X (0)) (gcd Y X Divisor))))" ] ] }, "graph": { "nodes": { "48": { "goal": [ { "clause": 4, "scope": 2, "term": "(gcd T11 T12 X13)" }, { "clause": 5, "scope": 2, "term": "(gcd T11 T12 X13)" } ], "kb": { "nonunifying": [ [ "(gcd T11 T12 X13)", "(gcd X18 (0) X18)" ], [ "(gcd T11 T12 X13)", "(gcd (0) X21 X21)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T11", "T12" ], "free": [ "X13", "X18", "X21" ], "exprvars": [] } }, "49": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3882": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (reduce (frac (// T52 T59) (// T53 T59)) (frac X81 X82)) (',' (is T56 X81) (is T57 X82)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "name": "T59", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": [ "T53", "T52", "T59" ], "free": [ "X81", "X82" ], "exprvars": ["T59"] } }, "type": "Nodes", "117": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (!_2) (',' (> T31 (0)) (',' (is X43 (mod T30 T31)) (gcd T31 X43 X44))))" }], "kb": { "nonunifying": [ [ "(gcd T30 T31 X13)", "(gcd X18 (0) X18)" ], [ "(gcd T30 T31 X13)", "(gcd (0) X21 X21)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T30", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": [ "T31", "T30" ], "free": [ "X13", "X18", "X21", "X44", "X43" ], "exprvars": [ "T31", "T30" ] } }, "118": { "goal": [], "kb": { "nonunifying": [ [ "(gcd T30 T31 X13)", "(gcd X18 (0) X18)" ], [ "(gcd T30 T31 X13)", "(gcd (0) X21 X21)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T30", "type": "PlainIntegerVariable" }, "operation": ">" }] }, "ground": [ "T31", "T30" ], "free": [ "X13", "X18", "X21", "X44", "X43" ], "exprvars": [ "T31", "T30" ] } }, "119": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T31 (0)) (',' (is X43 (mod T30 T31)) (gcd T31 X43 X44)))" }], "kb": { "nonunifying": [ [ "(gcd T30 T31 X13)", "(gcd X18 (0) X18)" ], [ "(gcd T30 T31 X13)", "(gcd (0) X21 X21)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T30", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": [ "T31", "T30" ], "free": [ "X13", "X18", "X21", "X44", "X43" ], "exprvars": [ "T31", "T30" ] } }, "50": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "51": { "goal": [{ "clause": 4, "scope": 2, "term": "(gcd T11 T12 X13)" }], "kb": { "nonunifying": [ [ "(gcd T11 T12 X13)", "(gcd X18 (0) X18)" ], [ "(gcd T11 T12 X13)", "(gcd (0) X21 X21)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T11", "T12" ], "free": [ "X13", "X18", "X21" ], "exprvars": [] } }, "52": { "goal": [{ "clause": 5, "scope": 2, "term": "(gcd T11 T12 X13)" }], "kb": { "nonunifying": [ [ "(gcd T11 T12 X13)", "(gcd X18 (0) X18)" ], [ "(gcd T11 T12 X13)", "(gcd (0) X21 X21)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T11", "T12" ], "free": [ "X13", "X18", "X21" ], "exprvars": [] } }, "53": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (>= T30 T31) (',' (!_2) (',' (> T31 (0)) (',' (is X43 (mod T30 T31)) (gcd T31 X43 X44)))))" }], "kb": { "nonunifying": [ [ "(gcd T30 T31 X13)", "(gcd X18 (0) X18)" ], [ "(gcd T30 T31 X13)", "(gcd (0) X21 X21)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T30", "T31" ], "free": [ "X13", "X18", "X21", "X44", "X43" ], "exprvars": [] } }, "54": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3890": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T64", "T65" ], "free": [], "exprvars": ["T64"] } }, "3891": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3892": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T69", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T64", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T70", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T65", "type": "PlainIntegerVariable" }, "operation": "=" } ] }, "ground": [ "T70", "T64", "T69", "T65" ], "free": [], "exprvars": [ "T70", "T64", "T69", "T65" ] } }, "18": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (!_1) (',' (gcd T11 T12 X13) (=:= X13 (1))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T11", "T12" ], "free": ["X13"], "exprvars": [] } }, "3893": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T69", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T64", "type": "PlainIntegerVariable" }, "operation": "=" }] }, "ground": [ "T64", "T69", "T65" ], "free": [], "exprvars": [ "T64", "T69", "T65" ] } }, "19": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3056": { "goal": [{ "clause": -1, "scope": -1, "term": "(gcd T39 T38 X57)" }], "kb": { "nonunifying": [ [ "(gcd T38 T39 X13)", "(gcd X18 (0) X18)" ], [ "(gcd T38 T39 X13)", "(gcd (0) X21 X21)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T38", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T39", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T38", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T39", "T38" ], "free": [ "X13", "X18", "X21", "X57" ], "exprvars": [ "T39", "T38" ] } }, "3573": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3572": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T59 (1)) (',' (reduce (frac (// T52 T59) (// T53 T59)) (frac X81 X82)) (',' (is T56 X81) (is T57 X82))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T52", "T53", "T59" ], "free": [ "X81", "X82" ], "exprvars": [] } }, "3571": { "goal": [{ "clause": -1, "scope": -1, "term": "(gcd T52 T53 X80)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T52", "T53" ], "free": ["X80"], "exprvars": [] } }, "3570": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (gcd T52 T53 X80) (',' (> X80 (1)) (',' (reduce (frac (// T52 X80) (// T53 X80)) (frac X81 X82)) (',' (is T56 X81) (is T57 X82)))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T52", "T53" ], "free": [ "X80", "X81", "X82" ], "exprvars": [] } }, "2": { "goal": [{ "clause": -1, "scope": -1, "term": "(reduce T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "3569": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3568": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (!_1) (',' (gcd T52 T53 X80) (',' (> X80 (1)) (',' (reduce (frac (// T52 X80) (// T53 X80)) (frac X81 X82)) (',' (is T56 X81) (is T57 X82))))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T52", "T53" ], "free": [ "X80", "X81", "X82" ], "exprvars": [] } }, "4": { "goal": [ { "clause": 0, "scope": 1, "term": "(reduce T1 T2)" }, { "clause": 1, "scope": 1, "term": "(reduce T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "3567": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T14", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }] }, "ground": [], "free": [], "exprvars": ["T14"] } }, "3566": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T14", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "!=" }] }, "ground": ["T14"], "free": [], "exprvars": ["T14"] } }, "3565": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T14", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }] }, "ground": ["T14"], "free": [], "exprvars": ["T14"] } }, "7": { "goal": [{ "clause": 0, "scope": 1, "term": "(reduce T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "8": { "goal": [{ "clause": 1, "scope": 1, "term": "(reduce T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "129": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X43 (mod T30 T31)) (gcd T31 X43 X44))" }], "kb": { "nonunifying": [ [ "(gcd T30 T31 X13)", "(gcd X18 (0) X18)" ], [ "(gcd T30 T31 X13)", "(gcd (0) X21 X21)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T31", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T30", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T31", "T30" ], "free": [ "X13", "X18", "X21", "X44", "X43" ], "exprvars": [ "T31", "T30" ] } }, "3883": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "name": "T59", "type": "PlainIntegerVariable" }, "operation": ">=" }] }, "ground": [ "T53", "T52", "T59" ], "free": [ "X81", "X82" ], "exprvars": ["T59"] } }, "3884": { "goal": [{ "clause": -1, "scope": -1, "term": "(reduce (frac (// T52 T59) (// T53 T59)) (frac X81 X82))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "name": "T59", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": [ "T53", "T52", "T59" ], "free": [ "X81", "X82" ], "exprvars": ["T59"] } }, "3885": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is T56 T64) (is T57 T65))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T64", "T65" ], "free": [], "exprvars": [] } }, "3888": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "20": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (gcd T11 T12 X13) (=:= X13 (1)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T11", "T12" ], "free": ["X13"], "exprvars": [] } }, "729": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (!_2) (',' (> T38 (0)) (gcd T39 T38 X57)))" }], "kb": { "nonunifying": [ [ "(gcd T38 T39 X13)", "(gcd X18 (0) X18)" ], [ "(gcd T38 T39 X13)", "(gcd (0) X21 X21)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T38", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T39", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": [ "T39", "T38" ], "free": [ "X13", "X18", "X21", "X57" ], "exprvars": [ "T39", "T38" ] } }, "3889": { "goal": [{ "clause": -1, "scope": -1, "term": "(is T57 T65)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T69", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T64", "type": "PlainIntegerVariable" }, "operation": "=" }] }, "ground": [ "T64", "T69", "T65" ], "free": [], "exprvars": [ "T64", "T69" ] } }, "3060": { "goal": [], "kb": { "nonunifying": [ [ "(gcd T38 T39 X13)", "(gcd X18 (0) X18)" ], [ "(gcd T38 T39 X13)", "(gcd (0) X21 X21)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T38", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T39", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T38", "type": "PlainIntegerVariable" }, "operation": ">=" } ] }, "ground": [ "T39", "T38" ], "free": [ "X13", "X18", "X21", "X57" ], "exprvars": [ "T39", "T38" ] } }, "27": { "goal": [{ "clause": -1, "scope": -1, "term": "(gcd T11 T12 X13)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T11", "T12" ], "free": ["X13"], "exprvars": [] } }, "28": { "goal": [{ "clause": -1, "scope": -1, "term": "(=:= T14 (1))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T14"], "free": [], "exprvars": [] } }, "29": { "goal": [ { "clause": 2, "scope": 2, "term": "(gcd T11 T12 X13)" }, { "clause": 3, "scope": 2, "term": "(gcd T11 T12 X13)" }, { "clause": 4, "scope": 2, "term": "(gcd T11 T12 X13)" }, { "clause": 5, "scope": 2, "term": "(gcd T11 T12 X13)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T11", "T12" ], "free": ["X13"], "exprvars": [] } }, "130": { "goal": [], "kb": { "nonunifying": [ [ "(gcd T30 T31 X13)", "(gcd X18 (0) X18)" ], [ "(gcd T30 T31 X13)", "(gcd (0) X21 X21)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T30", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T31", "type": "PlainIntegerVariable" }, "operation": ">=" } ] }, "ground": [ "T31", "T30" ], "free": [ "X13", "X18", "X21", "X44", "X43" ], "exprvars": [ "T31", "T30" ] } }, "255": { "goal": [{ "clause": -1, "scope": -1, "term": "(gcd T31 T32 X44)" }], "kb": { "nonunifying": [ [ "(gcd T30 T31 X13)", "(gcd X18 (0) X18)" ], [ "(gcd T30 T31 X13)", "(gcd (0) X21 X21)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T32", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T30", "type": "PlainIntegerVariable" }, { "name": "T31", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T31", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T31", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T30", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T31", "T30", "T32" ], "free": [ "X13", "X18", "X21", "X44", "X43" ], "exprvars": [ "T31", "T30", "T32" ] } }, "730": { "goal": [], "kb": { "nonunifying": [ [ "(gcd T38 T39 X13)", "(gcd X18 (0) X18)" ], [ "(gcd T38 T39 X13)", "(gcd (0) X21 X21)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T38", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T39", "type": "PlainIntegerVariable" }, "operation": ">=" }] }, "ground": [ "T39", "T38" ], "free": [ "X13", "X18", "X21", "X57" ], "exprvars": [ "T39", "T38" ] } }, "3894": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T69", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T64", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T70", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T65", "type": "PlainIntegerVariable" }, "operation": "=" } ] }, "ground": [], "free": [], "exprvars": [ "T70", "T64", "T69", "T65" ] } }, "736": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T38 (0)) (gcd T39 T38 X57))" }], "kb": { "nonunifying": [ [ "(gcd T38 T39 X13)", "(gcd X18 (0) X18)" ], [ "(gcd T38 T39 X13)", "(gcd (0) X21 X21)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T38", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T39", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": [ "T39", "T38" ], "free": [ "X13", "X18", "X21", "X57" ], "exprvars": [ "T39", "T38" ] } }, "30": { "goal": [ { "clause": -1, "scope": -1, "term": "(!_2)" }, { "clause": 3, "scope": 2, "term": "(gcd T18 (0) X13)" }, { "clause": 4, "scope": 2, "term": "(gcd T18 (0) X13)" }, { "clause": 5, "scope": 2, "term": "(gcd T18 (0) X13)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T18"], "free": ["X13"], "exprvars": [] } }, "36": { "goal": [ { "clause": 3, "scope": 2, "term": "(gcd T11 T12 X13)" }, { "clause": 4, "scope": 2, "term": "(gcd T11 T12 X13)" }, { "clause": 5, "scope": 2, "term": "(gcd T11 T12 X13)" } ], "kb": { "nonunifying": [[ "(gcd T11 T12 X13)", "(gcd X18 (0) X18)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T11", "T12" ], "free": [ "X13", "X18" ], "exprvars": [] } }, "37": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "38": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "39": { "goal": [ { "clause": -1, "scope": -1, "term": "(!_2)" }, { "clause": 4, "scope": 2, "term": "(gcd (0) T21 X13)" }, { "clause": 5, "scope": 2, "term": "(gcd (0) T21 X13)" } ], "kb": { "nonunifying": [[ "(gcd (0) T21 X13)", "(gcd X18 (0) X18)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T21"], "free": [ "X13", "X18" ], "exprvars": [] } }, "3103": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "623": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (< T38 T39) (',' (!_2) (',' (> T38 (0)) (gcd T39 T38 X57))))" }], "kb": { "nonunifying": [ [ "(gcd T38 T39 X13)", "(gcd X18 (0) X18)" ], [ "(gcd T38 T39 X13)", "(gcd (0) X21 X21)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T38", "T39" ], "free": [ "X13", "X18", "X21", "X57" ], "exprvars": [] } }, "624": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } } }, "edges": [ { "from": 2, "to": 4, "label": "CASE" }, { "from": 4, "to": 7, "label": "PARALLEL" }, { "from": 4, "to": 8, "label": "PARALLEL" }, { "from": 7, "to": 18, "label": "EVAL with clause\nreduce(frac(X11, X12), frac(X11, X12)) :- ','(!_1, ','(gcd(X11, X12, X13), =:=(X13, 1))).\nand substitutionX11 -> T11,\nX12 -> T12,\nT1 -> frac(T11, T12),\nT2 -> frac(T11, T12)" }, { "from": 7, "to": 19, "label": "EVAL-BACKTRACK" }, { "from": 8, "to": 3568, "label": "EVAL with clause\nreduce(frac(X76, X77), frac(X78, X79)) :- ','(!_1, ','(gcd(X76, X77, X80), ','(>(X80, 1), ','(reduce(frac(//(X76, X80), //(X77, X80)), frac(X81, X82)), ','(is(X78, X81), is(X79, X82)))))).\nand substitutionX76 -> T52,\nX77 -> T53,\nT1 -> frac(T52, T53),\nX78 -> T56,\nX79 -> T57,\nT2 -> frac(T56, T57),\nT54 -> T56,\nT55 -> T57" }, { "from": 8, "to": 3569, "label": "EVAL-BACKTRACK" }, { "from": 18, "to": 20, "label": "CUT" }, { "from": 20, "to": 27, "label": "SPLIT 1" }, { "from": 20, "to": 28, "label": "SPLIT 2\nnew knowledge:\nT11 is ground\nT12 is ground\nT14 is ground\nreplacements:X13 -> T14" }, { "from": 27, "to": 29, "label": "CASE" }, { "from": 28, "to": 3103, "label": "IS ERROR" }, { "from": 28, "to": 3565, "label": "ARITHCOMP SUCCESS" }, { "from": 28, "to": 3566, "label": "ARITHCOMP FAIL" }, { "from": 29, "to": 30, "label": "EVAL with clause\ngcd(X18, 0, X18) :- !_2.\nand substitutionT11 -> T18,\nX18 -> T18,\nT12 -> 0,\nX13 -> T18" }, { "from": 29, "to": 36, "label": "EVAL-BACKTRACK" }, { "from": 30, "to": 37, "label": "CUT" }, { "from": 36, "to": 39, "label": "EVAL with clause\ngcd(0, X21, X21) :- !_2.\nand substitutionT11 -> 0,\nT12 -> T21,\nX21 -> T21,\nX13 -> T21" }, { "from": 36, "to": 48, "label": "EVAL-BACKTRACK" }, { "from": 37, "to": 38, "label": "SUCCESS" }, { "from": 39, "to": 49, "label": "CUT" }, { "from": 48, "to": 51, "label": "PARALLEL" }, { "from": 48, "to": 52, "label": "PARALLEL" }, { "from": 49, "to": 50, "label": "SUCCESS" }, { "from": 51, "to": 53, "label": "ONLY EVAL with clause\ngcd(X40, X41, X42) :- ','(>=(X40, X41), ','(!_2, ','(>(X41, 0), ','(is(X43, mod(X40, X41)), gcd(X41, X43, X42))))).\nand substitutionT11 -> T30,\nX40 -> T30,\nT12 -> T31,\nX41 -> T31,\nX13 -> X44,\nX42 -> X44" }, { "from": 52, "to": 623, "label": "ONLY EVAL with clause\ngcd(X54, X55, X56) :- ','(<(X54, X55), ','(!_2, ','(>(X54, 0), gcd(X55, X54, X56)))).\nand substitutionT11 -> T38,\nX54 -> T38,\nT12 -> T39,\nX55 -> T39,\nX13 -> X57,\nX56 -> X57" }, { "from": 53, "to": 54, "label": "IS ERROR" }, { "from": 53, "to": 117, "label": "ARITHCOMP SUCCESS" }, { "from": 53, "to": 118, "label": "ARITHCOMP FAIL" }, { "from": 117, "to": 119, "label": "CUT" }, { "from": 119, "to": 129, "label": "ARITHCOMP SUCCESS" }, { "from": 119, "to": 130, "label": "ARITHCOMP FAIL" }, { "from": 129, "to": 255, "label": "\nX43 -> T32" }, { "from": 255, "to": 27, "label": "INSTANCE with matching:\nT11 -> T31\nT12 -> T32\nX13 -> X44" }, { "from": 623, "to": 624, "label": "IS ERROR" }, { "from": 623, "to": 729, "label": "ARITHCOMP SUCCESS" }, { "from": 623, "to": 730, "label": "ARITHCOMP FAIL" }, { "from": 729, "to": 736, "label": "CUT" }, { "from": 736, "to": 3056, "label": "ARITHCOMP SUCCESS" }, { "from": 736, "to": 3060, "label": "ARITHCOMP FAIL" }, { "from": 3056, "to": 27, "label": "INSTANCE with matching:\nT11 -> T39\nT12 -> T38\nX13 -> X57" }, { "from": 3565, "to": 3567, "label": "SUCCESS" }, { "from": 3568, "to": 3570, "label": "CUT" }, { "from": 3570, "to": 3571, "label": "SPLIT 1" }, { "from": 3570, "to": 3572, "label": "SPLIT 2\nnew knowledge:\nT52 is ground\nT53 is ground\nT59 is ground\nreplacements:X80 -> T59" }, { "from": 3571, "to": 27, "label": "INSTANCE with matching:\nT11 -> T52\nT12 -> T53\nX13 -> X80" }, { "from": 3572, "to": 3573, "label": "IS ERROR" }, { "from": 3572, "to": 3882, "label": "ARITHCOMP SUCCESS" }, { "from": 3572, "to": 3883, "label": "ARITHCOMP FAIL" }, { "from": 3882, "to": 3884, "label": "SPLIT 1" }, { "from": 3882, "to": 3885, "label": "SPLIT 2\nnew knowledge:\nT52 is ground\nT59 is ground\nT53 is ground\nT64 is ground\nT65 is ground\nreplacements:X81 -> T64,\nX82 -> T65" }, { "from": 3884, "to": 2, "label": "INSTANCE with matching:\nT1 -> frac(//(T52, T59), //(T53, T59))\nT2 -> frac(X81, X82)" }, { "from": 3885, "to": 3888, "label": "IS ERROR" }, { "from": 3885, "to": 3889, "label": "\nT56 -> T69" }, { "from": 3885, "to": 3890, "label": "IS FAIL" }, { "from": 3889, "to": 3891, "label": "IS ERROR" }, { "from": 3889, "to": 3892, "label": "\nT57 -> T70" }, { "from": 3889, "to": 3893, "label": "IS FAIL" }, { "from": 3892, "to": 3894, "label": "SUCCESS" } ], "type": "Graph" } } ---------------------------------------- (254) Complex Obligation (AND) ---------------------------------------- (255) Obligation: Rules: f29_in(T18, 0) -> f30_in(T18) :|: TRUE f36_out(T11, T12) -> f29_out(T11, T12) :|: TRUE f30_out(x) -> f29_out(x, 0) :|: TRUE f29_in(x1, x2) -> f36_in(x1, x2) :|: TRUE f255_out(T31, T32, T30) -> f129_out(T30, T31) :|: TRUE f129_in(x3, x4) -> f255_in(x4, x5, x3) :|: x5 = mod(x3, x4) f52_in(T38, T39) -> f623_in(T38, T39) :|: TRUE f623_out(x6, x7) -> f52_out(x6, x7) :|: TRUE f623_in(x8, x9) -> f729_in(x8, x9) :|: x8 < x9 f730_out(x10, x11) -> f623_out(x11, x10) :|: x11 >= x10 f729_out(x12, x13) -> f623_out(x12, x13) :|: x12 < x13 f624_out -> f623_out(x14, x15) :|: TRUE f623_in(x16, x17) -> f730_in(x17, x16) :|: x16 >= x17 f623_in(x18, x19) -> f624_in :|: TRUE f736_in(x20, x21) -> f3056_in(x21, x20) :|: x20 > 0 f3056_out(x22, x23) -> f736_out(x23, x22) :|: x23 > 0 f3060_out(x24, x25) -> f736_out(x25, x24) :|: x25 <= 0 f736_in(x26, x27) -> f3060_in(x27, x26) :|: x26 <= 0 f736_out(x28, x29) -> f729_out(x28, x29) :|: TRUE f729_in(x30, x31) -> f736_in(x30, x31) :|: TRUE f48_in(x32, x33) -> f52_in(x32, x33) :|: TRUE f52_out(x34, x35) -> f48_out(x34, x35) :|: TRUE f48_in(x36, x37) -> f51_in(x36, x37) :|: TRUE f51_out(x38, x39) -> f48_out(x38, x39) :|: TRUE f119_out(x40, x41) -> f117_out(x40, x41) :|: TRUE f117_in(x42, x43) -> f119_in(x42, x43) :|: TRUE f255_in(x44, x45, x46) -> f27_in(x44, x45) :|: TRUE f27_out(x47, x48) -> f255_out(x47, x48, x49) :|: TRUE f27_in(x50, x51) -> f29_in(x50, x51) :|: TRUE f29_out(x52, x53) -> f27_out(x52, x53) :|: TRUE f36_in(x54, x55) -> f48_in(x54, x55) :|: TRUE f36_in(0, T21) -> f39_in(T21) :|: TRUE f39_out(x56) -> f36_out(0, x56) :|: TRUE f48_out(x57, x58) -> f36_out(x57, x58) :|: TRUE f130_out(x59, x60) -> f119_out(x59, x60) :|: x59 <= 0 f119_in(x61, x62) -> f130_in(x61, x62) :|: x61 <= 0 f119_in(x63, x64) -> f129_in(x64, x63) :|: x63 > 0 f129_out(x65, x66) -> f119_out(x66, x65) :|: x66 > 0 f54_out -> f53_out(x67, x68) :|: TRUE f53_in(x69, x70) -> f118_in(x70, x69) :|: x69 < x70 f117_out(x71, x72) -> f53_out(x72, x71) :|: x72 >= x71 f118_out(x73, x74) -> f53_out(x74, x73) :|: x74 < x73 f53_in(x75, x76) -> f54_in :|: TRUE f53_in(x77, x78) -> f117_in(x78, x77) :|: x77 >= x78 f51_in(x79, x80) -> f53_in(x79, x80) :|: TRUE f53_out(x81, x82) -> f51_out(x81, x82) :|: TRUE f27_out(x83, x84) -> f3056_out(x83, x84) :|: TRUE f3056_in(x85, x86) -> f27_in(x85, x86) :|: TRUE f2_in(T1) -> f4_in(T1) :|: TRUE f4_out(x87) -> f2_out(x87) :|: TRUE f7_out(x88) -> f4_out(x88) :|: TRUE f4_in(x89) -> f7_in(x89) :|: TRUE f4_in(x90) -> f8_in(x90) :|: TRUE f8_out(x91) -> f4_out(x91) :|: TRUE f8_in(frac(T52, T53)) -> f3568_in(T52, T53) :|: TRUE f8_in(x92) -> f3569_in :|: TRUE f3568_out(x93, x94) -> f8_out(frac(x93, x94)) :|: TRUE f3569_out -> f8_out(x95) :|: TRUE f3570_out(x96, x97) -> f3568_out(x96, x97) :|: TRUE f3568_in(x98, x99) -> f3570_in(x98, x99) :|: TRUE f3571_out(x100, x101) -> f3572_in(x102, x100, x101) :|: TRUE f3570_in(x103, x104) -> f3571_in(x103, x104) :|: TRUE f3572_out(x105, x106, x107) -> f3570_out(x106, x107) :|: TRUE f27_out(x108, x109) -> f3571_out(x108, x109) :|: TRUE f3571_in(x110, x111) -> f27_in(x110, x111) :|: TRUE f18_out(x112, x113) -> f7_out(frac(x112, x113)) :|: TRUE f19_out -> f7_out(x114) :|: TRUE f7_in(x115) -> f19_in :|: TRUE f7_in(frac(x116, x117)) -> f18_in(x116, x117) :|: TRUE f18_in(x118, x119) -> f20_in(x118, x119) :|: TRUE f20_out(x120, x121) -> f18_out(x120, x121) :|: TRUE f28_out(x122) -> f20_out(x123, x124) :|: TRUE f20_in(x125, x126) -> f27_in(x125, x126) :|: TRUE f27_out(x127, x128) -> f28_in(x129) :|: TRUE Start term: f2_in(T1) ---------------------------------------- (256) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f29_in(x1, x2) -> f36_in(x1, x2) :|: TRUE f129_in(x3, x4) -> f255_in(x4, x5, x3) :|: x5 = mod(x3, x4) f52_in(T38, T39) -> f623_in(T38, T39) :|: TRUE f623_in(x8, x9) -> f729_in(x8, x9) :|: x8 < x9 f736_in(x20, x21) -> f3056_in(x21, x20) :|: x20 > 0 f729_in(x30, x31) -> f736_in(x30, x31) :|: TRUE f48_in(x32, x33) -> f52_in(x32, x33) :|: TRUE f48_in(x36, x37) -> f51_in(x36, x37) :|: TRUE f117_in(x42, x43) -> f119_in(x42, x43) :|: TRUE f255_in(x44, x45, x46) -> f27_in(x44, x45) :|: TRUE f27_in(x50, x51) -> f29_in(x50, x51) :|: TRUE f36_in(x54, x55) -> f48_in(x54, x55) :|: TRUE f119_in(x63, x64) -> f129_in(x64, x63) :|: x63 > 0 f53_in(x77, x78) -> f117_in(x78, x77) :|: x77 >= x78 f51_in(x79, x80) -> f53_in(x79, x80) :|: TRUE f3056_in(x85, x86) -> f27_in(x85, x86) :|: TRUE ---------------------------------------- (257) Obligation: Rules: f29_in(x1, x2) -> f36_in(x1, x2) :|: TRUE f129_in(x3, x4) -> f255_in(x4, x5, x3) :|: x5 = mod(x3, x4) f52_in(T38, T39) -> f623_in(T38, T39) :|: TRUE f623_in(x8, x9) -> f729_in(x8, x9) :|: x8 < x9 f736_in(x20, x21) -> f3056_in(x21, x20) :|: x20 > 0 f729_in(x30, x31) -> f736_in(x30, x31) :|: TRUE f48_in(x32, x33) -> f52_in(x32, x33) :|: TRUE f48_in(x36, x37) -> f51_in(x36, x37) :|: TRUE f117_in(x42, x43) -> f119_in(x42, x43) :|: TRUE f255_in(x44, x45, x46) -> f27_in(x44, x45) :|: TRUE f27_in(x50, x51) -> f29_in(x50, x51) :|: TRUE f36_in(x54, x55) -> f48_in(x54, x55) :|: TRUE f119_in(x63, x64) -> f129_in(x64, x63) :|: x63 > 0 f53_in(x77, x78) -> f117_in(x78, x77) :|: x77 >= x78 f51_in(x79, x80) -> f53_in(x79, x80) :|: TRUE f3056_in(x85, x86) -> f27_in(x85, x86) :|: TRUE ---------------------------------------- (258) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (259) Obligation: Rules: f48_in(x32:0, x33:0) -> f48_in(x33:0, x32:0) :|: x32:0 > 0 && x33:0 > x32:0 f48_in(x36:0, x37:0) -> f48_in(x37:0, x5:0) :|: x5:0 = mod(x36:0, x37:0) && x37:0 > 0 && TRUE && x36:0 >= x37:0 ---------------------------------------- (260) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (261) Obligation: Rules: f48_in(x32:0, x33:0) -> f48_in(x33:0, x32:0) :|: x32:0 > 0 && x33:0 > x32:0 f48_in(x36:0, x37:0) -> f48_in(x37:0, x5:0) :|: x5:0 = mod(x36:0, x37:0) && x37:0 > 0 && TRUE && x36:0 >= x37:0 ---------------------------------------- (262) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f48_in(x32:0, x33:0) -> f48_in(x33:0, x32:0) :|: x32:0 > 0 && x33:0 > x32:0 (2) f48_in(x36:0, x37:0) -> f48_in(x37:0, x5:0) :|: x5:0 = mod(x36:0, x37:0) && x37:0 > 0 && TRUE && x36:0 >= x37:0 No arcs! This digraph is fully evaluated! ---------------------------------------- (263) TRUE ---------------------------------------- (264) Obligation: Rules: f37_in -> f37_out :|: TRUE f3890_out(T64, T65) -> f3885_out(T64, T65) :|: TRUE f3888_out -> f3885_out(x, x1) :|: TRUE f3885_in(x2, x3) -> f3889_in(x3, x2, x4) :|: x4 = x2 f3889_out(x5, x6, x7) -> f3885_out(x6, x5) :|: TRUE f3885_in(x8, x9) -> f3888_in :|: TRUE f3885_in(x10, x11) -> f3890_in(x10, x11) :|: !(x12 = x10) f3889_in(x13, x14, x15) -> f3892_in(x16, x14, x15, x13) :|: x16 = x13 f3893_out(x17, x18, x19) -> f3889_out(x19, x17, x18) :|: TRUE f3889_in(x20, x21, x22) -> f3891_in :|: TRUE f3892_out(x23, x24, x25, x26) -> f3889_out(x26, x24, x25) :|: TRUE f3891_out -> f3889_out(x27, x28, x29) :|: TRUE f3889_in(x30, x31, x32) -> f3893_in(x31, x32, x30) :|: !(x33 = x30) f8_in(frac(T52, T53)) -> f3568_in(T52, T53) :|: TRUE f8_in(T1) -> f3569_in :|: TRUE f3568_out(x34, x35) -> f8_out(frac(x34, x35)) :|: TRUE f3569_out -> f8_out(x36) :|: TRUE f3884_out(x37, x38, x39) -> f3885_in(x40, x41) :|: TRUE f3885_out(x42, x43) -> f3882_out(x44, x45, x46) :|: TRUE f3882_in(x47, x48, x49) -> f3884_in(x47, x48, x49) :|: TRUE f52_in(T38, T39) -> f623_in(T38, T39) :|: TRUE f623_out(x50, x51) -> f52_out(x50, x51) :|: TRUE f49_in -> f49_out :|: TRUE f2_out(frac(x52 / x53, x54 / x53)) -> f3884_out(x52, x53, x54) :|: TRUE f3884_in(x55, x56, x57) -> f2_in(frac(x55 / x56, x57 / x56)) :|: TRUE f3572_in(x58, x59, x60) -> f3573_in :|: TRUE f3573_out -> f3572_out(x61, x62, x63) :|: TRUE f3572_in(x64, x65, x66) -> f3882_in(x65, x64, x66) :|: x64 > 1 f3883_out(x67, x68, x69) -> f3572_out(x69, x68, x67) :|: x69 <= 1 f3572_in(x70, x71, x72) -> f3883_in(x72, x71, x70) :|: x70 <= 1 f3882_out(x73, x74, x75) -> f3572_out(x74, x73, x75) :|: x74 > 1 f623_in(x76, x77) -> f729_in(x76, x77) :|: x76 < x77 f730_out(x78, x79) -> f623_out(x79, x78) :|: x79 >= x78 f729_out(x80, x81) -> f623_out(x80, x81) :|: x80 < x81 f624_out -> f623_out(x82, x83) :|: TRUE f623_in(x84, x85) -> f730_in(x85, x84) :|: x84 >= x85 f623_in(x86, x87) -> f624_in :|: TRUE f736_in(x88, x89) -> f3056_in(x89, x88) :|: x88 > 0 f3056_out(x90, x91) -> f736_out(x91, x90) :|: x91 > 0 f3060_out(x92, x93) -> f736_out(x93, x92) :|: x93 <= 0 f736_in(x94, x95) -> f3060_in(x95, x94) :|: x94 <= 0 f48_in(T11, T12) -> f52_in(T11, T12) :|: TRUE f52_out(x96, x97) -> f48_out(x96, x97) :|: TRUE f48_in(x98, x99) -> f51_in(x98, x99) :|: TRUE f51_out(x100, x101) -> f48_out(x100, x101) :|: TRUE f255_in(T31, T32, T30) -> f27_in(T31, T32) :|: TRUE f27_out(x102, x103) -> f255_out(x102, x103, x104) :|: TRUE f36_in(x105, x106) -> f48_in(x105, x106) :|: TRUE f36_in(0, T21) -> f39_in(T21) :|: TRUE f39_out(x107) -> f36_out(0, x107) :|: TRUE f48_out(x108, x109) -> f36_out(x108, x109) :|: TRUE f130_out(x110, x111) -> f119_out(x110, x111) :|: x110 <= 0 f119_in(x112, x113) -> f130_in(x112, x113) :|: x112 <= 0 f119_in(x114, x115) -> f129_in(x115, x114) :|: x114 > 0 f129_out(x116, x117) -> f119_out(x117, x116) :|: x117 > 0 f54_out -> f53_out(x118, x119) :|: TRUE f53_in(x120, x121) -> f118_in(x121, x120) :|: x120 < x121 f117_out(x122, x123) -> f53_out(x123, x122) :|: x123 >= x122 f118_out(x124, x125) -> f53_out(x125, x124) :|: x125 < x124 f53_in(x126, x127) -> f54_in :|: TRUE f53_in(x128, x129) -> f117_in(x129, x128) :|: x128 >= x129 f51_in(x130, x131) -> f53_in(x130, x131) :|: TRUE f53_out(x132, x133) -> f51_out(x132, x133) :|: TRUE f27_out(x134, x135) -> f3056_out(x134, x135) :|: TRUE f3056_in(x136, x137) -> f27_in(x136, x137) :|: TRUE f29_in(T18, 0) -> f30_in(T18) :|: TRUE f36_out(x138, x139) -> f29_out(x138, x139) :|: TRUE f30_out(x140) -> f29_out(x140, 0) :|: TRUE f29_in(x141, x142) -> f36_in(x141, x142) :|: TRUE f255_out(x143, x144, x145) -> f129_out(x145, x143) :|: TRUE f129_in(x146, x147) -> f255_in(x147, x148, x146) :|: x148 = mod(x146, x147) f3571_out(x149, x150) -> f3572_in(x151, x149, x150) :|: TRUE f3570_in(x152, x153) -> f3571_in(x152, x153) :|: TRUE f3572_out(x154, x155, x156) -> f3570_out(x155, x156) :|: TRUE f3892_in(x157, x158, x159, x160) -> f3892_out(x157, x158, x159, x160) :|: TRUE f27_out(x161, x162) -> f3571_out(x161, x162) :|: TRUE f3571_in(x163, x164) -> f27_in(x163, x164) :|: TRUE f30_in(x165) -> f37_in :|: TRUE f37_out -> f30_out(x166) :|: TRUE f736_out(x167, x168) -> f729_out(x167, x168) :|: TRUE f729_in(x169, x170) -> f736_in(x169, x170) :|: TRUE f119_out(x171, x172) -> f117_out(x171, x172) :|: TRUE f117_in(x173, x174) -> f119_in(x173, x174) :|: TRUE f27_in(x175, x176) -> f29_in(x175, x176) :|: TRUE f29_out(x177, x178) -> f27_out(x177, x178) :|: TRUE f3570_out(x179, x180) -> f3568_out(x179, x180) :|: TRUE f3568_in(x181, x182) -> f3570_in(x181, x182) :|: TRUE f7_out(x183) -> f4_out(x183) :|: TRUE f4_in(x184) -> f7_in(x184) :|: TRUE f4_in(x185) -> f8_in(x185) :|: TRUE f8_out(x186) -> f4_out(x186) :|: TRUE f39_in(x187) -> f49_in :|: TRUE f49_out -> f39_out(x188) :|: TRUE f2_in(x189) -> f4_in(x189) :|: TRUE f4_out(x190) -> f2_out(x190) :|: TRUE Start term: f2_in(T1) ---------------------------------------- (265) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f37_in -> f37_out :|: TRUE f8_in(frac(T52, T53)) -> f3568_in(T52, T53) :|: TRUE f3882_in(x47, x48, x49) -> f3884_in(x47, x48, x49) :|: TRUE f52_in(T38, T39) -> f623_in(T38, T39) :|: TRUE f623_out(x50, x51) -> f52_out(x50, x51) :|: TRUE f49_in -> f49_out :|: TRUE f3884_in(x55, x56, x57) -> f2_in(frac(x55 / x56, x57 / x56)) :|: TRUE f3572_in(x64, x65, x66) -> f3882_in(x65, x64, x66) :|: x64 > 1 f623_in(x76, x77) -> f729_in(x76, x77) :|: x76 < x77 f729_out(x80, x81) -> f623_out(x80, x81) :|: x80 < x81 f736_in(x88, x89) -> f3056_in(x89, x88) :|: x88 > 0 f3056_out(x90, x91) -> f736_out(x91, x90) :|: x91 > 0 f48_in(T11, T12) -> f52_in(T11, T12) :|: TRUE f52_out(x96, x97) -> f48_out(x96, x97) :|: TRUE f48_in(x98, x99) -> f51_in(x98, x99) :|: TRUE f51_out(x100, x101) -> f48_out(x100, x101) :|: TRUE f255_in(T31, T32, T30) -> f27_in(T31, T32) :|: TRUE f27_out(x102, x103) -> f255_out(x102, x103, x104) :|: TRUE f36_in(x105, x106) -> f48_in(x105, x106) :|: TRUE f36_in(0, T21) -> f39_in(T21) :|: TRUE f39_out(x107) -> f36_out(0, x107) :|: TRUE f48_out(x108, x109) -> f36_out(x108, x109) :|: TRUE f119_in(x114, x115) -> f129_in(x115, x114) :|: x114 > 0 f129_out(x116, x117) -> f119_out(x117, x116) :|: x117 > 0 f117_out(x122, x123) -> f53_out(x123, x122) :|: x123 >= x122 f53_in(x128, x129) -> f117_in(x129, x128) :|: x128 >= x129 f51_in(x130, x131) -> f53_in(x130, x131) :|: TRUE f53_out(x132, x133) -> f51_out(x132, x133) :|: TRUE f27_out(x134, x135) -> f3056_out(x134, x135) :|: TRUE f3056_in(x136, x137) -> f27_in(x136, x137) :|: TRUE f29_in(T18, 0) -> f30_in(T18) :|: TRUE f36_out(x138, x139) -> f29_out(x138, x139) :|: TRUE f30_out(x140) -> f29_out(x140, 0) :|: TRUE f29_in(x141, x142) -> f36_in(x141, x142) :|: TRUE f255_out(x143, x144, x145) -> f129_out(x145, x143) :|: TRUE f129_in(x146, x147) -> f255_in(x147, x148, x146) :|: x148 = mod(x146, x147) f3571_out(x149, x150) -> f3572_in(x151, x149, x150) :|: TRUE f3570_in(x152, x153) -> f3571_in(x152, x153) :|: TRUE f27_out(x161, x162) -> f3571_out(x161, x162) :|: TRUE f3571_in(x163, x164) -> f27_in(x163, x164) :|: TRUE f30_in(x165) -> f37_in :|: TRUE f37_out -> f30_out(x166) :|: TRUE f736_out(x167, x168) -> f729_out(x167, x168) :|: TRUE f729_in(x169, x170) -> f736_in(x169, x170) :|: TRUE f119_out(x171, x172) -> f117_out(x171, x172) :|: TRUE f117_in(x173, x174) -> f119_in(x173, x174) :|: TRUE f27_in(x175, x176) -> f29_in(x175, x176) :|: TRUE f29_out(x177, x178) -> f27_out(x177, x178) :|: TRUE f3568_in(x181, x182) -> f3570_in(x181, x182) :|: TRUE f4_in(x185) -> f8_in(x185) :|: TRUE f39_in(x187) -> f49_in :|: TRUE f49_out -> f39_out(x188) :|: TRUE f2_in(x189) -> f4_in(x189) :|: TRUE ---------------------------------------- (266) Obligation: Rules: f37_in -> f37_out :|: TRUE f8_in(frac(T52, T53)) -> f3568_in(T52, T53) :|: TRUE f3882_in(x47, x48, x49) -> f3884_in(x47, x48, x49) :|: TRUE f52_in(T38, T39) -> f623_in(T38, T39) :|: TRUE f623_out(x50, x51) -> f52_out(x50, x51) :|: TRUE f49_in -> f49_out :|: TRUE f3884_in(x55, x56, x57) -> f2_in(frac(x55 / x56, x57 / x56)) :|: TRUE f3572_in(x64, x65, x66) -> f3882_in(x65, x64, x66) :|: x64 > 1 f623_in(x76, x77) -> f729_in(x76, x77) :|: x76 < x77 f729_out(x80, x81) -> f623_out(x80, x81) :|: x80 < x81 f736_in(x88, x89) -> f3056_in(x89, x88) :|: x88 > 0 f3056_out(x90, x91) -> f736_out(x91, x90) :|: x91 > 0 f48_in(T11, T12) -> f52_in(T11, T12) :|: TRUE f52_out(x96, x97) -> f48_out(x96, x97) :|: TRUE f48_in(x98, x99) -> f51_in(x98, x99) :|: TRUE f51_out(x100, x101) -> f48_out(x100, x101) :|: TRUE f255_in(T31, T32, T30) -> f27_in(T31, T32) :|: TRUE f27_out(x102, x103) -> f255_out(x102, x103, x104) :|: TRUE f36_in(x105, x106) -> f48_in(x105, x106) :|: TRUE f36_in(0, T21) -> f39_in(T21) :|: TRUE f39_out(x107) -> f36_out(0, x107) :|: TRUE f48_out(x108, x109) -> f36_out(x108, x109) :|: TRUE f119_in(x114, x115) -> f129_in(x115, x114) :|: x114 > 0 f129_out(x116, x117) -> f119_out(x117, x116) :|: x117 > 0 f117_out(x122, x123) -> f53_out(x123, x122) :|: x123 >= x122 f53_in(x128, x129) -> f117_in(x129, x128) :|: x128 >= x129 f51_in(x130, x131) -> f53_in(x130, x131) :|: TRUE f53_out(x132, x133) -> f51_out(x132, x133) :|: TRUE f27_out(x134, x135) -> f3056_out(x134, x135) :|: TRUE f3056_in(x136, x137) -> f27_in(x136, x137) :|: TRUE f29_in(T18, 0) -> f30_in(T18) :|: TRUE f36_out(x138, x139) -> f29_out(x138, x139) :|: TRUE f30_out(x140) -> f29_out(x140, 0) :|: TRUE f29_in(x141, x142) -> f36_in(x141, x142) :|: TRUE f255_out(x143, x144, x145) -> f129_out(x145, x143) :|: TRUE f129_in(x146, x147) -> f255_in(x147, x148, x146) :|: x148 = mod(x146, x147) f3571_out(x149, x150) -> f3572_in(x151, x149, x150) :|: TRUE f3570_in(x152, x153) -> f3571_in(x152, x153) :|: TRUE f27_out(x161, x162) -> f3571_out(x161, x162) :|: TRUE f3571_in(x163, x164) -> f27_in(x163, x164) :|: TRUE f30_in(x165) -> f37_in :|: TRUE f37_out -> f30_out(x166) :|: TRUE f736_out(x167, x168) -> f729_out(x167, x168) :|: TRUE f729_in(x169, x170) -> f736_in(x169, x170) :|: TRUE f119_out(x171, x172) -> f117_out(x171, x172) :|: TRUE f117_in(x173, x174) -> f119_in(x173, x174) :|: TRUE f27_in(x175, x176) -> f29_in(x175, x176) :|: TRUE f29_out(x177, x178) -> f27_out(x177, x178) :|: TRUE f3568_in(x181, x182) -> f3570_in(x181, x182) :|: TRUE f4_in(x185) -> f8_in(x185) :|: TRUE f39_in(x187) -> f49_in :|: TRUE f49_out -> f39_out(x188) :|: TRUE f2_in(x189) -> f4_in(x189) :|: TRUE ---------------------------------------- (267) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (268) Obligation: Rules: f29_in(cons_0, x142:0) -> f27_out(0, x188:0) :|: TRUE && cons_0 = 0 f27_out(x161:0, x162:0) -> f27_out'(x161:0, x162:0) :|: TRUE f27_out'(x, x1) -> f29_in(x2, x3) :|: x1 - x4 * x3 + x4 > 0 && x1 - x4 * x3 < x4 && x - x4 * x2 < x4 && x4 > 1 && x - x4 * x2 + x4 > 0 f29_in(x5, x6) -> f29_in(x6, x7) :|: x5 >= x6 && x7 = mod(x5, x6) && TRUE && x6 > 0 f27_out(x102:0, x103:0) -> f27_out(x104:0, x102:0) :|: x102:0 > 0 && x104:0 >= x102:0 f27_out(x134:0, x135:0) -> f27_out(x135:0, x134:0) :|: x135:0 > 0 && x135:0 < x134:0 f29_in(x8, x9) -> f27_out(x10, 0) :|: TRUE && x9 = 0 f29_in(x11, x12) -> f29_in(x12, x11) :|: x11 > 0 && x12 > x11 ---------------------------------------- (269) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (270) Obligation: Rules: f29_in(cons_0, x142:0) -> f27_out(0, x188:0) :|: TRUE && cons_0 = 0 f27_out(x161:0, x162:0) -> f27_out'(x161:0, x162:0) :|: TRUE f27_out'(x, x1) -> f29_in(x2, x3) :|: x1 - x4 * x3 + x4 > 0 && x1 - x4 * x3 < x4 && x - x4 * x2 < x4 && x4 > 1 && x - x4 * x2 + x4 > 0 f29_in(x5, x6) -> f29_in(x6, x7) :|: x5 >= x6 && x7 = mod(x5, x6) && TRUE && x6 > 0 f27_out(x102:0, x103:0) -> f27_out(x104:0, x102:0) :|: x102:0 > 0 && x104:0 >= x102:0 f27_out(x134:0, x135:0) -> f27_out(x135:0, x134:0) :|: x135:0 > 0 && x135:0 < x134:0 f29_in(x8, x9) -> f27_out(x10, 0) :|: TRUE && x9 = 0 f29_in(x11, x12) -> f29_in(x12, x11) :|: x11 > 0 && x12 > x11 ---------------------------------------- (271) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f29_in(cons_0, x142:0) -> f27_out(0, x188:0) :|: TRUE && cons_0 = 0 (2) f27_out(x161:0, x162:0) -> f27_out'(x161:0, x162:0) :|: TRUE (3) f27_out'(x, x1) -> f29_in(x2, x3) :|: x1 - x4 * x3 + x4 > 0 && x1 - x4 * x3 < x4 && x - x4 * x2 < x4 && x4 > 1 && x - x4 * x2 + x4 > 0 (4) f29_in(x5, x6) -> f29_in(x6, x7) :|: x5 >= x6 && x7 = mod(x5, x6) && TRUE && x6 > 0 (5) f27_out(x102:0, x103:0) -> f27_out(x104:0, x102:0) :|: x102:0 > 0 && x104:0 >= x102:0 (6) f27_out(x134:0, x135:0) -> f27_out(x135:0, x134:0) :|: x135:0 > 0 && x135:0 < x134:0 (7) f29_in(x8, x9) -> f27_out(x10, 0) :|: TRUE && x9 = 0 (8) f29_in(x11, x12) -> f29_in(x12, x11) :|: x11 > 0 && x12 > x11 Arcs: (1) -> (2) (2) -> (3) (3) -> (1), (7), (8) (5) -> (2), (5), (6) (6) -> (2), (5) (7) -> (2), (5) This digraph is fully evaluated! ---------------------------------------- (272) Obligation: Termination digraph: Nodes: (1) f29_in(cons_0, x142:0) -> f27_out(0, x188:0) :|: TRUE && cons_0 = 0 (2) f27_out'(x, x1) -> f29_in(x2, x3) :|: x1 - x4 * x3 + x4 > 0 && x1 - x4 * x3 < x4 && x - x4 * x2 < x4 && x4 > 1 && x - x4 * x2 + x4 > 0 (3) f27_out(x161:0, x162:0) -> f27_out'(x161:0, x162:0) :|: TRUE (4) f27_out(x102:0, x103:0) -> f27_out(x104:0, x102:0) :|: x102:0 > 0 && x104:0 >= x102:0 (5) f29_in(x8, x9) -> f27_out(x10, 0) :|: TRUE && x9 = 0 (6) f27_out(x134:0, x135:0) -> f27_out(x135:0, x134:0) :|: x135:0 > 0 && x135:0 < x134:0 Arcs: (1) -> (3) (2) -> (1), (5) (3) -> (2) (4) -> (3), (4), (6) (5) -> (3), (4) (6) -> (3), (4) This digraph is fully evaluated! ---------------------------------------- (273) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (274) Obligation: Rules: f27_out(x134:0:0, x135:0:0) -> f27_out(x135:0:0, x134:0:0) :|: x135:0:0 > 0 && x135:0:0 < x134:0:0 f27_out(x161:0:0, x162:0:0) -> f27_out(0, x188:0:0) :|: x4:0 > 1 && x161:0:0 + x4:0 > 0 && x4:0 > x161:0:0 && x4:0 > x162:0:0 - x4:0 * x3:0 && x162:0:0 - x4:0 * x3:0 + x4:0 > 0 f27_out(x, x1) -> f27_out(x2, 0) :|: x3 > 1 && x - x3 * x4 + x3 > 0 && x3 > x - x3 * x4 && x3 > x1 && x1 + x3 > 0 f27_out(x102:0:0, x103:0:0) -> f27_out(x104:0:0, x102:0:0) :|: x102:0:0 > 0 && x104:0:0 >= x102:0:0 ---------------------------------------- (275) IRSwTToIntTRSProof (SOUND) Applied path-length measure to transform intTRS with terms to intTRS. ---------------------------------------- (276) Obligation: Rules: f27_out(x, x1) -> f27_out(x1, x) :|: x1 > 0 && x1 < x f27_out(x2, x3) -> f27_out(0, x4) :|: x2 + x5 > 0 && x5 > 1 && x5 > x2 && x3 - x5 * x6 + x5 > 0 && x5 > x3 - x5 * x6 f27_out(x7, x8) -> f27_out(x9, 0) :|: x7 - x10 * x11 + x10 > 0 && x10 > 1 && x7 - x10 * x11 < x10 && x8 + x10 > 0 && x8 < x10 f27_out(x12, x13) -> f27_out(x14, x12) :|: x12 > 0 && x14 >= x12 ---------------------------------------- (277) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (278) Obligation: Rules: f27_out(x:0, x1:0) -> f27_out(x1:0, x:0) :|: x1:0 > 0 && x:0 > x1:0 f27_out(x2:0, x3:0) -> f27_out(0, x4:0) :|: x3:0 - x5:0 * x6:0 + x5:0 > 0 && x5:0 > x3:0 - x5:0 * x6:0 && x5:0 > x2:0 && x5:0 > 1 && x2:0 + x5:0 > 0 f27_out(x7:0, x8:0) -> f27_out(x9:0, 0) :|: x8:0 + x10:0 > 0 && x8:0 < x10:0 && x7:0 - x10:0 * x11:0 < x10:0 && x10:0 > 1 && x7:0 - x10:0 * x11:0 + x10:0 > 0 f27_out(x12:0, x13:0) -> f27_out(x14:0, x12:0) :|: x12:0 > 0 && x14:0 >= x12:0 ---------------------------------------- (279) IntTRSPeriodicNontermProof (COMPLETE) Normalized system to the following form: f(pc, x:0, x1:0) -> f(1, x1:0, x:0) :|: pc = 1 && (x1:0 > 0 && x:0 > x1:0) f(pc, x2:0, x3:0) -> f(1, 0, x4:0) :|: pc = 1 && (x3:0 - x5:0 * x6:0 + x5:0 > 0 && x5:0 > x3:0 - x5:0 * x6:0 && x5:0 > x2:0 && x5:0 > 1 && x2:0 + x5:0 > 0) f(pc, x7:0, x8:0) -> f(1, x9:0, 0) :|: pc = 1 && (x8:0 + x10:0 > 0 && x8:0 < x10:0 && x7:0 - x10:0 * x11:0 < x10:0 && x10:0 > 1 && x7:0 - x10:0 * x11:0 + x10:0 > 0) f(pc, x12:0, x13:0) -> f(1, x14:0, x12:0) :|: pc = 1 && (x12:0 > 0 && x14:0 >= x12:0) Witness term starting non-terminating reduction: f(1, 7, 1) ---------------------------------------- (280) NO ---------------------------------------- (281) PrologToDTProblemTransformerProof (SOUND) Built DT problem from termination graph DT10. { "root": 1, "program": { "directives": [], "clauses": [ [ "(reduce (frac C D) (frac C D))", "(',' (!) (',' (gcd C D Gcd) (=:= Gcd (1))))" ], [ "(reduce (frac C D) (frac Cres Dres))", "(',' (!) (',' (gcd C D Gcd) (',' (> Gcd (1)) (',' (reduce (frac (// C Gcd) (// D Gcd)) (frac CRec DRec)) (',' (is Cres CRec) (is Dres DRec))))))" ], [ "(gcd X (0) X)", "(!)" ], [ "(gcd (0) X X)", "(!)" ], [ "(gcd X Y Divisor)", "(',' (>= X Y) (',' (!) (',' (> Y (0)) (',' (is Remainder (mod X Y)) (gcd Y Remainder Divisor)))))" ], [ "(gcd X Y Divisor)", "(',' (< X Y) (',' (!) (',' (> X (0)) (gcd Y X Divisor))))" ] ] }, "graph": { "nodes": { "4051": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (gcd T156 T155 X249) (',' (> X249 (1)) (',' (reduce (frac (// T155 X249) (// T156 X249)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T155 T156) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T155 T156 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T155 T156 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T155", "T156" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77", "X249" ], "exprvars": [ "T155", "T156" ] } }, "4052": { "goal": [], "kb": { "nonunifying": [ [ "(reduce (frac T155 T156) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T155 T156 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T155 T156 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": ">=" } ] }, "ground": [ "T155", "T156" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77", "X249" ], "exprvars": [ "T155", "T156" ] } }, "4053": { "goal": [{ "clause": -1, "scope": -1, "term": "(gcd T156 T155 X249)" }], "kb": { "nonunifying": [ [ "(reduce (frac T155 T156) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T155 T156 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T155 T156 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T155", "T156" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X249" ], "exprvars": [ "T155", "T156" ] } }, "4054": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T161 (1)) (',' (reduce (frac (// T155 T161) (// T156 T161)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T155 T156) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T155 T156 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T155 T156 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T155", "T156", "T161" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77" ], "exprvars": [] } }, "4055": { "goal": [ { "clause": 2, "scope": 7, "term": "(gcd T156 T155 X249)" }, { "clause": 3, "scope": 7, "term": "(gcd T156 T155 X249)" }, { "clause": 4, "scope": 7, "term": "(gcd T156 T155 X249)" }, { "clause": 5, "scope": 7, "term": "(gcd T156 T155 X249)" } ], "kb": { "nonunifying": [ [ "(reduce (frac T155 T156) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T155 T156 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T155 T156 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T155", "T156" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X249" ], "exprvars": [ "T155", "T156" ] } }, "4056": { "goal": [ { "clause": 3, "scope": 7, "term": "(gcd T156 T155 X249)" }, { "clause": 4, "scope": 7, "term": "(gcd T156 T155 X249)" }, { "clause": 5, "scope": 7, "term": "(gcd T156 T155 X249)" } ], "kb": { "nonunifying": [ [ "(reduce (frac T155 T156) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T155 T156 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T155 T156 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T155", "T156" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X249" ], "exprvars": [ "T155", "T156" ] } }, "4210": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "4057": { "goal": [ { "clause": 4, "scope": 7, "term": "(gcd T156 T155 X249)" }, { "clause": 5, "scope": 7, "term": "(gcd T156 T155 X249)" } ], "kb": { "nonunifying": [ [ "(reduce (frac T155 T156) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T155 T156 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T155 T156 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T155", "T156" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X249" ], "exprvars": [ "T155", "T156" ] } }, "4178": { "goal": [ { "clause": 2, "scope": 8, "term": "(gcd T177 T178 X288)" }, { "clause": 3, "scope": 8, "term": "(gcd T177 T178 X288)" }, { "clause": 4, "scope": 8, "term": "(gcd T177 T178 X288)" }, { "clause": 5, "scope": 8, "term": "(gcd T177 T178 X288)" } ], "kb": { "nonunifying": [ [ "(reduce (frac T177 T176) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T177 T176 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T177 T176 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T178", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T177", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T177", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T177", "T176", "T178" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X288" ], "exprvars": [ "T155", "T177", "T176", "T156", "T178" ] } }, "4211": { "goal": [{ "clause": -1, "scope": -1, "term": "(is T44 T232)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T236", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T231", "type": "PlainIntegerVariable" }, "operation": "=" }] }, "ground": [ "T236", "T232", "T231" ], "free": [], "exprvars": [ "T236", "T231" ] } }, "4058": { "goal": [{ "clause": 4, "scope": 7, "term": "(gcd T156 T155 X249)" }], "kb": { "nonunifying": [ [ "(reduce (frac T155 T156) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T155 T156 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T155 T156 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T155", "T156" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X249" ], "exprvars": [ "T155", "T156" ] } }, "4179": { "goal": [ { "clause": -1, "scope": -1, "term": "(!_8)" }, { "clause": 3, "scope": 8, "term": "(gcd T182 (0) X288)" }, { "clause": 4, "scope": 8, "term": "(gcd T182 (0) X288)" }, { "clause": 5, "scope": 8, "term": "(gcd T182 (0) X288)" } ], "kb": { "nonunifying": [ [ "(reduce (frac T182 T176) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T182 T176 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T182 T176 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T178", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T177", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T182", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T177", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T177", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T156", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T156", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T182", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T177", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T176", "T182" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X288" ], "exprvars": [ "T155", "T177", "T182", "T176", "T156", "T178" ] } }, "4212": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T232", "T231" ], "free": [], "exprvars": ["T231"] } }, "type": "Nodes", "4050": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (> T155 (0)) (gcd T156 T155 X249)) (',' (> X249 (1)) (',' (reduce (frac (// T155 X249) (// T156 X249)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T155 T156) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T155 T156 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T155 T156 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": [ "T155", "T156" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77", "X249" ], "exprvars": [ "T155", "T156" ] } }, "3913": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X134 (mod T89 T90)) (gcd T90 X134 X135))" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T89) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T89 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T89 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T89 T90 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T89", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T90", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T90", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T90", "T89", "T71" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X135", "X134" ], "exprvars": [ "T90", "T73", "T89", "T72", "T71" ] } }, "3914": { "goal": [], "kb": { "nonunifying": [ [ "(reduce (frac T71 T89) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T89 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T89 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T89 T90 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T89", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T90", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T90", "type": "PlainIntegerVariable" }, "operation": ">=" } ] }, "ground": [ "T90", "T89", "T71" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X135", "X134" ], "exprvars": [ "T90", "T73", "T89", "T72", "T71" ] } }, "3915": { "goal": [{ "clause": -1, "scope": -1, "term": "(gcd T90 T91 X135)" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T89) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T89 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T89 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T89 T90 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T89", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T91", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T90", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T90", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T91", "T90", "T89", "T71" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X135", "X134" ], "exprvars": [ "T91", "T90", "T73", "T89", "T72", "T71" ] } }, "872": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3916": { "goal": [ { "clause": 2, "scope": 5, "term": "(gcd T90 T91 X135)" }, { "clause": 3, "scope": 5, "term": "(gcd T90 T91 X135)" }, { "clause": 4, "scope": 5, "term": "(gcd T90 T91 X135)" }, { "clause": 5, "scope": 5, "term": "(gcd T90 T91 X135)" } ], "kb": { "nonunifying": [[ "(gcd T89 T90 X106)", "(gcd X111 (0) X111)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T89", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T91", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T90", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T90", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T91", "T90", "T89" ], "free": [ "X106", "X111", "X135" ], "exprvars": [ "T91", "T90", "T73", "T89", "T72", "T71" ] } }, "3917": { "goal": [ { "clause": -1, "scope": -1, "term": "(!_5)" }, { "clause": 3, "scope": 5, "term": "(gcd T95 (0) X135)" }, { "clause": 4, "scope": 5, "term": "(gcd T95 (0) X135)" }, { "clause": 5, "scope": 5, "term": "(gcd T95 (0) X135)" } ], "kb": { "nonunifying": [[ "(gcd T89 T95 X106)", "(gcd X111 (0) X111)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T89", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T91", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T95", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T90", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T95", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T90", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T90", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T89", "T95" ], "free": [ "X106", "X111", "X135" ], "exprvars": [ "T91", "T90", "T73", "T95", "T89", "T72", "T71" ] } }, "3918": { "goal": [ { "clause": 3, "scope": 5, "term": "(gcd T90 T91 X135)" }, { "clause": 4, "scope": 5, "term": "(gcd T90 T91 X135)" }, { "clause": 5, "scope": 5, "term": "(gcd T90 T91 X135)" } ], "kb": { "nonunifying": [ [ "(gcd T89 T90 X106)", "(gcd X111 (0) X111)" ], [ "(gcd T90 T91 X135)", "(gcd X139 (0) X139)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T89", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T91", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T90", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T90", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T91", "T90", "T89" ], "free": [ "X106", "X111", "X135", "X139" ], "exprvars": [ "T91", "T90", "T73", "T89", "T72", "T71" ] } }, "875": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (gcd T39 T40 X63) (',' (> X63 (1)) (',' (reduce (frac (// T39 X63) (// T40 X63)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }], "kb": { "nonunifying": [[ "(reduce (frac T39 T40) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T39", "T40" ], "free": [ "X3", "X4", "X63", "X64", "X65" ], "exprvars": [] } }, "3919": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T89", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T91", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T95", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T90", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T95", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T90", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T90", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [], "free": [], "exprvars": [ "T91", "T90", "T73", "T95", "T89", "T72", "T71" ] } }, "3993": { "goal": [ { "clause": 4, "scope": 6, "term": "(gcd T118 T117 X187)" }, { "clause": 5, "scope": 6, "term": "(gcd T118 T117 X187)" } ], "kb": { "nonunifying": [ [ "(reduce (frac T71 T117) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T117 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T117 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T117 T118 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T117", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T118", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T117", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T117", "T71", "T118" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X187" ], "exprvars": [ "T73", "T72", "T117", "T71", "T118" ] } }, "4048": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (!_3) (',' (> T155 (0)) (gcd T156 T155 X249))) (',' (> X249 (1)) (',' (reduce (frac (// T155 X249) (// T156 X249)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T155 T156) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T155 T156 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T155 T156 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": [ "T155", "T156" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77", "X249" ], "exprvars": [ "T155", "T156" ] } }, "3994": { "goal": [{ "clause": 4, "scope": 6, "term": "(gcd T118 T117 X187)" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T117) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T117 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T117 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T117 T118 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T117", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T118", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T117", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T117", "T71", "T118" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X187" ], "exprvars": [ "T73", "T72", "T117", "T71", "T118" ] } }, "4049": { "goal": [], "kb": { "nonunifying": [ [ "(reduce (frac T155 T156) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T155 T156 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T155 T156 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": ">=" }] }, "ground": [ "T155", "T156" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77", "X249" ], "exprvars": [ "T155", "T156" ] } }, "879": { "goal": [ { "clause": 2, "scope": 3, "term": "(',' (gcd T39 T40 X63) (',' (> X63 (1)) (',' (reduce (frac (// T39 X63) (// T40 X63)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }, { "clause": 3, "scope": 3, "term": "(',' (gcd T39 T40 X63) (',' (> X63 (1)) (',' (reduce (frac (// T39 X63) (// T40 X63)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }, { "clause": 4, "scope": 3, "term": "(',' (gcd T39 T40 X63) (',' (> X63 (1)) (',' (reduce (frac (// T39 X63) (// T40 X63)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }, { "clause": 5, "scope": 3, "term": "(',' (gcd T39 T40 X63) (',' (> X63 (1)) (',' (reduce (frac (// T39 X63) (// T40 X63)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" } ], "kb": { "nonunifying": [[ "(reduce (frac T39 T40) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T39", "T40" ], "free": [ "X3", "X4", "X63", "X64", "X65" ], "exprvars": [] } }, "3995": { "goal": [{ "clause": 5, "scope": 6, "term": "(gcd T118 T117 X187)" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T117) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T117 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T117 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T117 T118 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T117", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T118", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T117", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T117", "T71", "T118" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X187" ], "exprvars": [ "T73", "T72", "T117", "T71", "T118" ] } }, "4204": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (reduce (frac (// T155 T161) (// T156 T161)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))" }], "kb": { "nonunifying": [ [ "(reduce (frac T155 T156) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T155 T156 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T155 T156 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "name": "T161", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": [ "T155", "T156", "T161" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77" ], "exprvars": ["T161"] } }, "3996": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (>= T133 T134) (',' (!_6) (',' (> T134 (0)) (',' (is X218 (mod T133 T134)) (gcd T134 X218 X219)))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T134) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T134 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T134 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T134 T133 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T117", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T118", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T117", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T133", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T118", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T134", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T117", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T71", "T133", "T134" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X219", "X218" ], "exprvars": [ "T133", "T73", "T134", "T72", "T117", "T71", "T118" ] } }, "4205": { "goal": [], "kb": { "nonunifying": [ [ "(reduce (frac T155 T156) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T155 T156 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T155 T156 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "name": "T161", "type": "PlainIntegerVariable" }, "operation": ">=" }] }, "ground": [ "T155", "T156", "T161" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77" ], "exprvars": ["T161"] } }, "3910": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (!_4) (',' (> T90 (0)) (',' (is X134 (mod T89 T90)) (gcd T90 X134 X135))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T89) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T89 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T89 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T89 T90 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T89", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T90", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T90", "T89", "T71" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X135", "X134" ], "exprvars": [ "T90", "T73", "T89", "T72", "T71" ] } }, "3911": { "goal": [], "kb": { "nonunifying": [ [ "(reduce (frac T71 T89) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T89 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T89 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T89 T90 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T89", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T90", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": ">" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T90", "T89", "T71" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X135", "X134" ], "exprvars": [ "T90", "T73", "T89", "T72", "T71" ] } }, "4208": { "goal": [{ "clause": -1, "scope": -1, "term": "(reduce (frac (// T155 T161) (// T156 T161)) (frac X64 X65))" }], "kb": { "nonunifying": [ [ "(reduce (frac T155 T156) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T155 T156 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T155 T156 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "name": "T161", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": [ "T155", "T156", "T161" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77" ], "exprvars": ["T161"] } }, "3912": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T90 (0)) (',' (is X134 (mod T89 T90)) (gcd T90 X134 X135)))" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T89) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T89 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T89 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T89 T90 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T89", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T90", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T90", "T89", "T71" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X135", "X134" ], "exprvars": [ "T90", "T73", "T89", "T72", "T71" ] } }, "4209": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is T43 T231) (is T44 T232))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T231", "T232" ], "free": [], "exprvars": [] } }, "4183": { "goal": [ { "clause": 4, "scope": 8, "term": "(gcd T177 T178 X288)" }, { "clause": 5, "scope": 8, "term": "(gcd T177 T178 X288)" } ], "kb": { "nonunifying": [ [ "(reduce (frac T177 T176) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T177 T176 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T177 T176 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T177 T178 X288)", "(gcd X292 (0) X292)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T178", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T177", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T177", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T177", "T176", "T178" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X288", "X292" ], "exprvars": [ "T155", "T177", "T176", "T156", "T178" ] } }, "12": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_1) (',' (gcd T5 T6 X5) (=:= X5 (1))))" }, { "clause": 1, "scope": 1, "term": "(reduce (frac T5 T6) T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": ["X5"], "exprvars": [] } }, "4184": { "goal": [{ "clause": 4, "scope": 8, "term": "(gcd T177 T178 X288)" }], "kb": { "nonunifying": [ [ "(reduce (frac T177 T176) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T177 T176 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T177 T176 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T177 T178 X288)", "(gcd X292 (0) X292)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T178", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T177", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T177", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T177", "T176", "T178" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X288", "X292" ], "exprvars": [ "T155", "T177", "T176", "T156", "T178" ] } }, "4185": { "goal": [{ "clause": 5, "scope": 8, "term": "(gcd T177 T178 X288)" }], "kb": { "nonunifying": [ [ "(reduce (frac T177 T176) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T177 T176 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T177 T176 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T177 T178 X288)", "(gcd X292 (0) X292)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T178", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T177", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T177", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T177", "T176", "T178" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X288", "X292" ], "exprvars": [ "T155", "T177", "T176", "T156", "T178" ] } }, "14": { "goal": [{ "clause": 1, "scope": 1, "term": "(reduce T1 T2)" }], "kb": { "nonunifying": [[ "(reduce T1 T2)", "(reduce (frac X3 X4) (frac X3 X4))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [ "X3", "X4" ], "exprvars": [] } }, "4186": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (>= T192 T193) (',' (!_8) (',' (> T193 (0)) (',' (is X315 (mod T192 T193)) (gcd T193 X315 X316)))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T192 T176) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T192 T176 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T192 T176 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T192 T193 X288)", "(gcd X292 (0) X292)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T178", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T177", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T192", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T177", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T177", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T156", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T156", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T192", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T177", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T176", "T192", "T193" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X288", "X292", "X316", "X315" ], "exprvars": [ "T192", "T155", "T177", "T193", "T176", "T156", "T178" ] } }, "4187": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (< T198 T199) (',' (!_8) (',' (> T198 (0)) (gcd T199 T198 X328))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T198 T176) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T198 T176 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T198 T176 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T198 T199 X288)", "(gcd X292 (0) X292)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T178", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T177", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T198", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T177", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T177", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T156", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T156", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T198", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T177", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T176", "T198", "T199" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X288", "X292", "X328" ], "exprvars": [ "T155", "T177", "T199", "T176", "T198", "T156", "T178" ] } }, "16": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (gcd T5 T6 X5) (=:= X5 (1)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": ["X5"], "exprvars": [] } }, "4100": { "goal": [], "kb": { "nonunifying": [ [ "(reduce (frac T177 T176) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T177 T176 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T177 T176 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T177", "type": "PlainIntegerVariable" }, "operation": ">=" } ] }, "ground": [ "T177", "T176" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X288", "X287" ], "exprvars": [ "T155", "T177", "T176", "T156" ] } }, "4188": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (< T204 T205) (',' (!_7) (',' (> T204 (0)) (gcd T205 T204 X340))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T205 T204) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T205 T204 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T205 T204 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T205", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T204", "T205" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X340" ], "exprvars": [ "T155", "T204", "T156", "T205" ] } }, "17": { "goal": [ { "clause": 2, "scope": 2, "term": "(',' (gcd T5 T6 X5) (=:= X5 (1)))" }, { "clause": 3, "scope": 2, "term": "(',' (gcd T5 T6 X5) (=:= X5 (1)))" }, { "clause": 4, "scope": 2, "term": "(',' (gcd T5 T6 X5) (=:= X5 (1)))" }, { "clause": 5, "scope": 2, "term": "(',' (gcd T5 T6 X5) (=:= X5 (1)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": ["X5"], "exprvars": [] } }, "4101": { "goal": [{ "clause": -1, "scope": -1, "term": "(gcd T177 T178 X288)" }], "kb": { "nonunifying": [ [ "(reduce (frac T177 T176) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T177 T176 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T177 T176 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T178", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T177", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T177", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T177", "T176", "T178" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X288", "X287" ], "exprvars": [ "T155", "T177", "T176", "T156", "T178" ] } }, "4189": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (!_7) (',' (> T204 (0)) (gcd T205 T204 X340)))" }], "kb": { "nonunifying": [ [ "(reduce (frac T205 T204) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T205 T204 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T205 T204 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T205", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T205", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T204", "T205" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X340" ], "exprvars": [ "T155", "T204", "T156", "T205" ] } }, "4180": { "goal": [ { "clause": 3, "scope": 8, "term": "(gcd T177 T178 X288)" }, { "clause": 4, "scope": 8, "term": "(gcd T177 T178 X288)" }, { "clause": 5, "scope": 8, "term": "(gcd T177 T178 X288)" } ], "kb": { "nonunifying": [ [ "(reduce (frac T177 T176) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T177 T176 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T177 T176 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T177 T178 X288)", "(gcd X292 (0) X292)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T178", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T177", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T177", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T177", "T176", "T178" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X288", "X292" ], "exprvars": [ "T155", "T177", "T176", "T156", "T178" ] } }, "4060": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (>= T176 T177) (',' (!_7) (',' (> T177 (0)) (',' (is X287 (mod T176 T177)) (gcd T177 X287 X288)))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T177 T176) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T177 T176 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T177 T176 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T176", "T177" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X288", "X287" ], "exprvars": [ "T155", "T177", "T176", "T156" ] } }, "4181": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T178", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T177", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T182", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T177", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T177", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T156", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T156", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T182", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T177", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [], "free": [], "exprvars": [ "T155", "T177", "T182", "T176", "T156", "T178" ] } }, "120": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [[ "(gcd (0) T12 X5)", "(gcd X8 (0) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T12", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }] }, "ground": ["T12"], "free": [ "X5", "X8" ], "exprvars": ["T12"] } }, "4182": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T178", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T177", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T182", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T176", "type": "PlainIntegerVariable" }, { "name": "T177", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T177", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T156", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T156", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T182", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T177", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [], "free": [], "exprvars": [ "T155", "T177", "T182", "T176", "T156", "T178" ] } }, "121": { "goal": [], "kb": { "nonunifying": [[ "(gcd (0) T12 X5)", "(gcd X8 (0) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T12", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "!=" }] }, "ground": ["T12"], "free": [ "X5", "X8" ], "exprvars": ["T12"] } }, "3924": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (>= T105 T106) (',' (!_5) (',' (> T106 (0)) (',' (is X162 (mod T105 T106)) (gcd T106 X162 X163)))))" }], "kb": { "nonunifying": [ [ "(gcd T89 T105 X106)", "(gcd X111 (0) X111)" ], [ "(gcd T105 T106 X135)", "(gcd X139 (0) X139)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T89", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T91", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T105", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T90", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T105", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T90", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T90", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T89", "T105", "T106" ], "free": [ "X106", "X111", "X135", "X139", "X163", "X162" ], "exprvars": [ "T91", "T105", "T90", "T73", "T89", "T72", "T106", "T71" ] } }, "1": { "goal": [{ "clause": -1, "scope": -1, "term": "(reduce T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "122": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T12", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }] }, "ground": [], "free": [], "exprvars": ["T12"] } }, "3925": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (< T111 T112) (',' (!_5) (',' (> T111 (0)) (gcd T112 T111 X175))))" }], "kb": { "nonunifying": [ [ "(gcd T89 T111 X106)", "(gcd X111 (0) X111)" ], [ "(gcd T111 T112 X135)", "(gcd X139 (0) X139)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T89", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T91", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T111", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T90", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T111", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T90", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T90", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T89", "T111", "T112" ], "free": [ "X106", "X111", "X135", "X139", "X175" ], "exprvars": [ "T91", "T111", "T90", "T73", "T89", "T112", "T72", "T71" ] } }, "123": { "goal": [{ "clause": 4, "scope": 2, "term": "(',' (gcd T5 T6 X5) (=:= X5 (1)))" }], "kb": { "nonunifying": [ [ "(gcd T5 T6 X5)", "(gcd X8 (0) X8)" ], [ "(gcd T5 T6 X5)", "(gcd (0) X11 X11)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": [ "X5", "X8", "X11" ], "exprvars": [] } }, "124": { "goal": [{ "clause": 5, "scope": 2, "term": "(',' (gcd T5 T6 X5) (=:= X5 (1)))" }], "kb": { "nonunifying": [ [ "(gcd T5 T6 X5)", "(gcd X8 (0) X8)" ], [ "(gcd T5 T6 X5)", "(gcd (0) X11 X11)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": [ "X5", "X8", "X11" ], "exprvars": [] } }, "125": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (>= T21 T22) (',' (!_2) (',' (> T22 (0)) (',' (is X33 (mod T21 T22)) (gcd T22 X33 X34))))) (=:= X34 (1)))" }], "kb": { "nonunifying": [ [ "(gcd T21 T22 X5)", "(gcd X8 (0) X8)" ], [ "(gcd T21 T22 X5)", "(gcd (0) X11 X11)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T21", "T22" ], "free": [ "X5", "X8", "X11", "X34", "X33" ], "exprvars": [] } }, "126": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "6": { "goal": [ { "clause": 0, "scope": 1, "term": "(reduce T1 T2)" }, { "clause": 1, "scope": 1, "term": "(reduce T1 T2)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T1"], "free": [], "exprvars": [] } }, "4059": { "goal": [{ "clause": 5, "scope": 7, "term": "(gcd T156 T155 X249)" }], "kb": { "nonunifying": [ [ "(reduce (frac T155 T156) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T155 T156 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T155 T156 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T155", "T156" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X249" ], "exprvars": [ "T155", "T156" ] } }, "4213": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "4214": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T236", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T231", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T237", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T232", "type": "PlainIntegerVariable" }, "operation": "=" } ] }, "ground": [ "T236", "T232", "T237", "T231" ], "free": [], "exprvars": [ "T236", "T232", "T237", "T231" ] } }, "4215": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T236", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T231", "type": "PlainIntegerVariable" }, "operation": "=" }] }, "ground": [ "T236", "T232", "T231" ], "free": [], "exprvars": [ "T236", "T232", "T231" ] } }, "3886": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (!_3) (',' (> T72 (0)) (',' (is X105 (mod T71 T72)) (gcd T72 X105 X106)))) (',' (> X106 (1)) (',' (reduce (frac (// T71 X106) (// T72 X106)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T72) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T72 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T72 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": [ "T72", "T71" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77", "X106", "X105" ], "exprvars": [ "T72", "T71" ] } }, "4216": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T236", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T231", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T237", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T232", "type": "PlainIntegerVariable" }, "operation": "=" } ] }, "ground": [], "free": [], "exprvars": [ "T236", "T232", "T237", "T231" ] } }, "3887": { "goal": [], "kb": { "nonunifying": [ [ "(reduce (frac T71 T72) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T72 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T72 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": ">" }] }, "ground": [ "T72", "T71" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77", "X106", "X105" ], "exprvars": [ "T72", "T71" ] } }, "3920": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T89", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T91", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T95", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T90", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T95", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T90", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T90", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [], "free": [], "exprvars": [ "T91", "T90", "T73", "T95", "T89", "T72", "T71" ] } }, "3921": { "goal": [ { "clause": 4, "scope": 5, "term": "(gcd T90 T91 X135)" }, { "clause": 5, "scope": 5, "term": "(gcd T90 T91 X135)" } ], "kb": { "nonunifying": [ [ "(gcd T89 T90 X106)", "(gcd X111 (0) X111)" ], [ "(gcd T90 T91 X135)", "(gcd X139 (0) X139)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T89", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T91", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T90", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T90", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T91", "T90", "T89" ], "free": [ "X106", "X111", "X135", "X139" ], "exprvars": [ "T91", "T90", "T73", "T89", "T72", "T71" ] } }, "3922": { "goal": [{ "clause": 4, "scope": 5, "term": "(gcd T90 T91 X135)" }], "kb": { "nonunifying": [ [ "(gcd T89 T90 X106)", "(gcd X111 (0) X111)" ], [ "(gcd T90 T91 X135)", "(gcd X139 (0) X139)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T89", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T91", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T90", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T90", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T91", "T90", "T89" ], "free": [ "X106", "X111", "X135", "X139" ], "exprvars": [ "T91", "T90", "T73", "T89", "T72", "T71" ] } }, "21": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_2) (=:= T9 (1)))" }, { "clause": 3, "scope": 2, "term": "(',' (gcd T9 (0) X5) (=:= X5 (1)))" }, { "clause": 4, "scope": 2, "term": "(',' (gcd T9 (0) X5) (=:= X5 (1)))" }, { "clause": 5, "scope": 2, "term": "(',' (gcd T9 (0) X5) (=:= X5 (1)))" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": ["X5"], "exprvars": [] } }, "3923": { "goal": [{ "clause": 5, "scope": 5, "term": "(gcd T90 T91 X135)" }], "kb": { "nonunifying": [ [ "(gcd T89 T90 X106)", "(gcd X111 (0) X111)" ], [ "(gcd T90 T91 X135)", "(gcd X139 (0) X139)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T89", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "name": "T91", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T89", "type": "PlainIntegerVariable" }, { "name": "T90", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T90", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T90", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T89", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T91", "T90", "T89" ], "free": [ "X106", "X111", "X135", "X139" ], "exprvars": [ "T91", "T90", "T73", "T89", "T72", "T71" ] } }, "22": { "goal": [ { "clause": 3, "scope": 2, "term": "(',' (gcd T5 T6 X5) (=:= X5 (1)))" }, { "clause": 4, "scope": 2, "term": "(',' (gcd T5 T6 X5) (=:= X5 (1)))" }, { "clause": 5, "scope": 2, "term": "(',' (gcd T5 T6 X5) (=:= X5 (1)))" } ], "kb": { "nonunifying": [[ "(gcd T5 T6 X5)", "(gcd X8 (0) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": [ "X5", "X8" ], "exprvars": [] } }, "4194": { "goal": [ { "clause": 2, "scope": 9, "term": "(gcd T205 T204 X340)" }, { "clause": 3, "scope": 9, "term": "(gcd T205 T204 X340)" }, { "clause": 4, "scope": 9, "term": "(gcd T205 T204 X340)" }, { "clause": 5, "scope": 9, "term": "(gcd T205 T204 X340)" } ], "kb": { "nonunifying": [ [ "(reduce (frac T205 T204) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T205 T204 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T205 T204 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T205", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T205", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T204", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T204", "T205" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X340" ], "exprvars": [ "T155", "T204", "T156", "T205" ] } }, "23": { "goal": [{ "clause": -1, "scope": -1, "term": "(=:= T9 (1))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T9"], "free": [], "exprvars": [] } }, "4195": { "goal": [ { "clause": 3, "scope": 9, "term": "(gcd T205 T204 X340)" }, { "clause": 4, "scope": 9, "term": "(gcd T205 T204 X340)" }, { "clause": 5, "scope": 9, "term": "(gcd T205 T204 X340)" } ], "kb": { "nonunifying": [ [ "(reduce (frac T205 T204) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T205 T204 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T205 T204 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T205", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T205", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T204", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T204", "T205" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X340" ], "exprvars": [ "T155", "T204", "T156", "T205" ] } }, "24": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "4196": { "goal": [ { "clause": 4, "scope": 9, "term": "(gcd T205 T204 X340)" }, { "clause": 5, "scope": 9, "term": "(gcd T205 T204 X340)" } ], "kb": { "nonunifying": [ [ "(reduce (frac T205 T204) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T205 T204 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T205 T204 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T205", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T205", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T204", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T204", "T205" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X340" ], "exprvars": [ "T155", "T204", "T156", "T205" ] } }, "4197": { "goal": [{ "clause": 4, "scope": 9, "term": "(gcd T205 T204 X340)" }], "kb": { "nonunifying": [ [ "(reduce (frac T205 T204) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T205 T204 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T205 T204 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T205", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T205", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T204", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T204", "T205" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X340" ], "exprvars": [ "T155", "T204", "T156", "T205" ] } }, "4198": { "goal": [{ "clause": 5, "scope": 9, "term": "(gcd T205 T204 X340)" }], "kb": { "nonunifying": [ [ "(reduce (frac T205 T204) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T205 T204 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T205 T204 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T205", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T205", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T204", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T204", "T205" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X340" ], "exprvars": [ "T155", "T204", "T156", "T205" ] } }, "4199": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (>= T220 T221) (',' (!_9) (',' (> T221 (0)) (',' (is X371 (mod T220 T221)) (gcd T221 X371 X372)))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T220 T221) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T220 T221 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T220 T221 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T205", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T205", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T204", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T156", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T156", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T220", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T205", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T221", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T204", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T220", "T221" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X372", "X371" ], "exprvars": [ "T155", "T221", "T204", "T220", "T156", "T205" ] } }, "3385": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is T43 T49) (is T44 T50))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T49", "T50" ], "free": [], "exprvars": [] } }, "3384": { "goal": [{ "clause": -1, "scope": -1, "term": "(reduce (frac (// T47 T47) (// (0) T47)) (frac X64 X65))" }], "kb": { "nonunifying": [[ "(reduce (frac T47 (0)) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "name": "T47", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": ["T47"], "free": [ "X3", "X4", "X64", "X65" ], "exprvars": ["T47"] } }, "370": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (!_2) (',' (> T22 (0)) (',' (is X33 (mod T21 T22)) (gcd T22 X33 X34)))) (=:= X34 (1)))" }], "kb": { "nonunifying": [ [ "(gcd T21 T22 X5)", "(gcd X8 (0) X8)" ], [ "(gcd T21 T22 X5)", "(gcd (0) X11 X11)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T22", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": [ "T22", "T21" ], "free": [ "X5", "X8", "X11", "X34", "X33" ], "exprvars": [ "T22", "T21" ] } }, "3383": { "goal": [], "kb": { "nonunifying": [[ "(reduce (frac T47 (0)) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "name": "T47", "type": "PlainIntegerVariable" }, "operation": ">=" }] }, "ground": ["T47"], "free": [ "X3", "X4", "X64", "X65" ], "exprvars": ["T47"] } }, "4190": { "goal": [], "kb": { "nonunifying": [ [ "(reduce (frac T205 T204) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T205 T204 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T205 T204 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T205", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T205", "type": "PlainIntegerVariable" }, "operation": ">=" } ] }, "ground": [ "T204", "T205" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X340" ], "exprvars": [ "T155", "T204", "T156", "T205" ] } }, "3382": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (reduce (frac (// T47 T47) (// (0) T47)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))" }], "kb": { "nonunifying": [[ "(reduce (frac T47 (0)) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "name": "T47", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": ["T47"], "free": [ "X3", "X4", "X64", "X65" ], "exprvars": ["T47"] } }, "4191": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T204 (0)) (gcd T205 T204 X340))" }], "kb": { "nonunifying": [ [ "(reduce (frac T205 T204) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T205 T204 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T205 T204 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T205", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T205", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T204", "T205" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X340" ], "exprvars": [ "T155", "T204", "T156", "T205" ] } }, "4192": { "goal": [{ "clause": -1, "scope": -1, "term": "(gcd T205 T204 X340)" }], "kb": { "nonunifying": [ [ "(reduce (frac T205 T204) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T205 T204 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T205 T204 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T205", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T205", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T204", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T204", "T205" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X340" ], "exprvars": [ "T155", "T204", "T156", "T205" ] } }, "890": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_3) (',' (> T47 (1)) (',' (reduce (frac (// T47 T47) (// (0) T47)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }, { "clause": 3, "scope": 3, "term": "(',' (gcd T47 (0) X63) (',' (> X63 (1)) (',' (reduce (frac (// T47 X63) (// (0) X63)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }, { "clause": 4, "scope": 3, "term": "(',' (gcd T47 (0) X63) (',' (> X63 (1)) (',' (reduce (frac (// T47 X63) (// (0) X63)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }, { "clause": 5, "scope": 3, "term": "(',' (gcd T47 (0) X63) (',' (> X63 (1)) (',' (reduce (frac (// T47 X63) (// (0) X63)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" } ], "kb": { "nonunifying": [[ "(reduce (frac T47 (0)) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T47"], "free": [ "X3", "X4", "X63", "X64", "X65" ], "exprvars": [] } }, "4193": { "goal": [], "kb": { "nonunifying": [ [ "(reduce (frac T205 T204) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T205 T204 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T205 T204 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T205", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T205", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T204", "type": "PlainIntegerVariable" }, "operation": ">=" } ] }, "ground": [ "T204", "T205" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X340" ], "exprvars": [ "T155", "T204", "T156", "T205" ] } }, "375": { "goal": [], "kb": { "nonunifying": [ [ "(gcd T21 T22 X5)", "(gcd X8 (0) X8)" ], [ "(gcd T21 T22 X5)", "(gcd (0) X11 X11)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T22", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": ">" }] }, "ground": [ "T22", "T21" ], "free": [ "X5", "X8", "X11", "X34", "X33" ], "exprvars": [ "T22", "T21" ] } }, "896": { "goal": [ { "clause": 3, "scope": 3, "term": "(',' (gcd T39 T40 X63) (',' (> X63 (1)) (',' (reduce (frac (// T39 X63) (// T40 X63)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }, { "clause": 4, "scope": 3, "term": "(',' (gcd T39 T40 X63) (',' (> X63 (1)) (',' (reduce (frac (// T39 X63) (// T40 X63)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }, { "clause": 5, "scope": 3, "term": "(',' (gcd T39 T40 X63) (',' (> X63 (1)) (',' (reduce (frac (// T39 X63) (// T40 X63)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" } ], "kb": { "nonunifying": [ [ "(reduce (frac T39 T40) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T39 T40 X63)", "(gcd X68 (0) X68)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T39", "T40" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68" ], "exprvars": [] } }, "776": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (!_2) (',' (> T29 (0)) (gcd T30 T29 X47))) (=:= X47 (1)))" }], "kb": { "nonunifying": [ [ "(gcd T29 T30 X5)", "(gcd X8 (0) X8)" ], [ "(gcd T29 T30 X5)", "(gcd (0) X11 X11)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T30", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": [ "T30", "T29" ], "free": [ "X5", "X8", "X11", "X47" ], "exprvars": [ "T30", "T29" ] } }, "777": { "goal": [], "kb": { "nonunifying": [ [ "(gcd T29 T30 X5)", "(gcd X8 (0) X8)" ], [ "(gcd T29 T30 X5)", "(gcd (0) X11 X11)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T30", "type": "PlainIntegerVariable" }, "operation": ">=" }] }, "ground": [ "T30", "T29" ], "free": [ "X5", "X8", "X11", "X47" ], "exprvars": [ "T30", "T29" ] } }, "778": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (> T29 (0)) (gcd T30 T29 X47)) (=:= X47 (1)))" }], "kb": { "nonunifying": [ [ "(gcd T29 T30 X5)", "(gcd X8 (0) X8)" ], [ "(gcd T29 T30 X5)", "(gcd (0) X11 X11)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T30", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": [ "T30", "T29" ], "free": [ "X5", "X8", "X11", "X47" ], "exprvars": [ "T30", "T29" ] } }, "3895": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (> T72 (0)) (',' (is X105 (mod T71 T72)) (gcd T72 X105 X106))) (',' (> X106 (1)) (',' (reduce (frac (// T71 X106) (// T72 X106)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T72) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T72 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T72 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": [ "T72", "T71" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77", "X106", "X105" ], "exprvars": [ "T72", "T71" ] } }, "3896": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (is X105 (mod T71 T72)) (gcd T72 X105 X106)) (',' (> X106 (1)) (',' (reduce (frac (// T71 X106) (// T72 X106)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T72) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T72 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T72 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T72", "T71" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77", "X106", "X105" ], "exprvars": [ "T72", "T71" ] } }, "3897": { "goal": [], "kb": { "nonunifying": [ [ "(reduce (frac T71 T72) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T72 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T72 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": ">=" } ] }, "ground": [ "T72", "T71" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77", "X106", "X105" ], "exprvars": [ "T72", "T71" ] } }, "3898": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (gcd T72 T73 X106) (',' (> X106 (1)) (',' (reduce (frac (// T71 X106) (// T72 X106)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T72) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T72 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T72 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T73", "T72", "T71" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77", "X106", "X105" ], "exprvars": [ "T73", "T72", "T71" ] } }, "3899": { "goal": [{ "clause": -1, "scope": -1, "term": "(gcd T72 T73 X106)" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T72) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T72 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T72 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T73", "T72", "T71" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106" ], "exprvars": [ "T73", "T72", "T71" ] } }, "385": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (> T22 (0)) (',' (is X33 (mod T21 T22)) (gcd T22 X33 X34))) (=:= X34 (1)))" }], "kb": { "nonunifying": [ [ "(gcd T21 T22 X5)", "(gcd X8 (0) X8)" ], [ "(gcd T21 T22 X5)", "(gcd (0) X11 X11)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T22", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": [ "T22", "T21" ], "free": [ "X5", "X8", "X11", "X34", "X33" ], "exprvars": [ "T22", "T21" ] } }, "666": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (is X33 (mod T21 T22)) (gcd T22 X33 X34)) (=:= X34 (1)))" }], "kb": { "nonunifying": [ [ "(gcd T21 T22 X5)", "(gcd X8 (0) X8)" ], [ "(gcd T21 T22 X5)", "(gcd (0) X11 X11)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T22", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T22", "T21" ], "free": [ "X5", "X8", "X11", "X34", "X33" ], "exprvars": [ "T22", "T21" ] } }, "667": { "goal": [], "kb": { "nonunifying": [ [ "(gcd T21 T22 X5)", "(gcd X8 (0) X8)" ], [ "(gcd T21 T22 X5)", "(gcd (0) X11 X11)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T22", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": ">=" } ] }, "ground": [ "T22", "T21" ], "free": [ "X5", "X8", "X11", "X34", "X33" ], "exprvars": [ "T22", "T21" ] } }, "668": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (gcd T22 T23 X34) (=:= X34 (1)))" }], "kb": { "nonunifying": [ [ "(gcd T21 T22 X5)", "(gcd X8 (0) X8)" ], [ "(gcd T21 T22 X5)", "(gcd (0) X11 X11)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T23", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T21", "type": "PlainIntegerVariable" }, { "name": "T22", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T22", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T22", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T21", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T23", "T22", "T21" ], "free": [ "X5", "X8", "X11", "X34", "X33" ], "exprvars": [ "T23", "T22", "T21" ] } }, "4096": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (!_7) (',' (> T177 (0)) (',' (is X287 (mod T176 T177)) (gcd T177 X287 X288))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T177 T176) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T177 T176 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T177 T176 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T177", "T176" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X288", "X287" ], "exprvars": [ "T155", "T177", "T176", "T156" ] } }, "4097": { "goal": [], "kb": { "nonunifying": [ [ "(reduce (frac T177 T176) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T177 T176 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T177 T176 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": ">" } ] }, "ground": [ "T177", "T176" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X288", "X287" ], "exprvars": [ "T155", "T177", "T176", "T156" ] } }, "4098": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T177 (0)) (',' (is X287 (mod T176 T177)) (gcd T177 X287 X288)))" }], "kb": { "nonunifying": [ [ "(reduce (frac T177 T176) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T177 T176 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T177 T176 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T177", "T176" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X288", "X287" ], "exprvars": [ "T155", "T177", "T176", "T156" ] } }, "4099": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X287 (mod T176 T177)) (gcd T177 X287 X288))" }], "kb": { "nonunifying": [ [ "(reduce (frac T177 T176) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T177 T176 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T177 T176 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T176", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T177", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T177", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T176", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T177", "T176" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X288", "X287" ], "exprvars": [ "T155", "T177", "T176", "T156" ] } }, "3563": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T56 (1)) (',' (reduce (frac (// (0) T56) (// T56 T56)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65))))" }], "kb": { "nonunifying": [ [ "(reduce (frac (0) T56) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd (0) T56 X63)", "(gcd X68 (0) X68)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T56"], "free": [ "X3", "X4", "X63", "X64", "X65", "X68" ], "exprvars": [] } }, "3562": { "goal": [ { "clause": 4, "scope": 3, "term": "(',' (gcd T39 T40 X63) (',' (> X63 (1)) (',' (reduce (frac (// T39 X63) (// T40 X63)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }, { "clause": 5, "scope": 3, "term": "(',' (gcd T39 T40 X63) (',' (> X63 (1)) (',' (reduce (frac (// T39 X63) (// T40 X63)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" } ], "kb": { "nonunifying": [ [ "(reduce (frac T39 T40) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T39 T40 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T39 T40 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T39", "T40" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77" ], "exprvars": [] } }, "3561": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_3) (',' (> T56 (1)) (',' (reduce (frac (// (0) T56) (// T56 T56)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }, { "clause": 4, "scope": 3, "term": "(',' (gcd (0) T56 X63) (',' (> X63 (1)) (',' (reduce (frac (// (0) X63) (// T56 X63)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }, { "clause": 5, "scope": 3, "term": "(',' (gcd (0) T56 X63) (',' (> X63 (1)) (',' (reduce (frac (// (0) X63) (// T56 X63)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" } ], "kb": { "nonunifying": [ [ "(reduce (frac (0) T56) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd (0) T56 X63)", "(gcd X68 (0) X68)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T56"], "free": [ "X3", "X4", "X63", "X64", "X65", "X68" ], "exprvars": [] } }, "3560": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T52", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T49", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T53", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T50", "type": "PlainIntegerVariable" }, "operation": "=" } ] }, "ground": [], "free": [], "exprvars": [ "T53", "T52", "T50", "T49" ] } }, "3559": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T52", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T49", "type": "PlainIntegerVariable" }, "operation": "=" }] }, "ground": [ "T52", "T50", "T49" ], "free": [], "exprvars": [ "T52", "T50", "T49" ] } }, "3558": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T52", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T49", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T53", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T50", "type": "PlainIntegerVariable" }, "operation": "=" } ] }, "ground": [ "T53", "T52", "T50", "T49" ], "free": [], "exprvars": [ "T53", "T52", "T50", "T49" ] } }, "3557": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3556": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T50", "T49" ], "free": [], "exprvars": ["T49"] } }, "830": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (gcd T30 T29 X47) (=:= X47 (1)))" }], "kb": { "nonunifying": [ [ "(gcd T29 T30 X5)", "(gcd X8 (0) X8)" ], [ "(gcd T29 T30 X5)", "(gcd (0) X11 X11)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T30", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T29", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T30", "T29" ], "free": [ "X5", "X8", "X11", "X47" ], "exprvars": [ "T30", "T29" ] } }, "3555": { "goal": [{ "clause": -1, "scope": -1, "term": "(is T44 T50)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T52", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T49", "type": "PlainIntegerVariable" }, "operation": "=" }] }, "ground": [ "T52", "T50", "T49" ], "free": [], "exprvars": [ "T52", "T49" ] } }, "3554": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "832": { "goal": [], "kb": { "nonunifying": [ [ "(gcd T29 T30 X5)", "(gcd X8 (0) X8)" ], [ "(gcd T29 T30 X5)", "(gcd (0) X11 X11)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T29", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T30", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T29", "type": "PlainIntegerVariable" }, "operation": ">=" } ] }, "ground": [ "T30", "T29" ], "free": [ "X5", "X8", "X11", "X47" ], "exprvars": [ "T30", "T29" ] } }, "55": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T9", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }] }, "ground": ["T9"], "free": [], "exprvars": ["T9"] } }, "56": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T9", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "!=" }] }, "ground": ["T9"], "free": [], "exprvars": ["T9"] } }, "57": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T9", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "1" }, "operation": "=" }] }, "ground": [], "free": [], "exprvars": ["T9"] } }, "58": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_2) (=:= T12 (1)))" }, { "clause": 4, "scope": 2, "term": "(',' (gcd (0) T12 X5) (=:= X5 (1)))" }, { "clause": 5, "scope": 2, "term": "(',' (gcd (0) T12 X5) (=:= X5 (1)))" } ], "kb": { "nonunifying": [[ "(gcd (0) T12 X5)", "(gcd X8 (0) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T12"], "free": [ "X5", "X8" ], "exprvars": [] } }, "59": { "goal": [ { "clause": 4, "scope": 2, "term": "(',' (gcd T5 T6 X5) (=:= X5 (1)))" }, { "clause": 5, "scope": 2, "term": "(',' (gcd T5 T6 X5) (=:= X5 (1)))" } ], "kb": { "nonunifying": [ [ "(gcd T5 T6 X5)", "(gcd X8 (0) X8)" ], [ "(gcd T5 T6 X5)", "(gcd (0) X11 X11)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": [ "X5", "X8", "X11" ], "exprvars": [] } }, "680": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (< T29 T30) (',' (!_2) (',' (> T29 (0)) (gcd T30 T29 X47)))) (=:= X47 (1)))" }], "kb": { "nonunifying": [ [ "(gcd T29 T30 X5)", "(gcd X8 (0) X8)" ], [ "(gcd T29 T30 X5)", "(gcd (0) X11 X11)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T29", "T30" ], "free": [ "X5", "X8", "X11", "X47" ], "exprvars": [] } }, "682": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3728": { "goal": [{ "clause": -1, "scope": -1, "term": "(reduce (frac (// (0) T56) (// T56 T56)) (frac X64 X65))" }], "kb": { "nonunifying": [ [ "(reduce (frac (0) T56) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd (0) T56 X63)", "(gcd X68 (0) X68)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "name": "T56", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": ["T56"], "free": [ "X3", "X4", "X63", "X64", "X65", "X68" ], "exprvars": ["T56"] } }, "3729": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is T43 T58) (is T44 T59))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T58", "T59" ], "free": [], "exprvars": [] } }, "3564": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "60": { "goal": [{ "clause": -1, "scope": -1, "term": "(=:= T12 (1))" }], "kb": { "nonunifying": [[ "(gcd (0) T12 X5)", "(gcd X8 (0) X8)" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T12"], "free": [ "X5", "X8" ], "exprvars": [] } }, "61": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "4033": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (< T139 T140) (',' (!_6) (',' (> T139 (0)) (gcd T140 T139 X231))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T140) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T140 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T140 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T140 T139 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T117", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T118", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T117", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T139", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T118", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T140", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T117", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T71", "T139", "T140" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X231" ], "exprvars": [ "T73", "T140", "T72", "T117", "T139", "T71", "T118" ] } }, "4034": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "4035": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (reduce (frac (// T71 T75) (// T72 T75)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T72) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T72 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T72 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "name": "T75", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": [ "T75", "T72", "T71" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77" ], "exprvars": ["T75"] } }, "4036": { "goal": [], "kb": { "nonunifying": [ [ "(reduce (frac T71 T72) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T72 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T72 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "name": "T75", "type": "PlainIntegerVariable" }, "operation": ">=" }] }, "ground": [ "T75", "T72", "T71" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77" ], "exprvars": ["T75"] } }, "3737": { "goal": [{ "clause": 4, "scope": 3, "term": "(',' (gcd T39 T40 X63) (',' (> X63 (1)) (',' (reduce (frac (// T39 X63) (// T40 X63)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T39 T40) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T39 T40 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T39 T40 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T39", "T40" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77" ], "exprvars": [] } }, "3738": { "goal": [{ "clause": 5, "scope": 3, "term": "(',' (gcd T39 T40 X63) (',' (> X63 (1)) (',' (reduce (frac (// T39 X63) (// T40 X63)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T39 T40) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T39 T40 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T39 T40 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T39", "T40" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77" ], "exprvars": [] } }, "3739": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (>= T71 T72) (',' (!_3) (',' (> T72 (0)) (',' (is X105 (mod T71 T72)) (gcd T72 X105 X106))))) (',' (> X106 (1)) (',' (reduce (frac (// T71 X106) (// T72 X106)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T72) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T72 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T72 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T71", "T72" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77", "X106", "X105" ], "exprvars": [] } }, "3577": { "goal": [], "kb": { "nonunifying": [ [ "(reduce (frac (0) T56) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd (0) T56 X63)", "(gcd X68 (0) X68)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "name": "T56", "type": "PlainIntegerVariable" }, "operation": ">=" }] }, "ground": ["T56"], "free": [ "X3", "X4", "X63", "X64", "X65", "X68" ], "exprvars": ["T56"] } }, "3576": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (reduce (frac (// (0) T56) (// T56 T56)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))" }], "kb": { "nonunifying": [ [ "(reduce (frac (0) T56) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd (0) T56 X63)", "(gcd X68 (0) X68)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "name": "T56", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": ["T56"], "free": [ "X3", "X4", "X63", "X64", "X65", "X68" ], "exprvars": ["T56"] } }, "3730": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3731": { "goal": [{ "clause": -1, "scope": -1, "term": "(is T44 T59)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T58", "type": "PlainIntegerVariable" }, "operation": "=" }] }, "ground": [ "T58", "T61", "T59" ], "free": [], "exprvars": [ "T58", "T61" ] } }, "3732": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T58", "T59" ], "free": [], "exprvars": ["T58"] } }, "3733": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3734": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T58", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T62", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T59", "type": "PlainIntegerVariable" }, "operation": "=" } ] }, "ground": [ "T58", "T62", "T61", "T59" ], "free": [], "exprvars": [ "T58", "T62", "T61", "T59" ] } }, "3735": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T58", "type": "PlainIntegerVariable" }, "operation": "=" }] }, "ground": [ "T58", "T61", "T59" ], "free": [], "exprvars": [ "T58", "T61", "T59" ] } }, "3736": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T61", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T58", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T62", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T59", "type": "PlainIntegerVariable" }, "operation": "=" } ] }, "ground": [], "free": [], "exprvars": [ "T58", "T62", "T61", "T59" ] } }, "4040": { "goal": [{ "clause": -1, "scope": -1, "term": "(is T44 T145)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T149", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T144", "type": "PlainIntegerVariable" }, "operation": "=" }] }, "ground": [ "T144", "T149", "T145" ], "free": [], "exprvars": [ "T144", "T149" ] } }, "4041": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T144", "T145" ], "free": [], "exprvars": ["T144"] } }, "4042": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "4043": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T149", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T144", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T150", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T145", "type": "PlainIntegerVariable" }, "operation": "=" } ] }, "ground": [ "T144", "T149", "T145", "T150" ], "free": [], "exprvars": [ "T144", "T149", "T145", "T150" ] } }, "4044": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T149", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T144", "type": "PlainIntegerVariable" }, "operation": "=" }] }, "ground": [ "T144", "T149", "T145" ], "free": [], "exprvars": [ "T144", "T149", "T145" ] } }, "3990": { "goal": [], "kb": { "nonunifying": [ [ "(reduce (frac T71 T117) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T117 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T117 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T117 T118 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T117", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T118", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T117", "type": "PlainIntegerVariable" }, "operation": ">=" } ] }, "ground": [ "T117", "T71", "T118" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X187" ], "exprvars": [ "T73", "T72", "T117", "T71", "T118" ] } }, "4045": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T149", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T144", "type": "PlainIntegerVariable" }, "operation": "=" }, { "lhs": { "name": "T150", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T145", "type": "PlainIntegerVariable" }, "operation": "=" } ] }, "ground": [], "free": [], "exprvars": [ "T144", "T149", "T145", "T150" ] } }, "3991": { "goal": [ { "clause": 2, "scope": 6, "term": "(gcd T118 T117 X187)" }, { "clause": 3, "scope": 6, "term": "(gcd T118 T117 X187)" }, { "clause": 4, "scope": 6, "term": "(gcd T118 T117 X187)" }, { "clause": 5, "scope": 6, "term": "(gcd T118 T117 X187)" } ], "kb": { "nonunifying": [ [ "(reduce (frac T71 T117) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T117 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T117 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T117 T118 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T117", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T118", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T117", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T117", "T71", "T118" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X187" ], "exprvars": [ "T73", "T72", "T117", "T71", "T118" ] } }, "4046": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (',' (< T155 T156) (',' (!_3) (',' (> T155 (0)) (gcd T156 T155 X249)))) (',' (> X249 (1)) (',' (reduce (frac (// T155 X249) (// T156 X249)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65)))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T155 T156) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T155 T156 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T155 T156 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T155", "T156" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77", "X249" ], "exprvars": [] } }, "4200": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (< T226 T227) (',' (!_9) (',' (> T226 (0)) (gcd T227 T226 X384))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T226 T227) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T226 T227 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T226 T227 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T205", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T204", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T205", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T204", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T156", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T156", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T156", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T155", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T155", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T226", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T205", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T227", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T204", "type": "PlainIntegerVariable" }, "operation": "<" } ] }, "ground": [ "T226", "T227" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X384" ], "exprvars": [ "T155", "T204", "T226", "T156", "T205", "T227" ] } }, "3992": { "goal": [ { "clause": 3, "scope": 6, "term": "(gcd T118 T117 X187)" }, { "clause": 4, "scope": 6, "term": "(gcd T118 T117 X187)" }, { "clause": 5, "scope": 6, "term": "(gcd T118 T117 X187)" } ], "kb": { "nonunifying": [ [ "(reduce (frac T71 T117) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T117 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T117 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T117 T118 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T117", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T118", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T117", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T117", "T71", "T118" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X187" ], "exprvars": [ "T73", "T72", "T117", "T71", "T118" ] } }, "4047": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "4201": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3902": { "goal": [ { "clause": -1, "scope": -1, "term": "(!_4)" }, { "clause": 3, "scope": 4, "term": "(gcd T79 (0) X106)" }, { "clause": 4, "scope": 4, "term": "(gcd T79 (0) X106)" }, { "clause": 5, "scope": 4, "term": "(gcd T79 (0) X106)" } ], "kb": { "nonunifying": [ [ "(reduce (frac T71 T79) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T79 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T79 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T79", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T79", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T71", "T79" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106" ], "exprvars": [ "T79", "T73", "T72", "T71" ] } }, "3903": { "goal": [ { "clause": 3, "scope": 4, "term": "(gcd T72 T73 X106)" }, { "clause": 4, "scope": 4, "term": "(gcd T72 T73 X106)" }, { "clause": 5, "scope": 4, "term": "(gcd T72 T73 X106)" } ], "kb": { "nonunifying": [ [ "(reduce (frac T71 T72) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T72 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T72 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T72 T73 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T73", "T72", "T71" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111" ], "exprvars": [ "T73", "T72", "T71" ] } }, "3904": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T79", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T79", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [], "free": [], "exprvars": [ "T79", "T73", "T72", "T71" ] } }, "3905": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T79", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T79", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [], "free": [], "exprvars": [ "T79", "T73", "T72", "T71" ] } }, "3906": { "goal": [ { "clause": 4, "scope": 4, "term": "(gcd T72 T73 X106)" }, { "clause": 5, "scope": 4, "term": "(gcd T72 T73 X106)" } ], "kb": { "nonunifying": [ [ "(reduce (frac T71 T72) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T72 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T72 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T72 T73 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T73", "T72", "T71" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111" ], "exprvars": [ "T73", "T72", "T71" ] } }, "3907": { "goal": [{ "clause": 4, "scope": 4, "term": "(gcd T72 T73 X106)" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T72) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T72 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T72 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T72 T73 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T73", "T72", "T71" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111" ], "exprvars": [ "T73", "T72", "T71" ] } }, "3908": { "goal": [{ "clause": 5, "scope": 4, "term": "(gcd T72 T73 X106)" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T72) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T72 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T72 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T72 T73 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T73", "T72", "T71" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111" ], "exprvars": [ "T73", "T72", "T71" ] } }, "3909": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (>= T89 T90) (',' (!_4) (',' (> T90 (0)) (',' (is X134 (mod T89 T90)) (gcd T90 X134 X135)))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T89) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T89 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T89 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T89 T90 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T89", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T89", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T71", "T89", "T90" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X135", "X134" ], "exprvars": [ "T90", "T73", "T89", "T72", "T71" ] } }, "3740": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "4037": { "goal": [{ "clause": -1, "scope": -1, "term": "(reduce (frac (// T71 T75) (// T72 T75)) (frac X64 X65))" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T72) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T72 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T72 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "1" }, "type": "PlainIntegerRelation", "rhs": { "name": "T75", "type": "PlainIntegerVariable" }, "operation": "<" }] }, "ground": [ "T75", "T72", "T71" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77" ], "exprvars": ["T75"] } }, "867": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (!_1) (',' (gcd T39 T40 X63) (',' (> X63 (1)) (',' (reduce (frac (// T39 X63) (// T40 X63)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65))))))" }], "kb": { "nonunifying": [[ "(reduce (frac T39 T40) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T39", "T40" ], "free": [ "X3", "X4", "X63", "X64", "X65" ], "exprvars": [] } }, "4038": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is T43 T144) (is T44 T145))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T144", "T145" ], "free": [], "exprvars": [] } }, "901": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T47 (1)) (',' (reduce (frac (// T47 T47) (// (0) T47)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65))))" }], "kb": { "nonunifying": [[ "(reduce (frac T47 (0)) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ]], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T47"], "free": [ "X3", "X4", "X64", "X65" ], "exprvars": [] } }, "4039": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3985": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (< T117 T118) (',' (!_4) (',' (> T117 (0)) (gcd T118 T117 X187))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T117) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T117 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T117 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T117 T118 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T117", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T71", "T117", "T118" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X187" ], "exprvars": [ "T73", "T72", "T117", "T71", "T118" ] } }, "903": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3986": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (!_4) (',' (> T117 (0)) (gcd T118 T117 X187)))" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T117) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T117 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T117 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T117 T118 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T117", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T118", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T117", "T71", "T118" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X187" ], "exprvars": [ "T73", "T72", "T117", "T71", "T118" ] } }, "3987": { "goal": [], "kb": { "nonunifying": [ [ "(reduce (frac T71 T117) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T117 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T117 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T117 T118 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T117", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T118", "type": "PlainIntegerVariable" }, "operation": ">=" } ] }, "ground": [ "T117", "T71", "T118" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X187" ], "exprvars": [ "T73", "T72", "T117", "T71", "T118" ] } }, "3900": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T75 (1)) (',' (reduce (frac (// T71 T75) (// T72 T75)) (frac X64 X65)) (',' (is T43 X64) (is T44 X65))))" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T72) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T72 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T72 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T72", "T71", "T75" ], "free": [ "X3", "X4", "X63", "X64", "X65", "X68", "X77" ], "exprvars": [] } }, "3988": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (> T117 (0)) (gcd T118 T117 X187))" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T117) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T117 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T117 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T117 T118 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T117", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T118", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T117", "T71", "T118" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X187" ], "exprvars": [ "T73", "T72", "T117", "T71", "T118" ] } }, "3901": { "goal": [ { "clause": 2, "scope": 4, "term": "(gcd T72 T73 X106)" }, { "clause": 3, "scope": 4, "term": "(gcd T72 T73 X106)" }, { "clause": 4, "scope": 4, "term": "(gcd T72 T73 X106)" }, { "clause": 5, "scope": 4, "term": "(gcd T72 T73 X106)" } ], "kb": { "nonunifying": [ [ "(reduce (frac T71 T72) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T72 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T72 X63)", "(gcd (0) X77 X77)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T73", "T72", "T71" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106" ], "exprvars": [ "T73", "T72", "T71" ] } }, "3989": { "goal": [{ "clause": -1, "scope": -1, "term": "(gcd T118 T117 X187)" }], "kb": { "nonunifying": [ [ "(reduce (frac T71 T117) T2)", "(reduce (frac X3 X4) (frac X3 X4))" ], [ "(gcd T71 T117 X63)", "(gcd X68 (0) X68)" ], [ "(gcd T71 T117 X63)", "(gcd (0) X77 X77)" ], [ "(gcd T117 T118 X106)", "(gcd X111 (0) X111)" ] ], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T73", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T117", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T71", "type": "PlainIntegerVariable" }, { "name": "T72", "type": "PlainIntegerVariable" } ], "type": "PlainIntegerOperation", "operation": "mod" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T72", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T117", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T118", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T117", "type": "PlainIntegerVariable" }, "operation": "<" }, { "lhs": { "name": "T72", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T71", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T71", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T117", "T71", "T118" ], "free": [ "X3", "X4", "X63", "X68", "X77", "X106", "X111", "X187" ], "exprvars": [ "T73", "T72", "T117", "T71", "T118" ] } } }, "edges": [ { "from": 1, "to": 6, "label": "CASE" }, { "from": 6, "to": 12, "label": "EVAL with clause\nreduce(frac(X3, X4), frac(X3, X4)) :- ','(!_1, ','(gcd(X3, X4, X5), =:=(X5, 1))).\nand substitutionX3 -> T5,\nX4 -> T6,\nT1 -> frac(T5, T6),\nT2 -> frac(T5, T6)" }, { "from": 6, "to": 14, "label": "EVAL-BACKTRACK" }, { "from": 12, "to": 16, "label": "CUT" }, { "from": 14, "to": 867, "label": "EVAL with clause\nreduce(frac(X59, X60), frac(X61, X62)) :- ','(!_1, ','(gcd(X59, X60, X63), ','(>(X63, 1), ','(reduce(frac(//(X59, X63), //(X60, X63)), frac(X64, X65)), ','(is(X61, X64), is(X62, X65)))))).\nand substitutionX59 -> T39,\nX60 -> T40,\nT1 -> frac(T39, T40),\nX61 -> T43,\nX62 -> T44,\nT2 -> frac(T43, T44),\nT41 -> T43,\nT42 -> T44" }, { "from": 14, "to": 872, "label": "EVAL-BACKTRACK" }, { "from": 16, "to": 17, "label": "CASE" }, { "from": 17, "to": 21, "label": "EVAL with clause\ngcd(X8, 0, X8) :- !_2.\nand substitutionT5 -> T9,\nX8 -> T9,\nT6 -> 0,\nX5 -> T9" }, { "from": 17, "to": 22, "label": "EVAL-BACKTRACK" }, { "from": 21, "to": 23, "label": "CUT" }, { "from": 22, "to": 58, "label": "EVAL with clause\ngcd(0, X11, X11) :- !_2.\nand substitutionT5 -> 0,\nT6 -> T12,\nX11 -> T12,\nX5 -> T12" }, { "from": 22, "to": 59, "label": "EVAL-BACKTRACK" }, { "from": 23, "to": 24, "label": "IS ERROR" }, { "from": 23, "to": 55, "label": "ARITHCOMP SUCCESS" }, { "from": 23, "to": 56, "label": "ARITHCOMP FAIL" }, { "from": 55, "to": 57, "label": "SUCCESS" }, { "from": 58, "to": 60, "label": "CUT" }, { "from": 59, "to": 123, "label": "PARALLEL" }, { "from": 59, "to": 124, "label": "PARALLEL" }, { "from": 60, "to": 61, "label": "IS ERROR" }, { "from": 60, "to": 120, "label": "ARITHCOMP SUCCESS" }, { "from": 60, "to": 121, "label": "ARITHCOMP FAIL" }, { "from": 120, "to": 122, "label": "SUCCESS" }, { "from": 123, "to": 125, "label": "ONLY EVAL with clause\ngcd(X30, X31, X32) :- ','(>=(X30, X31), ','(!_2, ','(>(X31, 0), ','(is(X33, mod(X30, X31)), gcd(X31, X33, X32))))).\nand substitutionT5 -> T21,\nX30 -> T21,\nT6 -> T22,\nX31 -> T22,\nX5 -> X34,\nX32 -> X34" }, { "from": 124, "to": 680, "label": "ONLY EVAL with clause\ngcd(X44, X45, X46) :- ','(<(X44, X45), ','(!_2, ','(>(X44, 0), gcd(X45, X44, X46)))).\nand substitutionT5 -> T29,\nX44 -> T29,\nT6 -> T30,\nX45 -> T30,\nX5 -> X47,\nX46 -> X47" }, { "from": 125, "to": 126, "label": "IS ERROR" }, { "from": 125, "to": 370, "label": "ARITHCOMP SUCCESS" }, { "from": 125, "to": 375, "label": "ARITHCOMP FAIL" }, { "from": 370, "to": 385, "label": "CUT" }, { "from": 385, "to": 666, "label": "ARITHCOMP SUCCESS" }, { "from": 385, "to": 667, "label": "ARITHCOMP FAIL" }, { "from": 666, "to": 668, "label": "\nX33 -> T23" }, { "from": 668, "to": 16, "label": "INSTANCE with matching:\nT5 -> T22\nT6 -> T23\nX5 -> X34" }, { "from": 680, "to": 682, "label": "IS ERROR" }, { "from": 680, "to": 776, "label": "ARITHCOMP SUCCESS" }, { "from": 680, "to": 777, "label": "ARITHCOMP FAIL" }, { "from": 776, "to": 778, "label": "CUT" }, { "from": 778, "to": 830, "label": "ARITHCOMP SUCCESS" }, { "from": 778, "to": 832, "label": "ARITHCOMP FAIL" }, { "from": 830, "to": 16, "label": "INSTANCE with matching:\nT5 -> T30\nT6 -> T29\nX5 -> X47" }, { "from": 867, "to": 875, "label": "CUT" }, { "from": 875, "to": 879, "label": "CASE" }, { "from": 879, "to": 890, "label": "EVAL with clause\ngcd(X68, 0, X68) :- !_3.\nand substitutionT39 -> T47,\nX68 -> T47,\nT40 -> 0,\nX63 -> T47" }, { "from": 879, "to": 896, "label": "EVAL-BACKTRACK" }, { "from": 890, "to": 901, "label": "CUT" }, { "from": 896, "to": 3561, "label": "EVAL with clause\ngcd(0, X77, X77) :- !_3.\nand substitutionT39 -> 0,\nT40 -> T56,\nX77 -> T56,\nX63 -> T56" }, { "from": 896, "to": 3562, "label": "EVAL-BACKTRACK" }, { "from": 901, "to": 903, "label": "IS ERROR" }, { "from": 901, "to": 3382, "label": "ARITHCOMP SUCCESS" }, { "from": 901, "to": 3383, "label": "ARITHCOMP FAIL" }, { "from": 3382, "to": 3384, "label": "SPLIT 1" }, { "from": 3382, "to": 3385, "label": "SPLIT 2\nnew knowledge:\nT47 is ground\nT49 is ground\nT50 is ground\nreplacements:X64 -> T49,\nX65 -> T50" }, { "from": 3384, "to": 1, "label": "INSTANCE with matching:\nT1 -> frac(//(T47, T47), //(0, T47))\nT2 -> frac(X64, X65)" }, { "from": 3385, "to": 3554, "label": "IS ERROR" }, { "from": 3385, "to": 3555, "label": "\nT43 -> T52" }, { "from": 3385, "to": 3556, "label": "IS FAIL" }, { "from": 3555, "to": 3557, "label": "IS ERROR" }, { "from": 3555, "to": 3558, "label": "\nT44 -> T53" }, { "from": 3555, "to": 3559, "label": "IS FAIL" }, { "from": 3558, "to": 3560, "label": "SUCCESS" }, { "from": 3561, "to": 3563, "label": "CUT" }, { "from": 3562, "to": 3737, "label": "PARALLEL" }, { "from": 3562, "to": 3738, "label": "PARALLEL" }, { "from": 3563, "to": 3564, "label": "IS ERROR" }, { "from": 3563, "to": 3576, "label": "ARITHCOMP SUCCESS" }, { "from": 3563, "to": 3577, "label": "ARITHCOMP FAIL" }, { "from": 3576, "to": 3728, "label": "SPLIT 1" }, { "from": 3576, "to": 3729, "label": "SPLIT 2\nnew knowledge:\nT56 is ground\nT58 is ground\nT59 is ground\nreplacements:X64 -> T58,\nX65 -> T59" }, { "from": 3728, "to": 1, "label": "INSTANCE with matching:\nT1 -> frac(//(0, T56), //(T56, T56))\nT2 -> frac(X64, X65)" }, { "from": 3729, "to": 3730, "label": "IS ERROR" }, { "from": 3729, "to": 3731, "label": "\nT43 -> T61" }, { "from": 3729, "to": 3732, "label": "IS FAIL" }, { "from": 3731, "to": 3733, "label": "IS ERROR" }, { "from": 3731, "to": 3734, "label": "\nT44 -> T62" }, { "from": 3731, "to": 3735, "label": "IS FAIL" }, { "from": 3734, "to": 3736, "label": "SUCCESS" }, { "from": 3737, "to": 3739, "label": "ONLY EVAL with clause\ngcd(X102, X103, X104) :- ','(>=(X102, X103), ','(!_3, ','(>(X103, 0), ','(is(X105, mod(X102, X103)), gcd(X103, X105, X104))))).\nand substitutionT39 -> T71,\nX102 -> T71,\nT40 -> T72,\nX103 -> T72,\nX63 -> X106,\nX104 -> X106" }, { "from": 3738, "to": 4046, "label": "ONLY EVAL with clause\ngcd(X246, X247, X248) :- ','(<(X246, X247), ','(!_3, ','(>(X246, 0), gcd(X247, X246, X248)))).\nand substitutionT39 -> T155,\nX246 -> T155,\nT40 -> T156,\nX247 -> T156,\nX63 -> X249,\nX248 -> X249" }, { "from": 3739, "to": 3740, "label": "IS ERROR" }, { "from": 3739, "to": 3886, "label": "ARITHCOMP SUCCESS" }, { "from": 3739, "to": 3887, "label": "ARITHCOMP FAIL" }, { "from": 3886, "to": 3895, "label": "CUT" }, { "from": 3895, "to": 3896, "label": "ARITHCOMP SUCCESS" }, { "from": 3895, "to": 3897, "label": "ARITHCOMP FAIL" }, { "from": 3896, "to": 3898, "label": "\nX105 -> T73" }, { "from": 3898, "to": 3899, "label": "SPLIT 1" }, { "from": 3898, "to": 3900, "label": "SPLIT 2\nnew knowledge:\nT72 is ground\nT73 is ground\nT75 is ground\nreplacements:X106 -> T75" }, { "from": 3899, "to": 3901, "label": "CASE" }, { "from": 3900, "to": 4034, "label": "IS ERROR" }, { "from": 3900, "to": 4035, "label": "ARITHCOMP SUCCESS" }, { "from": 3900, "to": 4036, "label": "ARITHCOMP FAIL" }, { "from": 3901, "to": 3902, "label": "EVAL with clause\ngcd(X111, 0, X111) :- !_4.\nand substitutionT72 -> T79,\nX111 -> T79,\nT73 -> 0,\nX106 -> T79" }, { "from": 3901, "to": 3903, "label": "EVAL-BACKTRACK" }, { "from": 3902, "to": 3904, "label": "CUT" }, { "from": 3903, "to": 3906, "label": "BACKTRACK\nfor clause: gcd(0, X, X) :- !\nwith clash: (gcd(T71, T72, X63), gcd(X68, 0, X68))" }, { "from": 3904, "to": 3905, "label": "SUCCESS" }, { "from": 3906, "to": 3907, "label": "PARALLEL" }, { "from": 3906, "to": 3908, "label": "PARALLEL" }, { "from": 3907, "to": 3909, "label": "ONLY EVAL with clause\ngcd(X131, X132, X133) :- ','(>=(X131, X132), ','(!_4, ','(>(X132, 0), ','(is(X134, mod(X131, X132)), gcd(X132, X134, X133))))).\nand substitutionT72 -> T89,\nX131 -> T89,\nT73 -> T90,\nX132 -> T90,\nX106 -> X135,\nX133 -> X135" }, { "from": 3908, "to": 3985, "label": "ONLY EVAL with clause\ngcd(X184, X185, X186) :- ','(<(X184, X185), ','(!_4, ','(>(X184, 0), gcd(X185, X184, X186)))).\nand substitutionT72 -> T117,\nX184 -> T117,\nT73 -> T118,\nX185 -> T118,\nX106 -> X187,\nX186 -> X187" }, { "from": 3909, "to": 3910, "label": "ARITHCOMP SUCCESS" }, { "from": 3909, "to": 3911, "label": "ARITHCOMP FAIL" }, { "from": 3910, "to": 3912, "label": "CUT" }, { "from": 3912, "to": 3913, "label": "ARITHCOMP SUCCESS" }, { "from": 3912, "to": 3914, "label": "ARITHCOMP FAIL" }, { "from": 3913, "to": 3915, "label": "\nX134 -> T91" }, { "from": 3915, "to": 3916, "label": "CASE" }, { "from": 3916, "to": 3917, "label": "EVAL with clause\ngcd(X139, 0, X139) :- !_5.\nand substitutionT90 -> T95,\nX139 -> T95,\nT91 -> 0,\nX135 -> T95" }, { "from": 3916, "to": 3918, "label": "EVAL-BACKTRACK" }, { "from": 3917, "to": 3919, "label": "CUT" }, { "from": 3918, "to": 3921, "label": "BACKTRACK\nfor clause: gcd(0, X, X) :- !\nwith clash: (gcd(T89, T90, X106), gcd(X111, 0, X111))" }, { "from": 3919, "to": 3920, "label": "SUCCESS" }, { "from": 3921, "to": 3922, "label": "PARALLEL" }, { "from": 3921, "to": 3923, "label": "PARALLEL" }, { "from": 3922, "to": 3924, "label": "ONLY EVAL with clause\ngcd(X159, X160, X161) :- ','(>=(X159, X160), ','(!_5, ','(>(X160, 0), ','(is(X162, mod(X159, X160)), gcd(X160, X162, X161))))).\nand substitutionT90 -> T105,\nX159 -> T105,\nT91 -> T106,\nX160 -> T106,\nX135 -> X163,\nX161 -> X163" }, { "from": 3923, "to": 3925, "label": "ONLY EVAL with clause\ngcd(X172, X173, X174) :- ','(<(X172, X173), ','(!_5, ','(>(X172, 0), gcd(X173, X172, X174)))).\nand substitutionT90 -> T111,\nX172 -> T111,\nT91 -> T112,\nX173 -> T112,\nX135 -> X175,\nX174 -> X175" }, { "from": 3985, "to": 3986, "label": "ARITHCOMP SUCCESS" }, { "from": 3985, "to": 3987, "label": "ARITHCOMP FAIL" }, { "from": 3986, "to": 3988, "label": "CUT" }, { "from": 3988, "to": 3989, "label": "ARITHCOMP SUCCESS" }, { "from": 3988, "to": 3990, "label": "ARITHCOMP FAIL" }, { "from": 3989, "to": 3991, "label": "CASE" }, { "from": 3991, "to": 3992, "label": "BACKTRACK\nfor clause: gcd(X, 0, X) :- !\nwith clash: (gcd(T71, T117, X63), gcd(X68, 0, X68))" }, { "from": 3992, "to": 3993, "label": "BACKTRACK\nfor clause: gcd(0, X, X) :- !\nwith clash: (gcd(T117, T118, X106), gcd(X111, 0, X111))" }, { "from": 3993, "to": 3994, "label": "PARALLEL" }, { "from": 3993, "to": 3995, "label": "PARALLEL" }, { "from": 3994, "to": 3996, "label": "ONLY EVAL with clause\ngcd(X215, X216, X217) :- ','(>=(X215, X216), ','(!_6, ','(>(X216, 0), ','(is(X218, mod(X215, X216)), gcd(X216, X218, X217))))).\nand substitutionT118 -> T133,\nX215 -> T133,\nT117 -> T134,\nX216 -> T134,\nX187 -> X219,\nX217 -> X219" }, { "from": 3995, "to": 4033, "label": "ONLY EVAL with clause\ngcd(X228, X229, X230) :- ','(<(X228, X229), ','(!_6, ','(>(X228, 0), gcd(X229, X228, X230)))).\nand substitutionT118 -> T139,\nX228 -> T139,\nT117 -> T140,\nX229 -> T140,\nX187 -> X231,\nX230 -> X231" }, { "from": 4035, "to": 4037, "label": "SPLIT 1" }, { "from": 4035, "to": 4038, "label": "SPLIT 2\nnew knowledge:\nT71 is ground\nT75 is ground\nT72 is ground\nT144 is ground\nT145 is ground\nreplacements:X64 -> T144,\nX65 -> T145" }, { "from": 4037, "to": 1, "label": "INSTANCE with matching:\nT1 -> frac(//(T71, T75), //(T72, T75))\nT2 -> frac(X64, X65)" }, { "from": 4038, "to": 4039, "label": "IS ERROR" }, { "from": 4038, "to": 4040, "label": "\nT43 -> T149" }, { "from": 4038, "to": 4041, "label": "IS FAIL" }, { "from": 4040, "to": 4042, "label": "IS ERROR" }, { "from": 4040, "to": 4043, "label": "\nT44 -> T150" }, { "from": 4040, "to": 4044, "label": "IS FAIL" }, { "from": 4043, "to": 4045, "label": "SUCCESS" }, { "from": 4046, "to": 4047, "label": "IS ERROR" }, { "from": 4046, "to": 4048, "label": "ARITHCOMP SUCCESS" }, { "from": 4046, "to": 4049, "label": "ARITHCOMP FAIL" }, { "from": 4048, "to": 4050, "label": "CUT" }, { "from": 4050, "to": 4051, "label": "ARITHCOMP SUCCESS" }, { "from": 4050, "to": 4052, "label": "ARITHCOMP FAIL" }, { "from": 4051, "to": 4053, "label": "SPLIT 1" }, { "from": 4051, "to": 4054, "label": "SPLIT 2\nnew knowledge:\nT156 is ground\nT155 is ground\nT161 is ground\nreplacements:X249 -> T161" }, { "from": 4053, "to": 4055, "label": "CASE" }, { "from": 4054, "to": 4201, "label": "IS ERROR" }, { "from": 4054, "to": 4204, "label": "ARITHCOMP SUCCESS" }, { "from": 4054, "to": 4205, "label": "ARITHCOMP FAIL" }, { "from": 4055, "to": 4056, "label": "BACKTRACK\nfor clause: gcd(X, 0, X) :- !\nwith clash: (gcd(T155, T156, X63), gcd(0, X77, X77))" }, { "from": 4056, "to": 4057, "label": "BACKTRACK\nfor clause: gcd(0, X, X) :- !\nwith clash: (gcd(T155, T156, X63), gcd(X68, 0, X68))" }, { "from": 4057, "to": 4058, "label": "PARALLEL" }, { "from": 4057, "to": 4059, "label": "PARALLEL" }, { "from": 4058, "to": 4060, "label": "ONLY EVAL with clause\ngcd(X284, X285, X286) :- ','(>=(X284, X285), ','(!_7, ','(>(X285, 0), ','(is(X287, mod(X284, X285)), gcd(X285, X287, X286))))).\nand substitutionT156 -> T176,\nX284 -> T176,\nT155 -> T177,\nX285 -> T177,\nX249 -> X288,\nX286 -> X288" }, { "from": 4059, "to": 4188, "label": "ONLY EVAL with clause\ngcd(X337, X338, X339) :- ','(<(X337, X338), ','(!_7, ','(>(X337, 0), gcd(X338, X337, X339)))).\nand substitutionT156 -> T204,\nX337 -> T204,\nT155 -> T205,\nX338 -> T205,\nX249 -> X340,\nX339 -> X340" }, { "from": 4060, "to": 4096, "label": "ARITHCOMP SUCCESS" }, { "from": 4060, "to": 4097, "label": "ARITHCOMP FAIL" }, { "from": 4096, "to": 4098, "label": "CUT" }, { "from": 4098, "to": 4099, "label": "ARITHCOMP SUCCESS" }, { "from": 4098, "to": 4100, "label": "ARITHCOMP FAIL" }, { "from": 4099, "to": 4101, "label": "\nX287 -> T178" }, { "from": 4101, "to": 4178, "label": "CASE" }, { "from": 4178, "to": 4179, "label": "EVAL with clause\ngcd(X292, 0, X292) :- !_8.\nand substitutionT177 -> T182,\nX292 -> T182,\nT178 -> 0,\nX288 -> T182" }, { "from": 4178, "to": 4180, "label": "EVAL-BACKTRACK" }, { "from": 4179, "to": 4181, "label": "CUT" }, { "from": 4180, "to": 4183, "label": "BACKTRACK\nfor clause: gcd(0, X, X) :- !\nwith clash: (gcd(T177, T176, X63), gcd(0, X77, X77))" }, { "from": 4181, "to": 4182, "label": "SUCCESS" }, { "from": 4183, "to": 4184, "label": "PARALLEL" }, { "from": 4183, "to": 4185, "label": "PARALLEL" }, { "from": 4184, "to": 4186, "label": "ONLY EVAL with clause\ngcd(X312, X313, X314) :- ','(>=(X312, X313), ','(!_8, ','(>(X313, 0), ','(is(X315, mod(X312, X313)), gcd(X313, X315, X314))))).\nand substitutionT177 -> T192,\nX312 -> T192,\nT178 -> T193,\nX313 -> T193,\nX288 -> X316,\nX314 -> X316" }, { "from": 4185, "to": 4187, "label": "ONLY EVAL with clause\ngcd(X325, X326, X327) :- ','(<(X325, X326), ','(!_8, ','(>(X325, 0), gcd(X326, X325, X327)))).\nand substitutionT177 -> T198,\nX325 -> T198,\nT178 -> T199,\nX326 -> T199,\nX288 -> X328,\nX327 -> X328" }, { "from": 4188, "to": 4189, "label": "ARITHCOMP SUCCESS" }, { "from": 4188, "to": 4190, "label": "ARITHCOMP FAIL" }, { "from": 4189, "to": 4191, "label": "CUT" }, { "from": 4191, "to": 4192, "label": "ARITHCOMP SUCCESS" }, { "from": 4191, "to": 4193, "label": "ARITHCOMP FAIL" }, { "from": 4192, "to": 4194, "label": "CASE" }, { "from": 4194, "to": 4195, "label": "BACKTRACK\nfor clause: gcd(X, 0, X) :- !\nwith clash: (gcd(T205, T204, X63), gcd(X68, 0, X68))" }, { "from": 4195, "to": 4196, "label": "BACKTRACK\nfor clause: gcd(0, X, X) :- !\nwith clash: (gcd(T205, T204, X63), gcd(0, X77, X77))" }, { "from": 4196, "to": 4197, "label": "PARALLEL" }, { "from": 4196, "to": 4198, "label": "PARALLEL" }, { "from": 4197, "to": 4199, "label": "ONLY EVAL with clause\ngcd(X368, X369, X370) :- ','(>=(X368, X369), ','(!_9, ','(>(X369, 0), ','(is(X371, mod(X368, X369)), gcd(X369, X371, X370))))).\nand substitutionT205 -> T220,\nX368 -> T220,\nT204 -> T221,\nX369 -> T221,\nX340 -> X372,\nX370 -> X372" }, { "from": 4198, "to": 4200, "label": "ONLY EVAL with clause\ngcd(X381, X382, X383) :- ','(<(X381, X382), ','(!_9, ','(>(X381, 0), gcd(X382, X381, X383)))).\nand substitutionT205 -> T226,\nX381 -> T226,\nT204 -> T227,\nX382 -> T227,\nX340 -> X384,\nX383 -> X384" }, { "from": 4204, "to": 4208, "label": "SPLIT 1" }, { "from": 4204, "to": 4209, "label": "SPLIT 2\nnew knowledge:\nT155 is ground\nT161 is ground\nT156 is ground\nT231 is ground\nT232 is ground\nreplacements:X64 -> T231,\nX65 -> T232" }, { "from": 4208, "to": 1, "label": "INSTANCE with matching:\nT1 -> frac(//(T155, T161), //(T156, T161))\nT2 -> frac(X64, X65)" }, { "from": 4209, "to": 4210, "label": "IS ERROR" }, { "from": 4209, "to": 4211, "label": "\nT43 -> T236" }, { "from": 4209, "to": 4212, "label": "IS FAIL" }, { "from": 4211, "to": 4213, "label": "IS ERROR" }, { "from": 4211, "to": 4214, "label": "\nT44 -> T237" }, { "from": 4211, "to": 4215, "label": "IS FAIL" }, { "from": 4214, "to": 4216, "label": "SUCCESS" } ], "type": "Graph" } } ---------------------------------------- (282) Obligation: Triples: pA(X1, X2, X3) :- pA(X2, X4, X3). pA(X1, X2, X3) :- pA(X2, X1, X3). reduceB(frac(X1, X2), frac(X1, X2)) :- pA(X1, X2, X3). reduceB(frac(X1, 0), frac(X2, X3)) :- reduceB(frac(//(X1, X1), //(0, X1)), frac(X4, X5)). reduceB(frac(0, X1), frac(X2, X3)) :- reduceB(frac(//(0, X1), //(X1, X1)), frac(X4, X5)). reduceB(frac(X1, X2), frac(X3, X4)) :- ','(gcdcC(X2, X5, X6), reduceB(frac(//(X1, X6), //(X2, X6)), frac(X7, X8))). reduceB(frac(X1, X2), frac(X3, X4)) :- ','(gcdcD(X2, X1, X5), reduceB(frac(//(X1, X5), //(X2, X5)), frac(X6, X7))). Clauses: qcA(X1, 0, X1). qcA(0, X1, X1). qcA(X1, X2, X3) :- qcA(X2, X4, X3). qcA(X1, X2, X3) :- qcA(X2, X1, X3). reducecB(frac(X1, X2), frac(X1, X2)) :- qcA(X1, X2, X3). reducecB(frac(X1, 0), frac(X2, X3)) :- reducecB(frac(//(X1, X1), //(0, X1)), frac(X4, X5)). reducecB(frac(0, X1), frac(X2, X3)) :- reducecB(frac(//(0, X1), //(X1, X1)), frac(X4, X5)). reducecB(frac(X1, X2), frac(X3, X4)) :- ','(gcdcC(X2, X5, X6), reducecB(frac(//(X1, X6), //(X2, X6)), frac(X7, X8))). reducecB(frac(X1, X2), frac(X3, X4)) :- ','(gcdcD(X2, X1, X5), reducecB(frac(//(X1, X5), //(X2, X5)), frac(X6, X7))). gcdcC(X1, 0, X1). gcdcC(X1, X2, X2). gcdcD(X1, X2, X2). Afs: reduceB(x1, x2) = reduceB(x1) ---------------------------------------- (283) TriplesToPiDPProof (SOUND) We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: reduceB_in_2: (b,f) (f,f) pA_in_3: (b,b,f) (b,f,f) (f,f,f) (f,b,f) Transforming TRIPLES into the following Term Rewriting System: Pi DP problem: The TRS P consists of the following rules: REDUCEB_IN_GA(frac(X1, X2), frac(X1, X2)) -> U3_GA(X1, X2, pA_in_gga(X1, X2, X3)) REDUCEB_IN_GA(frac(X1, X2), frac(X1, X2)) -> PA_IN_GGA(X1, X2, X3) PA_IN_GGA(X1, X2, X3) -> U1_GGA(X1, X2, X3, pA_in_gaa(X2, X4, X3)) PA_IN_GGA(X1, X2, X3) -> PA_IN_GAA(X2, X4, X3) PA_IN_GAA(X1, X2, X3) -> U1_GAA(X1, X2, X3, pA_in_aaa(X2, X4, X3)) PA_IN_GAA(X1, X2, X3) -> PA_IN_AAA(X2, X4, X3) PA_IN_AAA(X1, X2, X3) -> U1_AAA(X1, X2, X3, pA_in_aaa(X2, X4, X3)) PA_IN_AAA(X1, X2, X3) -> PA_IN_AAA(X2, X4, X3) PA_IN_AAA(X1, X2, X3) -> U2_AAA(X1, X2, X3, pA_in_aaa(X2, X1, X3)) PA_IN_AAA(X1, X2, X3) -> PA_IN_AAA(X2, X1, X3) PA_IN_GAA(X1, X2, X3) -> U2_GAA(X1, X2, X3, pA_in_aga(X2, X1, X3)) PA_IN_GAA(X1, X2, X3) -> PA_IN_AGA(X2, X1, X3) PA_IN_AGA(X1, X2, X3) -> U1_AGA(X1, X2, X3, pA_in_gaa(X2, X4, X3)) PA_IN_AGA(X1, X2, X3) -> PA_IN_GAA(X2, X4, X3) PA_IN_AGA(X1, X2, X3) -> U2_AGA(X1, X2, X3, pA_in_gaa(X2, X1, X3)) PA_IN_AGA(X1, X2, X3) -> PA_IN_GAA(X2, X1, X3) PA_IN_GGA(X1, X2, X3) -> U2_GGA(X1, X2, X3, pA_in_gga(X2, X1, X3)) PA_IN_GGA(X1, X2, X3) -> PA_IN_GGA(X2, X1, X3) REDUCEB_IN_GA(frac(X1, 0), frac(X2, X3)) -> U4_GA(X1, X2, X3, reduceB_in_ga(frac(//(X1, X1), //(0, X1)), frac(X4, X5))) REDUCEB_IN_GA(frac(X1, 0), frac(X2, X3)) -> REDUCEB_IN_GA(frac(//(X1, X1), //(0, X1)), frac(X4, X5)) REDUCEB_IN_GA(frac(0, X1), frac(X2, X3)) -> U5_GA(X1, X2, X3, reduceB_in_ga(frac(//(0, X1), //(X1, X1)), frac(X4, X5))) REDUCEB_IN_GA(frac(0, X1), frac(X2, X3)) -> REDUCEB_IN_GA(frac(//(0, X1), //(X1, X1)), frac(X4, X5)) REDUCEB_IN_GA(frac(X1, X2), frac(X3, X4)) -> U6_GA(X1, X2, X3, X4, gcdcC_in_gaa(X2, X5, X6)) U6_GA(X1, X2, X3, X4, gcdcC_out_gaa(X2, X5, X6)) -> U7_GA(X1, X2, X3, X4, reduceB_in_aa(frac(//(X1, X6), //(X2, X6)), frac(X7, X8))) U6_GA(X1, X2, X3, X4, gcdcC_out_gaa(X2, X5, X6)) -> REDUCEB_IN_AA(frac(//(X1, X6), //(X2, X6)), frac(X7, X8)) REDUCEB_IN_AA(frac(X1, X2), frac(X1, X2)) -> U3_AA(X1, X2, pA_in_aaa(X1, X2, X3)) REDUCEB_IN_AA(frac(X1, X2), frac(X1, X2)) -> PA_IN_AAA(X1, X2, X3) REDUCEB_IN_AA(frac(X1, 0), frac(X2, X3)) -> U4_AA(X1, X2, X3, reduceB_in_aa(frac(//(X1, X1), //(0, X1)), frac(X4, X5))) REDUCEB_IN_AA(frac(X1, 0), frac(X2, X3)) -> REDUCEB_IN_AA(frac(//(X1, X1), //(0, X1)), frac(X4, X5)) REDUCEB_IN_AA(frac(0, X1), frac(X2, X3)) -> U5_AA(X1, X2, X3, reduceB_in_aa(frac(//(0, X1), //(X1, X1)), frac(X4, X5))) REDUCEB_IN_AA(frac(0, X1), frac(X2, X3)) -> REDUCEB_IN_AA(frac(//(0, X1), //(X1, X1)), frac(X4, X5)) REDUCEB_IN_AA(frac(X1, X2), frac(X3, X4)) -> U6_AA(X1, X2, X3, X4, gcdcC_in_aaa(X2, X5, X6)) U6_AA(X1, X2, X3, X4, gcdcC_out_aaa(X2, X5, X6)) -> U7_AA(X1, X2, X3, X4, reduceB_in_aa(frac(//(X1, X6), //(X2, X6)), frac(X7, X8))) U6_AA(X1, X2, X3, X4, gcdcC_out_aaa(X2, X5, X6)) -> REDUCEB_IN_AA(frac(//(X1, X6), //(X2, X6)), frac(X7, X8)) REDUCEB_IN_AA(frac(X1, X2), frac(X3, X4)) -> U8_AA(X1, X2, X3, X4, gcdcD_in_aaa(X2, X1, X5)) U8_AA(X1, X2, X3, X4, gcdcD_out_aaa(X2, X1, X5)) -> U9_AA(X1, X2, X3, X4, reduceB_in_aa(frac(//(X1, X5), //(X2, X5)), frac(X6, X7))) U8_AA(X1, X2, X3, X4, gcdcD_out_aaa(X2, X1, X5)) -> REDUCEB_IN_AA(frac(//(X1, X5), //(X2, X5)), frac(X6, X7)) REDUCEB_IN_GA(frac(X1, X2), frac(X3, X4)) -> U8_GA(X1, X2, X3, X4, gcdcD_in_gga(X2, X1, X5)) U8_GA(X1, X2, X3, X4, gcdcD_out_gga(X2, X1, X5)) -> U9_GA(X1, X2, X3, X4, reduceB_in_ga(frac(//(X1, X5), //(X2, X5)), frac(X6, X7))) U8_GA(X1, X2, X3, X4, gcdcD_out_gga(X2, X1, X5)) -> REDUCEB_IN_GA(frac(//(X1, X5), //(X2, X5)), frac(X6, X7)) The TRS R consists of the following rules: gcdcC_in_gaa(X1, 0, X1) -> gcdcC_out_gaa(X1, 0, X1) gcdcC_in_gaa(X1, X2, X2) -> gcdcC_out_gaa(X1, X2, X2) gcdcC_in_aaa(X1, 0, X1) -> gcdcC_out_aaa(X1, 0, X1) gcdcC_in_aaa(X1, X2, X2) -> gcdcC_out_aaa(X1, X2, X2) gcdcD_in_aaa(X1, X2, X2) -> gcdcD_out_aaa(X1, X2, X2) gcdcD_in_gga(X1, X2, X2) -> gcdcD_out_gga(X1, X2, X2) The argument filtering Pi contains the following mapping: reduceB_in_ga(x1, x2) = reduceB_in_ga(x1) frac(x1, x2) = frac(x1, x2) pA_in_gga(x1, x2, x3) = pA_in_gga(x1, x2) pA_in_gaa(x1, x2, x3) = pA_in_gaa(x1) pA_in_aaa(x1, x2, x3) = pA_in_aaa pA_in_aga(x1, x2, x3) = pA_in_aga(x2) 0 = 0 gcdcC_in_gaa(x1, x2, x3) = gcdcC_in_gaa(x1) gcdcC_out_gaa(x1, x2, x3) = gcdcC_out_gaa(x1) reduceB_in_aa(x1, x2) = reduceB_in_aa gcdcC_in_aaa(x1, x2, x3) = gcdcC_in_aaa gcdcC_out_aaa(x1, x2, x3) = gcdcC_out_aaa gcdcD_in_aaa(x1, x2, x3) = gcdcD_in_aaa gcdcD_out_aaa(x1, x2, x3) = gcdcD_out_aaa gcdcD_in_gga(x1, x2, x3) = gcdcD_in_gga(x1, x2) gcdcD_out_gga(x1, x2, x3) = gcdcD_out_gga(x1, x2, x3) //(x1, x2) = //(x1, x2) REDUCEB_IN_GA(x1, x2) = REDUCEB_IN_GA(x1) U3_GA(x1, x2, x3) = U3_GA(x1, x2, x3) PA_IN_GGA(x1, x2, x3) = PA_IN_GGA(x1, x2) U1_GGA(x1, x2, x3, x4) = U1_GGA(x1, x2, x4) PA_IN_GAA(x1, x2, x3) = PA_IN_GAA(x1) U1_GAA(x1, x2, x3, x4) = U1_GAA(x1, x4) PA_IN_AAA(x1, x2, x3) = PA_IN_AAA U1_AAA(x1, x2, x3, x4) = U1_AAA(x4) U2_AAA(x1, x2, x3, x4) = U2_AAA(x4) U2_GAA(x1, x2, x3, x4) = U2_GAA(x1, x4) PA_IN_AGA(x1, x2, x3) = PA_IN_AGA(x2) U1_AGA(x1, x2, x3, x4) = U1_AGA(x2, x4) U2_AGA(x1, x2, x3, x4) = U2_AGA(x2, x4) U2_GGA(x1, x2, x3, x4) = U2_GGA(x1, x2, x4) U4_GA(x1, x2, x3, x4) = U4_GA(x1, x4) U5_GA(x1, x2, x3, x4) = U5_GA(x1, x4) U6_GA(x1, x2, x3, x4, x5) = U6_GA(x1, x2, x5) U7_GA(x1, x2, x3, x4, x5) = U7_GA(x1, x2, x5) REDUCEB_IN_AA(x1, x2) = REDUCEB_IN_AA U3_AA(x1, x2, x3) = U3_AA(x3) U4_AA(x1, x2, x3, x4) = U4_AA(x4) U5_AA(x1, x2, x3, x4) = U5_AA(x4) U6_AA(x1, x2, x3, x4, x5) = U6_AA(x5) U7_AA(x1, x2, x3, x4, x5) = U7_AA(x5) U8_AA(x1, x2, x3, x4, x5) = U8_AA(x5) U9_AA(x1, x2, x3, x4, x5) = U9_AA(x5) U8_GA(x1, x2, x3, x4, x5) = U8_GA(x1, x2, x5) U9_GA(x1, x2, x3, x4, x5) = U9_GA(x1, x2, x5) We have to consider all (P,R,Pi)-chains Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES ---------------------------------------- (284) Obligation: Pi DP problem: The TRS P consists of the following rules: REDUCEB_IN_GA(frac(X1, X2), frac(X1, X2)) -> U3_GA(X1, X2, pA_in_gga(X1, X2, X3)) REDUCEB_IN_GA(frac(X1, X2), frac(X1, X2)) -> PA_IN_GGA(X1, X2, X3) PA_IN_GGA(X1, X2, X3) -> U1_GGA(X1, X2, X3, pA_in_gaa(X2, X4, X3)) PA_IN_GGA(X1, X2, X3) -> PA_IN_GAA(X2, X4, X3) PA_IN_GAA(X1, X2, X3) -> U1_GAA(X1, X2, X3, pA_in_aaa(X2, X4, X3)) PA_IN_GAA(X1, X2, X3) -> PA_IN_AAA(X2, X4, X3) PA_IN_AAA(X1, X2, X3) -> U1_AAA(X1, X2, X3, pA_in_aaa(X2, X4, X3)) PA_IN_AAA(X1, X2, X3) -> PA_IN_AAA(X2, X4, X3) PA_IN_AAA(X1, X2, X3) -> U2_AAA(X1, X2, X3, pA_in_aaa(X2, X1, X3)) PA_IN_AAA(X1, X2, X3) -> PA_IN_AAA(X2, X1, X3) PA_IN_GAA(X1, X2, X3) -> U2_GAA(X1, X2, X3, pA_in_aga(X2, X1, X3)) PA_IN_GAA(X1, X2, X3) -> PA_IN_AGA(X2, X1, X3) PA_IN_AGA(X1, X2, X3) -> U1_AGA(X1, X2, X3, pA_in_gaa(X2, X4, X3)) PA_IN_AGA(X1, X2, X3) -> PA_IN_GAA(X2, X4, X3) PA_IN_AGA(X1, X2, X3) -> U2_AGA(X1, X2, X3, pA_in_gaa(X2, X1, X3)) PA_IN_AGA(X1, X2, X3) -> PA_IN_GAA(X2, X1, X3) PA_IN_GGA(X1, X2, X3) -> U2_GGA(X1, X2, X3, pA_in_gga(X2, X1, X3)) PA_IN_GGA(X1, X2, X3) -> PA_IN_GGA(X2, X1, X3) REDUCEB_IN_GA(frac(X1, 0), frac(X2, X3)) -> U4_GA(X1, X2, X3, reduceB_in_ga(frac(//(X1, X1), //(0, X1)), frac(X4, X5))) REDUCEB_IN_GA(frac(X1, 0), frac(X2, X3)) -> REDUCEB_IN_GA(frac(//(X1, X1), //(0, X1)), frac(X4, X5)) REDUCEB_IN_GA(frac(0, X1), frac(X2, X3)) -> U5_GA(X1, X2, X3, reduceB_in_ga(frac(//(0, X1), //(X1, X1)), frac(X4, X5))) REDUCEB_IN_GA(frac(0, X1), frac(X2, X3)) -> REDUCEB_IN_GA(frac(//(0, X1), //(X1, X1)), frac(X4, X5)) REDUCEB_IN_GA(frac(X1, X2), frac(X3, X4)) -> U6_GA(X1, X2, X3, X4, gcdcC_in_gaa(X2, X5, X6)) U6_GA(X1, X2, X3, X4, gcdcC_out_gaa(X2, X5, X6)) -> U7_GA(X1, X2, X3, X4, reduceB_in_aa(frac(//(X1, X6), //(X2, X6)), frac(X7, X8))) U6_GA(X1, X2, X3, X4, gcdcC_out_gaa(X2, X5, X6)) -> REDUCEB_IN_AA(frac(//(X1, X6), //(X2, X6)), frac(X7, X8)) REDUCEB_IN_AA(frac(X1, X2), frac(X1, X2)) -> U3_AA(X1, X2, pA_in_aaa(X1, X2, X3)) REDUCEB_IN_AA(frac(X1, X2), frac(X1, X2)) -> PA_IN_AAA(X1, X2, X3) REDUCEB_IN_AA(frac(X1, 0), frac(X2, X3)) -> U4_AA(X1, X2, X3, reduceB_in_aa(frac(//(X1, X1), //(0, X1)), frac(X4, X5))) REDUCEB_IN_AA(frac(X1, 0), frac(X2, X3)) -> REDUCEB_IN_AA(frac(//(X1, X1), //(0, X1)), frac(X4, X5)) REDUCEB_IN_AA(frac(0, X1), frac(X2, X3)) -> U5_AA(X1, X2, X3, reduceB_in_aa(frac(//(0, X1), //(X1, X1)), frac(X4, X5))) REDUCEB_IN_AA(frac(0, X1), frac(X2, X3)) -> REDUCEB_IN_AA(frac(//(0, X1), //(X1, X1)), frac(X4, X5)) REDUCEB_IN_AA(frac(X1, X2), frac(X3, X4)) -> U6_AA(X1, X2, X3, X4, gcdcC_in_aaa(X2, X5, X6)) U6_AA(X1, X2, X3, X4, gcdcC_out_aaa(X2, X5, X6)) -> U7_AA(X1, X2, X3, X4, reduceB_in_aa(frac(//(X1, X6), //(X2, X6)), frac(X7, X8))) U6_AA(X1, X2, X3, X4, gcdcC_out_aaa(X2, X5, X6)) -> REDUCEB_IN_AA(frac(//(X1, X6), //(X2, X6)), frac(X7, X8)) REDUCEB_IN_AA(frac(X1, X2), frac(X3, X4)) -> U8_AA(X1, X2, X3, X4, gcdcD_in_aaa(X2, X1, X5)) U8_AA(X1, X2, X3, X4, gcdcD_out_aaa(X2, X1, X5)) -> U9_AA(X1, X2, X3, X4, reduceB_in_aa(frac(//(X1, X5), //(X2, X5)), frac(X6, X7))) U8_AA(X1, X2, X3, X4, gcdcD_out_aaa(X2, X1, X5)) -> REDUCEB_IN_AA(frac(//(X1, X5), //(X2, X5)), frac(X6, X7)) REDUCEB_IN_GA(frac(X1, X2), frac(X3, X4)) -> U8_GA(X1, X2, X3, X4, gcdcD_in_gga(X2, X1, X5)) U8_GA(X1, X2, X3, X4, gcdcD_out_gga(X2, X1, X5)) -> U9_GA(X1, X2, X3, X4, reduceB_in_ga(frac(//(X1, X5), //(X2, X5)), frac(X6, X7))) U8_GA(X1, X2, X3, X4, gcdcD_out_gga(X2, X1, X5)) -> REDUCEB_IN_GA(frac(//(X1, X5), //(X2, X5)), frac(X6, X7)) The TRS R consists of the following rules: gcdcC_in_gaa(X1, 0, X1) -> gcdcC_out_gaa(X1, 0, X1) gcdcC_in_gaa(X1, X2, X2) -> gcdcC_out_gaa(X1, X2, X2) gcdcC_in_aaa(X1, 0, X1) -> gcdcC_out_aaa(X1, 0, X1) gcdcC_in_aaa(X1, X2, X2) -> gcdcC_out_aaa(X1, X2, X2) gcdcD_in_aaa(X1, X2, X2) -> gcdcD_out_aaa(X1, X2, X2) gcdcD_in_gga(X1, X2, X2) -> gcdcD_out_gga(X1, X2, X2) The argument filtering Pi contains the following mapping: reduceB_in_ga(x1, x2) = reduceB_in_ga(x1) frac(x1, x2) = frac(x1, x2) pA_in_gga(x1, x2, x3) = pA_in_gga(x1, x2) pA_in_gaa(x1, x2, x3) = pA_in_gaa(x1) pA_in_aaa(x1, x2, x3) = pA_in_aaa pA_in_aga(x1, x2, x3) = pA_in_aga(x2) 0 = 0 gcdcC_in_gaa(x1, x2, x3) = gcdcC_in_gaa(x1) gcdcC_out_gaa(x1, x2, x3) = gcdcC_out_gaa(x1) reduceB_in_aa(x1, x2) = reduceB_in_aa gcdcC_in_aaa(x1, x2, x3) = gcdcC_in_aaa gcdcC_out_aaa(x1, x2, x3) = gcdcC_out_aaa gcdcD_in_aaa(x1, x2, x3) = gcdcD_in_aaa gcdcD_out_aaa(x1, x2, x3) = gcdcD_out_aaa gcdcD_in_gga(x1, x2, x3) = gcdcD_in_gga(x1, x2) gcdcD_out_gga(x1, x2, x3) = gcdcD_out_gga(x1, x2, x3) //(x1, x2) = //(x1, x2) REDUCEB_IN_GA(x1, x2) = REDUCEB_IN_GA(x1) U3_GA(x1, x2, x3) = U3_GA(x1, x2, x3) PA_IN_GGA(x1, x2, x3) = PA_IN_GGA(x1, x2) U1_GGA(x1, x2, x3, x4) = U1_GGA(x1, x2, x4) PA_IN_GAA(x1, x2, x3) = PA_IN_GAA(x1) U1_GAA(x1, x2, x3, x4) = U1_GAA(x1, x4) PA_IN_AAA(x1, x2, x3) = PA_IN_AAA U1_AAA(x1, x2, x3, x4) = U1_AAA(x4) U2_AAA(x1, x2, x3, x4) = U2_AAA(x4) U2_GAA(x1, x2, x3, x4) = U2_GAA(x1, x4) PA_IN_AGA(x1, x2, x3) = PA_IN_AGA(x2) U1_AGA(x1, x2, x3, x4) = U1_AGA(x2, x4) U2_AGA(x1, x2, x3, x4) = U2_AGA(x2, x4) U2_GGA(x1, x2, x3, x4) = U2_GGA(x1, x2, x4) U4_GA(x1, x2, x3, x4) = U4_GA(x1, x4) U5_GA(x1, x2, x3, x4) = U5_GA(x1, x4) U6_GA(x1, x2, x3, x4, x5) = U6_GA(x1, x2, x5) U7_GA(x1, x2, x3, x4, x5) = U7_GA(x1, x2, x5) REDUCEB_IN_AA(x1, x2) = REDUCEB_IN_AA U3_AA(x1, x2, x3) = U3_AA(x3) U4_AA(x1, x2, x3, x4) = U4_AA(x4) U5_AA(x1, x2, x3, x4) = U5_AA(x4) U6_AA(x1, x2, x3, x4, x5) = U6_AA(x5) U7_AA(x1, x2, x3, x4, x5) = U7_AA(x5) U8_AA(x1, x2, x3, x4, x5) = U8_AA(x5) U9_AA(x1, x2, x3, x4, x5) = U9_AA(x5) U8_GA(x1, x2, x3, x4, x5) = U8_GA(x1, x2, x5) U9_GA(x1, x2, x3, x4, x5) = U9_GA(x1, x2, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (285) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 5 SCCs with 28 less nodes. ---------------------------------------- (286) Complex Obligation (AND) ---------------------------------------- (287) Obligation: Pi DP problem: The TRS P consists of the following rules: PA_IN_AAA(X1, X2, X3) -> PA_IN_AAA(X2, X1, X3) PA_IN_AAA(X1, X2, X3) -> PA_IN_AAA(X2, X4, X3) The TRS R consists of the following rules: gcdcC_in_gaa(X1, 0, X1) -> gcdcC_out_gaa(X1, 0, X1) gcdcC_in_gaa(X1, X2, X2) -> gcdcC_out_gaa(X1, X2, X2) gcdcC_in_aaa(X1, 0, X1) -> gcdcC_out_aaa(X1, 0, X1) gcdcC_in_aaa(X1, X2, X2) -> gcdcC_out_aaa(X1, X2, X2) gcdcD_in_aaa(X1, X2, X2) -> gcdcD_out_aaa(X1, X2, X2) gcdcD_in_gga(X1, X2, X2) -> gcdcD_out_gga(X1, X2, X2) The argument filtering Pi contains the following mapping: 0 = 0 gcdcC_in_gaa(x1, x2, x3) = gcdcC_in_gaa(x1) gcdcC_out_gaa(x1, x2, x3) = gcdcC_out_gaa(x1) gcdcC_in_aaa(x1, x2, x3) = gcdcC_in_aaa gcdcC_out_aaa(x1, x2, x3) = gcdcC_out_aaa gcdcD_in_aaa(x1, x2, x3) = gcdcD_in_aaa gcdcD_out_aaa(x1, x2, x3) = gcdcD_out_aaa gcdcD_in_gga(x1, x2, x3) = gcdcD_in_gga(x1, x2) gcdcD_out_gga(x1, x2, x3) = gcdcD_out_gga(x1, x2, x3) PA_IN_AAA(x1, x2, x3) = PA_IN_AAA We have to consider all (P,R,Pi)-chains ---------------------------------------- (288) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (289) Obligation: Pi DP problem: The TRS P consists of the following rules: PA_IN_AAA(X1, X2, X3) -> PA_IN_AAA(X2, X1, X3) PA_IN_AAA(X1, X2, X3) -> PA_IN_AAA(X2, X4, X3) R is empty. The argument filtering Pi contains the following mapping: PA_IN_AAA(x1, x2, x3) = PA_IN_AAA We have to consider all (P,R,Pi)-chains ---------------------------------------- (290) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (291) Obligation: Q DP problem: The TRS P consists of the following rules: PA_IN_AAA -> PA_IN_AAA R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (292) 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 = PA_IN_AAA evaluates to t =PA_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 PA_IN_AAA to PA_IN_AAA. ---------------------------------------- (293) NO ---------------------------------------- (294) Obligation: Pi DP problem: The TRS P consists of the following rules: REDUCEB_IN_AA(frac(X1, X2), frac(X3, X4)) -> U6_AA(X1, X2, X3, X4, gcdcC_in_aaa(X2, X5, X6)) U6_AA(X1, X2, X3, X4, gcdcC_out_aaa(X2, X5, X6)) -> REDUCEB_IN_AA(frac(//(X1, X6), //(X2, X6)), frac(X7, X8)) REDUCEB_IN_AA(frac(X1, X2), frac(X3, X4)) -> U8_AA(X1, X2, X3, X4, gcdcD_in_aaa(X2, X1, X5)) U8_AA(X1, X2, X3, X4, gcdcD_out_aaa(X2, X1, X5)) -> REDUCEB_IN_AA(frac(//(X1, X5), //(X2, X5)), frac(X6, X7)) The TRS R consists of the following rules: gcdcC_in_gaa(X1, 0, X1) -> gcdcC_out_gaa(X1, 0, X1) gcdcC_in_gaa(X1, X2, X2) -> gcdcC_out_gaa(X1, X2, X2) gcdcC_in_aaa(X1, 0, X1) -> gcdcC_out_aaa(X1, 0, X1) gcdcC_in_aaa(X1, X2, X2) -> gcdcC_out_aaa(X1, X2, X2) gcdcD_in_aaa(X1, X2, X2) -> gcdcD_out_aaa(X1, X2, X2) gcdcD_in_gga(X1, X2, X2) -> gcdcD_out_gga(X1, X2, X2) The argument filtering Pi contains the following mapping: frac(x1, x2) = frac(x1, x2) 0 = 0 gcdcC_in_gaa(x1, x2, x3) = gcdcC_in_gaa(x1) gcdcC_out_gaa(x1, x2, x3) = gcdcC_out_gaa(x1) gcdcC_in_aaa(x1, x2, x3) = gcdcC_in_aaa gcdcC_out_aaa(x1, x2, x3) = gcdcC_out_aaa gcdcD_in_aaa(x1, x2, x3) = gcdcD_in_aaa gcdcD_out_aaa(x1, x2, x3) = gcdcD_out_aaa gcdcD_in_gga(x1, x2, x3) = gcdcD_in_gga(x1, x2) gcdcD_out_gga(x1, x2, x3) = gcdcD_out_gga(x1, x2, x3) //(x1, x2) = //(x1, x2) REDUCEB_IN_AA(x1, x2) = REDUCEB_IN_AA U6_AA(x1, x2, x3, x4, x5) = U6_AA(x5) U8_AA(x1, x2, x3, x4, x5) = U8_AA(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (295) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (296) Obligation: Pi DP problem: The TRS P consists of the following rules: REDUCEB_IN_AA(frac(X1, X2), frac(X3, X4)) -> U6_AA(X1, X2, X3, X4, gcdcC_in_aaa(X2, X5, X6)) U6_AA(X1, X2, X3, X4, gcdcC_out_aaa(X2, X5, X6)) -> REDUCEB_IN_AA(frac(//(X1, X6), //(X2, X6)), frac(X7, X8)) REDUCEB_IN_AA(frac(X1, X2), frac(X3, X4)) -> U8_AA(X1, X2, X3, X4, gcdcD_in_aaa(X2, X1, X5)) U8_AA(X1, X2, X3, X4, gcdcD_out_aaa(X2, X1, X5)) -> REDUCEB_IN_AA(frac(//(X1, X5), //(X2, X5)), frac(X6, X7)) The TRS R consists of the following rules: gcdcC_in_aaa(X1, 0, X1) -> gcdcC_out_aaa(X1, 0, X1) gcdcC_in_aaa(X1, X2, X2) -> gcdcC_out_aaa(X1, X2, X2) gcdcD_in_aaa(X1, X2, X2) -> gcdcD_out_aaa(X1, X2, X2) The argument filtering Pi contains the following mapping: frac(x1, x2) = frac(x1, x2) 0 = 0 gcdcC_in_aaa(x1, x2, x3) = gcdcC_in_aaa gcdcC_out_aaa(x1, x2, x3) = gcdcC_out_aaa gcdcD_in_aaa(x1, x2, x3) = gcdcD_in_aaa gcdcD_out_aaa(x1, x2, x3) = gcdcD_out_aaa //(x1, x2) = //(x1, x2) REDUCEB_IN_AA(x1, x2) = REDUCEB_IN_AA U6_AA(x1, x2, x3, x4, x5) = U6_AA(x5) U8_AA(x1, x2, x3, x4, x5) = U8_AA(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (297) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (298) Obligation: Q DP problem: The TRS P consists of the following rules: REDUCEB_IN_AA -> U6_AA(gcdcC_in_aaa) U6_AA(gcdcC_out_aaa) -> REDUCEB_IN_AA REDUCEB_IN_AA -> U8_AA(gcdcD_in_aaa) U8_AA(gcdcD_out_aaa) -> REDUCEB_IN_AA The TRS R consists of the following rules: gcdcC_in_aaa -> gcdcC_out_aaa gcdcD_in_aaa -> gcdcD_out_aaa The set Q consists of the following terms: gcdcC_in_aaa gcdcD_in_aaa We have to consider all (P,Q,R)-chains. ---------------------------------------- (299) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule REDUCEB_IN_AA -> U6_AA(gcdcC_in_aaa) at position [0] we obtained the following new rules [LPAR04]: (REDUCEB_IN_AA -> U6_AA(gcdcC_out_aaa),REDUCEB_IN_AA -> U6_AA(gcdcC_out_aaa)) ---------------------------------------- (300) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AA(gcdcC_out_aaa) -> REDUCEB_IN_AA REDUCEB_IN_AA -> U8_AA(gcdcD_in_aaa) U8_AA(gcdcD_out_aaa) -> REDUCEB_IN_AA REDUCEB_IN_AA -> U6_AA(gcdcC_out_aaa) The TRS R consists of the following rules: gcdcC_in_aaa -> gcdcC_out_aaa gcdcD_in_aaa -> gcdcD_out_aaa The set Q consists of the following terms: gcdcC_in_aaa gcdcD_in_aaa We have to consider all (P,Q,R)-chains. ---------------------------------------- (301) 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. ---------------------------------------- (302) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AA(gcdcC_out_aaa) -> REDUCEB_IN_AA REDUCEB_IN_AA -> U8_AA(gcdcD_in_aaa) U8_AA(gcdcD_out_aaa) -> REDUCEB_IN_AA REDUCEB_IN_AA -> U6_AA(gcdcC_out_aaa) The TRS R consists of the following rules: gcdcD_in_aaa -> gcdcD_out_aaa The set Q consists of the following terms: gcdcC_in_aaa gcdcD_in_aaa We have to consider all (P,Q,R)-chains. ---------------------------------------- (303) 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]. gcdcC_in_aaa ---------------------------------------- (304) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AA(gcdcC_out_aaa) -> REDUCEB_IN_AA REDUCEB_IN_AA -> U8_AA(gcdcD_in_aaa) U8_AA(gcdcD_out_aaa) -> REDUCEB_IN_AA REDUCEB_IN_AA -> U6_AA(gcdcC_out_aaa) The TRS R consists of the following rules: gcdcD_in_aaa -> gcdcD_out_aaa The set Q consists of the following terms: gcdcD_in_aaa We have to consider all (P,Q,R)-chains. ---------------------------------------- (305) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule REDUCEB_IN_AA -> U8_AA(gcdcD_in_aaa) at position [0] we obtained the following new rules [LPAR04]: (REDUCEB_IN_AA -> U8_AA(gcdcD_out_aaa),REDUCEB_IN_AA -> U8_AA(gcdcD_out_aaa)) ---------------------------------------- (306) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AA(gcdcC_out_aaa) -> REDUCEB_IN_AA U8_AA(gcdcD_out_aaa) -> REDUCEB_IN_AA REDUCEB_IN_AA -> U6_AA(gcdcC_out_aaa) REDUCEB_IN_AA -> U8_AA(gcdcD_out_aaa) The TRS R consists of the following rules: gcdcD_in_aaa -> gcdcD_out_aaa The set Q consists of the following terms: gcdcD_in_aaa We have to consider all (P,Q,R)-chains. ---------------------------------------- (307) 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. ---------------------------------------- (308) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AA(gcdcC_out_aaa) -> REDUCEB_IN_AA U8_AA(gcdcD_out_aaa) -> REDUCEB_IN_AA REDUCEB_IN_AA -> U6_AA(gcdcC_out_aaa) REDUCEB_IN_AA -> U8_AA(gcdcD_out_aaa) R is empty. The set Q consists of the following terms: gcdcD_in_aaa We have to consider all (P,Q,R)-chains. ---------------------------------------- (309) 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]. gcdcD_in_aaa ---------------------------------------- (310) Obligation: Q DP problem: The TRS P consists of the following rules: U6_AA(gcdcC_out_aaa) -> REDUCEB_IN_AA U8_AA(gcdcD_out_aaa) -> REDUCEB_IN_AA REDUCEB_IN_AA -> U6_AA(gcdcC_out_aaa) REDUCEB_IN_AA -> U8_AA(gcdcD_out_aaa) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (311) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by narrowing to the left: s = REDUCEB_IN_AA evaluates to t =REDUCEB_IN_AA Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence REDUCEB_IN_AA -> U6_AA(gcdcC_out_aaa) with rule REDUCEB_IN_AA -> U6_AA(gcdcC_out_aaa) at position [] and matcher [ ] U6_AA(gcdcC_out_aaa) -> REDUCEB_IN_AA with rule U6_AA(gcdcC_out_aaa) -> REDUCEB_IN_AA Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence All these steps are and every following step will be a correct step w.r.t to Q. ---------------------------------------- (312) NO ---------------------------------------- (313) Obligation: Pi DP problem: The TRS P consists of the following rules: PA_IN_GAA(X1, X2, X3) -> PA_IN_AGA(X2, X1, X3) PA_IN_AGA(X1, X2, X3) -> PA_IN_GAA(X2, X4, X3) PA_IN_AGA(X1, X2, X3) -> PA_IN_GAA(X2, X1, X3) The TRS R consists of the following rules: gcdcC_in_gaa(X1, 0, X1) -> gcdcC_out_gaa(X1, 0, X1) gcdcC_in_gaa(X1, X2, X2) -> gcdcC_out_gaa(X1, X2, X2) gcdcC_in_aaa(X1, 0, X1) -> gcdcC_out_aaa(X1, 0, X1) gcdcC_in_aaa(X1, X2, X2) -> gcdcC_out_aaa(X1, X2, X2) gcdcD_in_aaa(X1, X2, X2) -> gcdcD_out_aaa(X1, X2, X2) gcdcD_in_gga(X1, X2, X2) -> gcdcD_out_gga(X1, X2, X2) The argument filtering Pi contains the following mapping: 0 = 0 gcdcC_in_gaa(x1, x2, x3) = gcdcC_in_gaa(x1) gcdcC_out_gaa(x1, x2, x3) = gcdcC_out_gaa(x1) gcdcC_in_aaa(x1, x2, x3) = gcdcC_in_aaa gcdcC_out_aaa(x1, x2, x3) = gcdcC_out_aaa gcdcD_in_aaa(x1, x2, x3) = gcdcD_in_aaa gcdcD_out_aaa(x1, x2, x3) = gcdcD_out_aaa gcdcD_in_gga(x1, x2, x3) = gcdcD_in_gga(x1, x2) gcdcD_out_gga(x1, x2, x3) = gcdcD_out_gga(x1, x2, x3) PA_IN_GAA(x1, x2, x3) = PA_IN_GAA(x1) PA_IN_AGA(x1, x2, x3) = PA_IN_AGA(x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (314) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (315) Obligation: Pi DP problem: The TRS P consists of the following rules: PA_IN_GAA(X1, X2, X3) -> PA_IN_AGA(X2, X1, X3) PA_IN_AGA(X1, X2, X3) -> PA_IN_GAA(X2, X4, X3) PA_IN_AGA(X1, X2, X3) -> PA_IN_GAA(X2, X1, X3) R is empty. The argument filtering Pi contains the following mapping: PA_IN_GAA(x1, x2, x3) = PA_IN_GAA(x1) PA_IN_AGA(x1, x2, x3) = PA_IN_AGA(x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (316) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (317) Obligation: Q DP problem: The TRS P consists of the following rules: PA_IN_GAA(X1) -> PA_IN_AGA(X1) PA_IN_AGA(X2) -> PA_IN_GAA(X2) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (318) NonTerminationLoopProof (COMPLETE) We used the non-termination processor [FROCOS05] to show that the DP problem is infinite. Found a loop by narrowing to the left: s = PA_IN_AGA(X2) evaluates to t =PA_IN_AGA(X2) Thus s starts an infinite chain as s semiunifies with t with the following substitutions: * Matcher: [ ] * Semiunifier: [ ] -------------------------------------------------------------------------------- Rewriting sequence PA_IN_AGA(X2) -> PA_IN_GAA(X2) with rule PA_IN_AGA(X2') -> PA_IN_GAA(X2') at position [] and matcher [X2' / X2] PA_IN_GAA(X2) -> PA_IN_AGA(X2) with rule PA_IN_GAA(X1) -> PA_IN_AGA(X1) Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence All these steps are and every following step will be a correct step w.r.t to Q. ---------------------------------------- (319) NO ---------------------------------------- (320) Obligation: Pi DP problem: The TRS P consists of the following rules: PA_IN_GGA(X1, X2, X3) -> PA_IN_GGA(X2, X1, X3) The TRS R consists of the following rules: gcdcC_in_gaa(X1, 0, X1) -> gcdcC_out_gaa(X1, 0, X1) gcdcC_in_gaa(X1, X2, X2) -> gcdcC_out_gaa(X1, X2, X2) gcdcC_in_aaa(X1, 0, X1) -> gcdcC_out_aaa(X1, 0, X1) gcdcC_in_aaa(X1, X2, X2) -> gcdcC_out_aaa(X1, X2, X2) gcdcD_in_aaa(X1, X2, X2) -> gcdcD_out_aaa(X1, X2, X2) gcdcD_in_gga(X1, X2, X2) -> gcdcD_out_gga(X1, X2, X2) The argument filtering Pi contains the following mapping: 0 = 0 gcdcC_in_gaa(x1, x2, x3) = gcdcC_in_gaa(x1) gcdcC_out_gaa(x1, x2, x3) = gcdcC_out_gaa(x1) gcdcC_in_aaa(x1, x2, x3) = gcdcC_in_aaa gcdcC_out_aaa(x1, x2, x3) = gcdcC_out_aaa gcdcD_in_aaa(x1, x2, x3) = gcdcD_in_aaa gcdcD_out_aaa(x1, x2, x3) = gcdcD_out_aaa gcdcD_in_gga(x1, x2, x3) = gcdcD_in_gga(x1, x2) gcdcD_out_gga(x1, x2, x3) = gcdcD_out_gga(x1, x2, x3) PA_IN_GGA(x1, x2, x3) = PA_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (321) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (322) Obligation: Pi DP problem: The TRS P consists of the following rules: PA_IN_GGA(X1, X2, X3) -> PA_IN_GGA(X2, X1, X3) R is empty. The argument filtering Pi contains the following mapping: PA_IN_GGA(x1, x2, x3) = PA_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (323) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (324) Obligation: Q DP problem: The TRS P consists of the following rules: PA_IN_GGA(X1, X2) -> PA_IN_GGA(X2, X1) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (325) Obligation: Pi DP problem: The TRS P consists of the following rules: REDUCEB_IN_GA(frac(X1, X2), frac(X3, X4)) -> U8_GA(X1, X2, X3, X4, gcdcD_in_gga(X2, X1, X5)) U8_GA(X1, X2, X3, X4, gcdcD_out_gga(X2, X1, X5)) -> REDUCEB_IN_GA(frac(//(X1, X5), //(X2, X5)), frac(X6, X7)) The TRS R consists of the following rules: gcdcC_in_gaa(X1, 0, X1) -> gcdcC_out_gaa(X1, 0, X1) gcdcC_in_gaa(X1, X2, X2) -> gcdcC_out_gaa(X1, X2, X2) gcdcC_in_aaa(X1, 0, X1) -> gcdcC_out_aaa(X1, 0, X1) gcdcC_in_aaa(X1, X2, X2) -> gcdcC_out_aaa(X1, X2, X2) gcdcD_in_aaa(X1, X2, X2) -> gcdcD_out_aaa(X1, X2, X2) gcdcD_in_gga(X1, X2, X2) -> gcdcD_out_gga(X1, X2, X2) The argument filtering Pi contains the following mapping: frac(x1, x2) = frac(x1, x2) 0 = 0 gcdcC_in_gaa(x1, x2, x3) = gcdcC_in_gaa(x1) gcdcC_out_gaa(x1, x2, x3) = gcdcC_out_gaa(x1) gcdcC_in_aaa(x1, x2, x3) = gcdcC_in_aaa gcdcC_out_aaa(x1, x2, x3) = gcdcC_out_aaa gcdcD_in_aaa(x1, x2, x3) = gcdcD_in_aaa gcdcD_out_aaa(x1, x2, x3) = gcdcD_out_aaa gcdcD_in_gga(x1, x2, x3) = gcdcD_in_gga(x1, x2) gcdcD_out_gga(x1, x2, x3) = gcdcD_out_gga(x1, x2, x3) //(x1, x2) = //(x1, x2) REDUCEB_IN_GA(x1, x2) = REDUCEB_IN_GA(x1) U8_GA(x1, x2, x3, x4, x5) = U8_GA(x1, x2, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (326) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (327) Obligation: Pi DP problem: The TRS P consists of the following rules: REDUCEB_IN_GA(frac(X1, X2), frac(X3, X4)) -> U8_GA(X1, X2, X3, X4, gcdcD_in_gga(X2, X1, X5)) U8_GA(X1, X2, X3, X4, gcdcD_out_gga(X2, X1, X5)) -> REDUCEB_IN_GA(frac(//(X1, X5), //(X2, X5)), frac(X6, X7)) The TRS R consists of the following rules: gcdcD_in_gga(X1, X2, X2) -> gcdcD_out_gga(X1, X2, X2) The argument filtering Pi contains the following mapping: frac(x1, x2) = frac(x1, x2) gcdcD_in_gga(x1, x2, x3) = gcdcD_in_gga(x1, x2) gcdcD_out_gga(x1, x2, x3) = gcdcD_out_gga(x1, x2, x3) //(x1, x2) = //(x1, x2) REDUCEB_IN_GA(x1, x2) = REDUCEB_IN_GA(x1) U8_GA(x1, x2, x3, x4, x5) = U8_GA(x1, x2, x5) We have to consider all (P,R,Pi)-chains