/export/starexec/sandbox2/solver/bin/starexec_run_standard /export/starexec/sandbox2/benchmark/theBenchmark.pl /export/starexec/sandbox2/output/output_files -------------------------------------------------------------------------------- MAYBE proof of /export/starexec/sandbox2/benchmark/theBenchmark.pl # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty Left Termination of the query pattern main(g,g) w.r.t. the given Prolog program could not be shown: (0) Prolog (1) CutEliminatorProof [SOUND, 0 ms] (2) Prolog (3) UndefinedPredicateHandlerProof [SOUND, 0 ms] (4) Prolog (5) PrologToPiTRSProof [SOUND, 0 ms] (6) PiTRS (7) DependencyPairsProof [EQUIVALENT, 90 ms] (8) PiDP (9) DependencyGraphProof [EQUIVALENT, 0 ms] (10) AND (11) PiDP (12) UsableRulesProof [EQUIVALENT, 0 ms] (13) PiDP (14) PiDPToQDPProof [SOUND, 2 ms] (15) QDP (16) TransformationProof [EQUIVALENT, 0 ms] (17) QDP (18) TransformationProof [EQUIVALENT, 0 ms] (19) QDP (20) TransformationProof [EQUIVALENT, 0 ms] (21) QDP (22) TransformationProof [EQUIVALENT, 0 ms] (23) QDP (24) PiDP (25) UsableRulesProof [EQUIVALENT, 0 ms] (26) PiDP (27) PrologToPiTRSProof [SOUND, 0 ms] (28) PiTRS (29) DependencyPairsProof [EQUIVALENT, 131 ms] (30) PiDP (31) DependencyGraphProof [EQUIVALENT, 0 ms] (32) AND (33) PiDP (34) UsableRulesProof [EQUIVALENT, 0 ms] (35) PiDP (36) PiDPToQDPProof [SOUND, 10 ms] (37) QDP (38) TransformationProof [EQUIVALENT, 0 ms] (39) QDP (40) TransformationProof [EQUIVALENT, 0 ms] (41) QDP (42) TransformationProof [EQUIVALENT, 0 ms] (43) QDP (44) PiDP (45) UsableRulesProof [EQUIVALENT, 0 ms] (46) PiDP (47) IntegerArithmeticTransformerProof [SOUND, 0 ms] (48) Prolog (49) CutEliminatorProof [SOUND, 0 ms] (50) Prolog (51) UnifyTransformerProof [EQUIVALENT, 0 ms] (52) Prolog (53) OrTransformerProof [EQUIVALENT, 0 ms] (54) Prolog (55) PrologToPiTRSProof [SOUND, 52 ms] (56) PiTRS (57) DependencyPairsProof [EQUIVALENT, 559 ms] (58) PiDP (59) DependencyGraphProof [EQUIVALENT, 0 ms] (60) AND (61) PiDP (62) UsableRulesProof [EQUIVALENT, 0 ms] (63) PiDP (64) PiDPToQDPProof [EQUIVALENT, 0 ms] (65) QDP (66) QDPSizeChangeProof [EQUIVALENT, 0 ms] (67) YES (68) PiDP (69) UsableRulesProof [EQUIVALENT, 0 ms] (70) PiDP (71) PiDPToQDPProof [EQUIVALENT, 0 ms] (72) QDP (73) QDPSizeChangeProof [EQUIVALENT, 0 ms] (74) YES (75) PiDP (76) UsableRulesProof [EQUIVALENT, 0 ms] (77) PiDP (78) PiDPToQDPProof [EQUIVALENT, 0 ms] (79) QDP (80) PiDP (81) UsableRulesProof [EQUIVALENT, 0 ms] (82) PiDP (83) PiDP (84) UsableRulesProof [EQUIVALENT, 0 ms] (85) PiDP (86) PiDP (87) UsableRulesProof [EQUIVALENT, 0 ms] (88) PiDP (89) PiDP (90) UsableRulesProof [EQUIVALENT, 0 ms] (91) PiDP (92) PiDP (93) UsableRulesProof [EQUIVALENT, 0 ms] (94) PiDP (95) PrologToPiTRSProof [SOUND, 46 ms] (96) PiTRS (97) DependencyPairsProof [EQUIVALENT, 539 ms] (98) PiDP (99) DependencyGraphProof [EQUIVALENT, 9 ms] (100) AND (101) PiDP (102) UsableRulesProof [EQUIVALENT, 0 ms] (103) PiDP (104) PiDPToQDPProof [EQUIVALENT, 0 ms] (105) QDP (106) PiDP (107) UsableRulesProof [EQUIVALENT, 0 ms] (108) PiDP (109) PiDP (110) UsableRulesProof [EQUIVALENT, 0 ms] (111) PiDP (112) PiDP (113) UsableRulesProof [EQUIVALENT, 0 ms] (114) PiDP (115) PiDP (116) UsableRulesProof [EQUIVALENT, 0 ms] (117) PiDP (118) PiDP (119) UsableRulesProof [EQUIVALENT, 0 ms] (120) PiDP (121) PiDP (122) UsableRulesProof [EQUIVALENT, 0 ms] (123) PiDP (124) PiDP (125) UsableRulesProof [EQUIVALENT, 0 ms] (126) PiDP (127) PrologToDTProblemTransformerProof [SOUND, 50 ms] (128) TRIPLES (129) TriplesToPiDPProof [SOUND, 6 ms] (130) PiDP (131) DependencyGraphProof [EQUIVALENT, 0 ms] (132) AND (133) PiDP (134) UsableRulesProof [EQUIVALENT, 0 ms] (135) PiDP (136) PiDPToQDPProof [SOUND, 0 ms] (137) QDP (138) PiDP (139) UsableRulesProof [EQUIVALENT, 0 ms] (140) PiDP (141) PrologToIRSwTTransformerProof [SOUND, 87 ms] (142) IRSwT (143) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms] (144) IRSwT (145) IntTRSCompressionProof [EQUIVALENT, 16 ms] (146) IRSwT (147) IRSFormatTransformerProof [EQUIVALENT, 0 ms] (148) IRSwT (149) IRSwTTerminationDigraphProof [EQUIVALENT, 37 ms] (150) AND (151) IRSwT (152) IntTRSCompressionProof [EQUIVALENT, 0 ms] (153) IRSwT (154) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (155) IRSwT (156) FilterProof [EQUIVALENT, 0 ms] (157) IntTRS (158) IntTRSNonPeriodicNontermProof [COMPLETE, 3 ms] (159) NO (160) IRSwT (161) IntTRSCompressionProof [EQUIVALENT, 0 ms] (162) IRSwT (163) IntTRSUnneededArgumentFilterProof [EQUIVALENT, 0 ms] (164) IRSwT (165) FilterProof [EQUIVALENT, 0 ms] (166) IntTRS (167) IntTRSPeriodicNontermProof [COMPLETE, 6 ms] (168) NO ---------------------------------------- (0) Obligation: Clauses: main(M, N) :- ','(>=(M, 0), ','(=<(M, 3), ','(>=(N, 0), ','(=<(N, 23), ackermann(M, N, X1))))). ackermann(M, N, Ret) :- ','(=:=(M, 0), ','(!, is(Ret, +(N, 1)))). ackermann(M, N, Ret) :- ','(=:=(N, 0), ','(!, ','(is(M1, -(M, 1)), ackermann(M1, 1, Ret)))). ackermann(M, N, Ret) :- ','(!, ','(is(N1, -(N, 1)), ','(ackermann(M, N1, Ret1), ','(is(M1, -(M, 1)), ','(ackermann(M1, Ret1, Ret2), is(Ret, Ret2)))))). Query: main(g,g) ---------------------------------------- (1) CutEliminatorProof (SOUND) Eliminated all cuts by simply ignoring them[PROLOG]. ---------------------------------------- (2) Obligation: Clauses: main(M, N) :- ','(>=(M, 0), ','(=<(M, 3), ','(>=(N, 0), ','(=<(N, 23), ackermann(M, N, X1))))). ackermann(M, N, Ret) :- ','(=:=(M, 0), is(Ret, +(N, 1))). ackermann(M, N, Ret) :- ','(=:=(N, 0), ','(is(M1, -(M, 1)), ackermann(M1, 1, Ret))). ackermann(M, N, Ret) :- ','(is(N1, -(N, 1)), ','(ackermann(M, N1, Ret1), ','(is(M1, -(M, 1)), ','(ackermann(M1, Ret1, Ret2), is(Ret, Ret2))))). Query: main(g,g) ---------------------------------------- (3) UndefinedPredicateHandlerProof (SOUND) Added facts for all undefined predicates [PROLOG]. ---------------------------------------- (4) Obligation: Clauses: main(M, N) :- ','(>=(M, 0), ','(=<(M, 3), ','(>=(N, 0), ','(=<(N, 23), ackermann(M, N, X1))))). ackermann(M, N, Ret) :- ','(=:=(M, 0), is(Ret, +(N, 1))). ackermann(M, N, Ret) :- ','(=:=(N, 0), ','(is(M1, -(M, 1)), ackermann(M1, 1, Ret))). ackermann(M, N, Ret) :- ','(is(N1, -(N, 1)), ','(ackermann(M, N1, Ret1), ','(is(M1, -(M, 1)), ','(ackermann(M1, Ret1, Ret2), is(Ret, Ret2))))). >=(X0, X1). =<(X0, X1). =:=(X0, X1). is(X0, X1). Query: main(g,g) ---------------------------------------- (5) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: main_in_2: (b,b) ackermann_in_3: (b,b,f) (f,b,f) (f,f,f) (b,f,f) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, >=_in_gg(M, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U1_gg(M, N, >=_out_gg(M, 0)) -> U2_gg(M, N, =<_in_gg(M, 3)) =<_in_gg(X0, X1) -> =<_out_gg(X0, X1) U2_gg(M, N, =<_out_gg(M, 3)) -> U3_gg(M, N, >=_in_gg(N, 0)) U3_gg(M, N, >=_out_gg(N, 0)) -> U4_gg(M, N, =<_in_gg(N, 23)) U4_gg(M, N, =<_out_gg(N, 23)) -> U5_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U6_gga(M, N, Ret, =:=_in_gg(M, 0)) =:=_in_gg(X0, X1) -> =:=_out_gg(X0, X1) U6_gga(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gga(M, N, Ret, is_in_ag(Ret, +(N, 1))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U7_gga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U8_gga(M, N, Ret, =:=_in_gg(N, 0)) U8_gga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_gga(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gga(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U6_aga(M, N, Ret, =:=_in_ag(M, 0)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U6_aga(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aga(M, N, Ret, is_in_ag(Ret, +(N, 1))) U7_aga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_aga(M, N, Ret) ackermann_in_aga(M, N, Ret) -> U8_aga(M, N, Ret, =:=_in_gg(N, 0)) U8_aga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_aga(M, N, Ret, is_in_aa(M1, -(M, 1))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U9_aga(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U11_aga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_aga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_aga(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) ackermann_in_aaa(M, N, Ret) -> U6_aaa(M, N, Ret, =:=_in_ag(M, 0)) U6_aaa(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_aaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U8_aaa(M, N, Ret, =:=_in_ag(N, 0)) U8_aaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_aaa(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_aaa(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_aaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U11_aaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_aaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_aaa(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_aaa(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aaa(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aaa(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aaa(M, N, Ret) U12_aga(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aga(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aga(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aga(M, N, Ret) U10_aga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aga(M, N, Ret) U10_gga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U11_gga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_gga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_gga(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) ackermann_in_gaa(M, N, Ret) -> U6_gaa(M, N, Ret, =:=_in_gg(M, 0)) U6_gaa(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_gaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U8_gaa(M, N, Ret, =:=_in_ag(N, 0)) U8_gaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_gaa(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gaa(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_gaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U11_gaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_gaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_gaa(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U12_gaa(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gaa(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gaa(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gaa(M, N, Ret) U12_gga(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gga(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gga(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U5_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg 0 = 0 U2_gg(x1, x2, x3) = U2_gg(x1, x2, x3) =<_in_gg(x1, x2) = =<_in_gg(x1, x2) =<_out_gg(x1, x2) = =<_out_gg 3 = 3 U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) 23 = 23 U5_gg(x1, x2, x3) = U5_gg(x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U6_gga(x1, x2, x3, x4) = U6_gga(x2, x4) =:=_in_gg(x1, x2) = =:=_in_gg(x1, x2) =:=_out_gg(x1, x2) = =:=_out_gg U7_gga(x1, x2, x3, x4) = U7_gga(x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag +(x1, x2) = +(x1, x2) 1 = 1 ackermann_out_gga(x1, x2, x3) = ackermann_out_gga U8_gga(x1, x2, x3, x4) = U8_gga(x1, x4) U9_gga(x1, x2, x3, x4) = U9_gga(x4) -(x1, x2) = -(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x4) ackermann_in_aga(x1, x2, x3) = ackermann_in_aga(x2) U6_aga(x1, x2, x3, x4) = U6_aga(x2, x4) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag U7_aga(x1, x2, x3, x4) = U7_aga(x4) ackermann_out_aga(x1, x2, x3) = ackermann_out_aga U8_aga(x1, x2, x3, x4) = U8_aga(x4) U9_aga(x1, x2, x3, x4) = U9_aga(x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U10_aga(x1, x2, x3, x4) = U10_aga(x4) U11_aga(x1, x2, x3, x4) = U11_aga(x4) U12_aga(x1, x2, x3, x4, x5) = U12_aga(x5) ackermann_in_aaa(x1, x2, x3) = ackermann_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) ackermann_out_aaa(x1, x2, x3) = ackermann_out_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) U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4, x5) = U12_aaa(x5) U13_aaa(x1, x2, x3, x4, x5) = U13_aaa(x5) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U15_aaa(x1, x2, x3, x4) = U15_aaa(x4) U13_aga(x1, x2, x3, x4, x5) = U13_aga(x5) U14_aga(x1, x2, x3, x4) = U14_aga(x4) U15_aga(x1, x2, x3, x4) = U15_aga(x4) U11_gga(x1, x2, x3, x4) = U11_gga(x1, x4) U12_gga(x1, x2, x3, x4, x5) = U12_gga(x1, x5) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x4) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) U11_gaa(x1, x2, x3, x4) = U11_gaa(x1, x4) U12_gaa(x1, x2, x3, x4, x5) = U12_gaa(x1, x5) U13_gaa(x1, x2, x3, x4, x5) = U13_gaa(x5) U14_gaa(x1, x2, x3, x4) = U14_gaa(x4) U15_gaa(x1, x2, x3, x4) = U15_gaa(x4) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x5) U14_gga(x1, x2, x3, x4) = U14_gga(x4) U15_gga(x1, x2, x3, x4) = U15_gga(x4) main_out_gg(x1, x2) = main_out_gg Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (6) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, >=_in_gg(M, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U1_gg(M, N, >=_out_gg(M, 0)) -> U2_gg(M, N, =<_in_gg(M, 3)) =<_in_gg(X0, X1) -> =<_out_gg(X0, X1) U2_gg(M, N, =<_out_gg(M, 3)) -> U3_gg(M, N, >=_in_gg(N, 0)) U3_gg(M, N, >=_out_gg(N, 0)) -> U4_gg(M, N, =<_in_gg(N, 23)) U4_gg(M, N, =<_out_gg(N, 23)) -> U5_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U6_gga(M, N, Ret, =:=_in_gg(M, 0)) =:=_in_gg(X0, X1) -> =:=_out_gg(X0, X1) U6_gga(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gga(M, N, Ret, is_in_ag(Ret, +(N, 1))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U7_gga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U8_gga(M, N, Ret, =:=_in_gg(N, 0)) U8_gga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_gga(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gga(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U6_aga(M, N, Ret, =:=_in_ag(M, 0)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U6_aga(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aga(M, N, Ret, is_in_ag(Ret, +(N, 1))) U7_aga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_aga(M, N, Ret) ackermann_in_aga(M, N, Ret) -> U8_aga(M, N, Ret, =:=_in_gg(N, 0)) U8_aga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_aga(M, N, Ret, is_in_aa(M1, -(M, 1))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U9_aga(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U11_aga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_aga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_aga(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) ackermann_in_aaa(M, N, Ret) -> U6_aaa(M, N, Ret, =:=_in_ag(M, 0)) U6_aaa(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_aaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U8_aaa(M, N, Ret, =:=_in_ag(N, 0)) U8_aaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_aaa(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_aaa(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_aaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U11_aaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_aaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_aaa(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_aaa(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aaa(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aaa(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aaa(M, N, Ret) U12_aga(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aga(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aga(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aga(M, N, Ret) U10_aga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aga(M, N, Ret) U10_gga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U11_gga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_gga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_gga(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) ackermann_in_gaa(M, N, Ret) -> U6_gaa(M, N, Ret, =:=_in_gg(M, 0)) U6_gaa(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_gaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U8_gaa(M, N, Ret, =:=_in_ag(N, 0)) U8_gaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_gaa(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gaa(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_gaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U11_gaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_gaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_gaa(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U12_gaa(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gaa(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gaa(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gaa(M, N, Ret) U12_gga(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gga(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gga(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U5_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg 0 = 0 U2_gg(x1, x2, x3) = U2_gg(x1, x2, x3) =<_in_gg(x1, x2) = =<_in_gg(x1, x2) =<_out_gg(x1, x2) = =<_out_gg 3 = 3 U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) 23 = 23 U5_gg(x1, x2, x3) = U5_gg(x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U6_gga(x1, x2, x3, x4) = U6_gga(x2, x4) =:=_in_gg(x1, x2) = =:=_in_gg(x1, x2) =:=_out_gg(x1, x2) = =:=_out_gg U7_gga(x1, x2, x3, x4) = U7_gga(x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag +(x1, x2) = +(x1, x2) 1 = 1 ackermann_out_gga(x1, x2, x3) = ackermann_out_gga U8_gga(x1, x2, x3, x4) = U8_gga(x1, x4) U9_gga(x1, x2, x3, x4) = U9_gga(x4) -(x1, x2) = -(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x4) ackermann_in_aga(x1, x2, x3) = ackermann_in_aga(x2) U6_aga(x1, x2, x3, x4) = U6_aga(x2, x4) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag U7_aga(x1, x2, x3, x4) = U7_aga(x4) ackermann_out_aga(x1, x2, x3) = ackermann_out_aga U8_aga(x1, x2, x3, x4) = U8_aga(x4) U9_aga(x1, x2, x3, x4) = U9_aga(x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U10_aga(x1, x2, x3, x4) = U10_aga(x4) U11_aga(x1, x2, x3, x4) = U11_aga(x4) U12_aga(x1, x2, x3, x4, x5) = U12_aga(x5) ackermann_in_aaa(x1, x2, x3) = ackermann_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) ackermann_out_aaa(x1, x2, x3) = ackermann_out_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) U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4, x5) = U12_aaa(x5) U13_aaa(x1, x2, x3, x4, x5) = U13_aaa(x5) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U15_aaa(x1, x2, x3, x4) = U15_aaa(x4) U13_aga(x1, x2, x3, x4, x5) = U13_aga(x5) U14_aga(x1, x2, x3, x4) = U14_aga(x4) U15_aga(x1, x2, x3, x4) = U15_aga(x4) U11_gga(x1, x2, x3, x4) = U11_gga(x1, x4) U12_gga(x1, x2, x3, x4, x5) = U12_gga(x1, x5) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x4) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) U11_gaa(x1, x2, x3, x4) = U11_gaa(x1, x4) U12_gaa(x1, x2, x3, x4, x5) = U12_gaa(x1, x5) U13_gaa(x1, x2, x3, x4, x5) = U13_gaa(x5) U14_gaa(x1, x2, x3, x4) = U14_gaa(x4) U15_gaa(x1, x2, x3, x4) = U15_gaa(x4) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x5) U14_gga(x1, x2, x3, x4) = U14_gga(x4) U15_gga(x1, x2, x3, x4) = U15_gga(x4) main_out_gg(x1, x2) = main_out_gg ---------------------------------------- (7) 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: MAIN_IN_GG(M, N) -> U1_GG(M, N, >=_in_gg(M, 0)) MAIN_IN_GG(M, N) -> >=_IN_GG(M, 0) U1_GG(M, N, >=_out_gg(M, 0)) -> U2_GG(M, N, =<_in_gg(M, 3)) U1_GG(M, N, >=_out_gg(M, 0)) -> =<_IN_GG(M, 3) U2_GG(M, N, =<_out_gg(M, 3)) -> U3_GG(M, N, >=_in_gg(N, 0)) U2_GG(M, N, =<_out_gg(M, 3)) -> >=_IN_GG(N, 0) U3_GG(M, N, >=_out_gg(N, 0)) -> U4_GG(M, N, =<_in_gg(N, 23)) U3_GG(M, N, >=_out_gg(N, 0)) -> =<_IN_GG(N, 23) U4_GG(M, N, =<_out_gg(N, 23)) -> U5_GG(M, N, ackermann_in_gga(M, N, X1)) U4_GG(M, N, =<_out_gg(N, 23)) -> ACKERMANN_IN_GGA(M, N, X1) ACKERMANN_IN_GGA(M, N, Ret) -> U6_GGA(M, N, Ret, =:=_in_gg(M, 0)) ACKERMANN_IN_GGA(M, N, Ret) -> =:=_IN_GG(M, 0) U6_GGA(M, N, Ret, =:=_out_gg(M, 0)) -> U7_GGA(M, N, Ret, is_in_ag(Ret, +(N, 1))) U6_GGA(M, N, Ret, =:=_out_gg(M, 0)) -> IS_IN_AG(Ret, +(N, 1)) ACKERMANN_IN_GGA(M, N, Ret) -> U8_GGA(M, N, Ret, =:=_in_gg(N, 0)) ACKERMANN_IN_GGA(M, N, Ret) -> =:=_IN_GG(N, 0) U8_GGA(M, N, Ret, =:=_out_gg(N, 0)) -> U9_GGA(M, N, Ret, is_in_ag(M1, -(M, 1))) U8_GGA(M, N, Ret, =:=_out_gg(N, 0)) -> IS_IN_AG(M1, -(M, 1)) U9_GGA(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_GGA(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U9_GGA(M, N, Ret, is_out_ag(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AGA(M, N, Ret) -> U6_AGA(M, N, Ret, =:=_in_ag(M, 0)) ACKERMANN_IN_AGA(M, N, Ret) -> =:=_IN_AG(M, 0) U6_AGA(M, N, Ret, =:=_out_ag(M, 0)) -> U7_AGA(M, N, Ret, is_in_ag(Ret, +(N, 1))) U6_AGA(M, N, Ret, =:=_out_ag(M, 0)) -> IS_IN_AG(Ret, +(N, 1)) ACKERMANN_IN_AGA(M, N, Ret) -> U8_AGA(M, N, Ret, =:=_in_gg(N, 0)) ACKERMANN_IN_AGA(M, N, Ret) -> =:=_IN_GG(N, 0) U8_AGA(M, N, Ret, =:=_out_gg(N, 0)) -> U9_AGA(M, N, Ret, is_in_aa(M1, -(M, 1))) U8_AGA(M, N, Ret, =:=_out_gg(N, 0)) -> IS_IN_AA(M1, -(M, 1)) U9_AGA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_AGA(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U9_AGA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AGA(M, N, Ret) -> U11_AGA(M, N, Ret, is_in_ag(N1, -(N, 1))) ACKERMANN_IN_AGA(M, N, Ret) -> IS_IN_AG(N1, -(N, 1)) U11_AGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_AGA(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U11_AGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> ACKERMANN_IN_AAA(M, N1, Ret1) ACKERMANN_IN_AAA(M, N, Ret) -> U6_AAA(M, N, Ret, =:=_in_ag(M, 0)) ACKERMANN_IN_AAA(M, N, Ret) -> =:=_IN_AG(M, 0) U6_AAA(M, N, Ret, =:=_out_ag(M, 0)) -> U7_AAA(M, N, Ret, is_in_aa(Ret, +(N, 1))) U6_AAA(M, N, Ret, =:=_out_ag(M, 0)) -> IS_IN_AA(Ret, +(N, 1)) ACKERMANN_IN_AAA(M, N, Ret) -> U8_AAA(M, N, Ret, =:=_in_ag(N, 0)) ACKERMANN_IN_AAA(M, N, Ret) -> =:=_IN_AG(N, 0) U8_AAA(M, N, Ret, =:=_out_ag(N, 0)) -> U9_AAA(M, N, Ret, is_in_aa(M1, -(M, 1))) U8_AAA(M, N, Ret, =:=_out_ag(N, 0)) -> IS_IN_AA(M1, -(M, 1)) U9_AAA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_AAA(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U9_AAA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AAA(M, N, Ret) -> U11_AAA(M, N, Ret, is_in_aa(N1, -(N, 1))) ACKERMANN_IN_AAA(M, N, Ret) -> IS_IN_AA(N1, -(N, 1)) U11_AAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_AAA(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U11_AAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> ACKERMANN_IN_AAA(M, N1, Ret1) U12_AAA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_AAA(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U12_AAA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> IS_IN_AA(M1, -(M, 1)) U13_AAA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_AAA(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U13_AAA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U14_AAA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_AAA(M, N, Ret, is_in_aa(Ret, Ret2)) U14_AAA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> IS_IN_AA(Ret, Ret2) U12_AGA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_AGA(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U12_AGA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> IS_IN_AA(M1, -(M, 1)) U13_AGA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_AGA(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U13_AGA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U14_AGA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_AGA(M, N, Ret, is_in_aa(Ret, Ret2)) U14_AGA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> IS_IN_AA(Ret, Ret2) ACKERMANN_IN_GGA(M, N, Ret) -> U11_GGA(M, N, Ret, is_in_ag(N1, -(N, 1))) ACKERMANN_IN_GGA(M, N, Ret) -> IS_IN_AG(N1, -(N, 1)) U11_GGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_GGA(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U11_GGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> ACKERMANN_IN_GAA(M, N1, Ret1) ACKERMANN_IN_GAA(M, N, Ret) -> U6_GAA(M, N, Ret, =:=_in_gg(M, 0)) ACKERMANN_IN_GAA(M, N, Ret) -> =:=_IN_GG(M, 0) U6_GAA(M, N, Ret, =:=_out_gg(M, 0)) -> U7_GAA(M, N, Ret, is_in_aa(Ret, +(N, 1))) U6_GAA(M, N, Ret, =:=_out_gg(M, 0)) -> IS_IN_AA(Ret, +(N, 1)) ACKERMANN_IN_GAA(M, N, Ret) -> U8_GAA(M, N, Ret, =:=_in_ag(N, 0)) ACKERMANN_IN_GAA(M, N, Ret) -> =:=_IN_AG(N, 0) U8_GAA(M, N, Ret, =:=_out_ag(N, 0)) -> U9_GAA(M, N, Ret, is_in_ag(M1, -(M, 1))) U8_GAA(M, N, Ret, =:=_out_ag(N, 0)) -> IS_IN_AG(M1, -(M, 1)) U9_GAA(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_GAA(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U9_GAA(M, N, Ret, is_out_ag(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_GAA(M, N, Ret) -> U11_GAA(M, N, Ret, is_in_aa(N1, -(N, 1))) ACKERMANN_IN_GAA(M, N, Ret) -> IS_IN_AA(N1, -(N, 1)) U11_GAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_GAA(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U11_GAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> ACKERMANN_IN_GAA(M, N1, Ret1) U12_GAA(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_GAA(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U12_GAA(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> IS_IN_AG(M1, -(M, 1)) U13_GAA(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_GAA(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U13_GAA(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U14_GAA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_GAA(M, N, Ret, is_in_aa(Ret, Ret2)) U14_GAA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> IS_IN_AA(Ret, Ret2) U12_GGA(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_GGA(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U12_GGA(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> IS_IN_AG(M1, -(M, 1)) U13_GGA(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_GGA(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U13_GGA(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U14_GGA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_GGA(M, N, Ret, is_in_aa(Ret, Ret2)) U14_GGA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> IS_IN_AA(Ret, Ret2) The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, >=_in_gg(M, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U1_gg(M, N, >=_out_gg(M, 0)) -> U2_gg(M, N, =<_in_gg(M, 3)) =<_in_gg(X0, X1) -> =<_out_gg(X0, X1) U2_gg(M, N, =<_out_gg(M, 3)) -> U3_gg(M, N, >=_in_gg(N, 0)) U3_gg(M, N, >=_out_gg(N, 0)) -> U4_gg(M, N, =<_in_gg(N, 23)) U4_gg(M, N, =<_out_gg(N, 23)) -> U5_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U6_gga(M, N, Ret, =:=_in_gg(M, 0)) =:=_in_gg(X0, X1) -> =:=_out_gg(X0, X1) U6_gga(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gga(M, N, Ret, is_in_ag(Ret, +(N, 1))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U7_gga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U8_gga(M, N, Ret, =:=_in_gg(N, 0)) U8_gga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_gga(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gga(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U6_aga(M, N, Ret, =:=_in_ag(M, 0)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U6_aga(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aga(M, N, Ret, is_in_ag(Ret, +(N, 1))) U7_aga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_aga(M, N, Ret) ackermann_in_aga(M, N, Ret) -> U8_aga(M, N, Ret, =:=_in_gg(N, 0)) U8_aga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_aga(M, N, Ret, is_in_aa(M1, -(M, 1))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U9_aga(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U11_aga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_aga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_aga(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) ackermann_in_aaa(M, N, Ret) -> U6_aaa(M, N, Ret, =:=_in_ag(M, 0)) U6_aaa(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_aaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U8_aaa(M, N, Ret, =:=_in_ag(N, 0)) U8_aaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_aaa(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_aaa(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_aaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U11_aaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_aaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_aaa(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_aaa(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aaa(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aaa(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aaa(M, N, Ret) U12_aga(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aga(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aga(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aga(M, N, Ret) U10_aga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aga(M, N, Ret) U10_gga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U11_gga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_gga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_gga(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) ackermann_in_gaa(M, N, Ret) -> U6_gaa(M, N, Ret, =:=_in_gg(M, 0)) U6_gaa(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_gaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U8_gaa(M, N, Ret, =:=_in_ag(N, 0)) U8_gaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_gaa(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gaa(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_gaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U11_gaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_gaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_gaa(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U12_gaa(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gaa(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gaa(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gaa(M, N, Ret) U12_gga(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gga(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gga(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U5_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg 0 = 0 U2_gg(x1, x2, x3) = U2_gg(x1, x2, x3) =<_in_gg(x1, x2) = =<_in_gg(x1, x2) =<_out_gg(x1, x2) = =<_out_gg 3 = 3 U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) 23 = 23 U5_gg(x1, x2, x3) = U5_gg(x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U6_gga(x1, x2, x3, x4) = U6_gga(x2, x4) =:=_in_gg(x1, x2) = =:=_in_gg(x1, x2) =:=_out_gg(x1, x2) = =:=_out_gg U7_gga(x1, x2, x3, x4) = U7_gga(x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag +(x1, x2) = +(x1, x2) 1 = 1 ackermann_out_gga(x1, x2, x3) = ackermann_out_gga U8_gga(x1, x2, x3, x4) = U8_gga(x1, x4) U9_gga(x1, x2, x3, x4) = U9_gga(x4) -(x1, x2) = -(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x4) ackermann_in_aga(x1, x2, x3) = ackermann_in_aga(x2) U6_aga(x1, x2, x3, x4) = U6_aga(x2, x4) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag U7_aga(x1, x2, x3, x4) = U7_aga(x4) ackermann_out_aga(x1, x2, x3) = ackermann_out_aga U8_aga(x1, x2, x3, x4) = U8_aga(x4) U9_aga(x1, x2, x3, x4) = U9_aga(x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U10_aga(x1, x2, x3, x4) = U10_aga(x4) U11_aga(x1, x2, x3, x4) = U11_aga(x4) U12_aga(x1, x2, x3, x4, x5) = U12_aga(x5) ackermann_in_aaa(x1, x2, x3) = ackermann_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) ackermann_out_aaa(x1, x2, x3) = ackermann_out_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) U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4, x5) = U12_aaa(x5) U13_aaa(x1, x2, x3, x4, x5) = U13_aaa(x5) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U15_aaa(x1, x2, x3, x4) = U15_aaa(x4) U13_aga(x1, x2, x3, x4, x5) = U13_aga(x5) U14_aga(x1, x2, x3, x4) = U14_aga(x4) U15_aga(x1, x2, x3, x4) = U15_aga(x4) U11_gga(x1, x2, x3, x4) = U11_gga(x1, x4) U12_gga(x1, x2, x3, x4, x5) = U12_gga(x1, x5) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x4) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) U11_gaa(x1, x2, x3, x4) = U11_gaa(x1, x4) U12_gaa(x1, x2, x3, x4, x5) = U12_gaa(x1, x5) U13_gaa(x1, x2, x3, x4, x5) = U13_gaa(x5) U14_gaa(x1, x2, x3, x4) = U14_gaa(x4) U15_gaa(x1, x2, x3, x4) = U15_gaa(x4) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x5) U14_gga(x1, x2, x3, x4) = U14_gga(x4) U15_gga(x1, x2, x3, x4) = U15_gga(x4) main_out_gg(x1, x2) = main_out_gg MAIN_IN_GG(x1, x2) = MAIN_IN_GG(x1, x2) U1_GG(x1, x2, x3) = U1_GG(x1, x2, x3) >=_IN_GG(x1, x2) = >=_IN_GG(x1, x2) U2_GG(x1, x2, x3) = U2_GG(x1, x2, x3) =<_IN_GG(x1, x2) = =<_IN_GG(x1, x2) U3_GG(x1, x2, x3) = U3_GG(x1, x2, x3) U4_GG(x1, x2, x3) = U4_GG(x1, x2, x3) U5_GG(x1, x2, x3) = U5_GG(x3) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U6_GGA(x1, x2, x3, x4) = U6_GGA(x2, x4) =:=_IN_GG(x1, x2) = =:=_IN_GG(x1, x2) U7_GGA(x1, x2, x3, x4) = U7_GGA(x4) IS_IN_AG(x1, x2) = IS_IN_AG(x2) U8_GGA(x1, x2, x3, x4) = U8_GGA(x1, x4) U9_GGA(x1, x2, x3, x4) = U9_GGA(x4) U10_GGA(x1, x2, x3, x4) = U10_GGA(x4) ACKERMANN_IN_AGA(x1, x2, x3) = ACKERMANN_IN_AGA(x2) U6_AGA(x1, x2, x3, x4) = U6_AGA(x2, x4) =:=_IN_AG(x1, x2) = =:=_IN_AG(x2) U7_AGA(x1, x2, x3, x4) = U7_AGA(x4) U8_AGA(x1, x2, x3, x4) = U8_AGA(x4) U9_AGA(x1, x2, x3, x4) = U9_AGA(x4) IS_IN_AA(x1, x2) = IS_IN_AA U10_AGA(x1, x2, x3, x4) = U10_AGA(x4) U11_AGA(x1, x2, x3, x4) = U11_AGA(x4) U12_AGA(x1, x2, x3, x4, x5) = U12_AGA(x5) ACKERMANN_IN_AAA(x1, x2, x3) = ACKERMANN_IN_AAA U6_AAA(x1, x2, x3, x4) = U6_AAA(x4) U7_AAA(x1, x2, x3, x4) = U7_AAA(x4) U8_AAA(x1, x2, x3, x4) = U8_AAA(x4) U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) U11_AAA(x1, x2, x3, x4) = U11_AAA(x4) U12_AAA(x1, x2, x3, x4, x5) = U12_AAA(x5) U13_AAA(x1, x2, x3, x4, x5) = U13_AAA(x5) U14_AAA(x1, x2, x3, x4) = U14_AAA(x4) U15_AAA(x1, x2, x3, x4) = U15_AAA(x4) U13_AGA(x1, x2, x3, x4, x5) = U13_AGA(x5) U14_AGA(x1, x2, x3, x4) = U14_AGA(x4) U15_AGA(x1, x2, x3, x4) = U15_AGA(x4) U11_GGA(x1, x2, x3, x4) = U11_GGA(x1, x4) U12_GGA(x1, x2, x3, x4, x5) = U12_GGA(x1, x5) ACKERMANN_IN_GAA(x1, x2, x3) = ACKERMANN_IN_GAA(x1) U6_GAA(x1, x2, x3, x4) = U6_GAA(x4) U7_GAA(x1, x2, x3, x4) = U7_GAA(x4) U8_GAA(x1, x2, x3, x4) = U8_GAA(x1, x4) U9_GAA(x1, x2, x3, x4) = U9_GAA(x4) U10_GAA(x1, x2, x3, x4) = U10_GAA(x4) U11_GAA(x1, x2, x3, x4) = U11_GAA(x1, x4) U12_GAA(x1, x2, x3, x4, x5) = U12_GAA(x1, x5) U13_GAA(x1, x2, x3, x4, x5) = U13_GAA(x5) U14_GAA(x1, x2, x3, x4) = U14_GAA(x4) U15_GAA(x1, x2, x3, x4) = U15_GAA(x4) U13_GGA(x1, x2, x3, x4, x5) = U13_GGA(x5) U14_GGA(x1, x2, x3, x4) = U14_GGA(x4) U15_GGA(x1, x2, x3, x4) = U15_GGA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (8) Obligation: Pi DP problem: The TRS P consists of the following rules: MAIN_IN_GG(M, N) -> U1_GG(M, N, >=_in_gg(M, 0)) MAIN_IN_GG(M, N) -> >=_IN_GG(M, 0) U1_GG(M, N, >=_out_gg(M, 0)) -> U2_GG(M, N, =<_in_gg(M, 3)) U1_GG(M, N, >=_out_gg(M, 0)) -> =<_IN_GG(M, 3) U2_GG(M, N, =<_out_gg(M, 3)) -> U3_GG(M, N, >=_in_gg(N, 0)) U2_GG(M, N, =<_out_gg(M, 3)) -> >=_IN_GG(N, 0) U3_GG(M, N, >=_out_gg(N, 0)) -> U4_GG(M, N, =<_in_gg(N, 23)) U3_GG(M, N, >=_out_gg(N, 0)) -> =<_IN_GG(N, 23) U4_GG(M, N, =<_out_gg(N, 23)) -> U5_GG(M, N, ackermann_in_gga(M, N, X1)) U4_GG(M, N, =<_out_gg(N, 23)) -> ACKERMANN_IN_GGA(M, N, X1) ACKERMANN_IN_GGA(M, N, Ret) -> U6_GGA(M, N, Ret, =:=_in_gg(M, 0)) ACKERMANN_IN_GGA(M, N, Ret) -> =:=_IN_GG(M, 0) U6_GGA(M, N, Ret, =:=_out_gg(M, 0)) -> U7_GGA(M, N, Ret, is_in_ag(Ret, +(N, 1))) U6_GGA(M, N, Ret, =:=_out_gg(M, 0)) -> IS_IN_AG(Ret, +(N, 1)) ACKERMANN_IN_GGA(M, N, Ret) -> U8_GGA(M, N, Ret, =:=_in_gg(N, 0)) ACKERMANN_IN_GGA(M, N, Ret) -> =:=_IN_GG(N, 0) U8_GGA(M, N, Ret, =:=_out_gg(N, 0)) -> U9_GGA(M, N, Ret, is_in_ag(M1, -(M, 1))) U8_GGA(M, N, Ret, =:=_out_gg(N, 0)) -> IS_IN_AG(M1, -(M, 1)) U9_GGA(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_GGA(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U9_GGA(M, N, Ret, is_out_ag(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AGA(M, N, Ret) -> U6_AGA(M, N, Ret, =:=_in_ag(M, 0)) ACKERMANN_IN_AGA(M, N, Ret) -> =:=_IN_AG(M, 0) U6_AGA(M, N, Ret, =:=_out_ag(M, 0)) -> U7_AGA(M, N, Ret, is_in_ag(Ret, +(N, 1))) U6_AGA(M, N, Ret, =:=_out_ag(M, 0)) -> IS_IN_AG(Ret, +(N, 1)) ACKERMANN_IN_AGA(M, N, Ret) -> U8_AGA(M, N, Ret, =:=_in_gg(N, 0)) ACKERMANN_IN_AGA(M, N, Ret) -> =:=_IN_GG(N, 0) U8_AGA(M, N, Ret, =:=_out_gg(N, 0)) -> U9_AGA(M, N, Ret, is_in_aa(M1, -(M, 1))) U8_AGA(M, N, Ret, =:=_out_gg(N, 0)) -> IS_IN_AA(M1, -(M, 1)) U9_AGA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_AGA(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U9_AGA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AGA(M, N, Ret) -> U11_AGA(M, N, Ret, is_in_ag(N1, -(N, 1))) ACKERMANN_IN_AGA(M, N, Ret) -> IS_IN_AG(N1, -(N, 1)) U11_AGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_AGA(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U11_AGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> ACKERMANN_IN_AAA(M, N1, Ret1) ACKERMANN_IN_AAA(M, N, Ret) -> U6_AAA(M, N, Ret, =:=_in_ag(M, 0)) ACKERMANN_IN_AAA(M, N, Ret) -> =:=_IN_AG(M, 0) U6_AAA(M, N, Ret, =:=_out_ag(M, 0)) -> U7_AAA(M, N, Ret, is_in_aa(Ret, +(N, 1))) U6_AAA(M, N, Ret, =:=_out_ag(M, 0)) -> IS_IN_AA(Ret, +(N, 1)) ACKERMANN_IN_AAA(M, N, Ret) -> U8_AAA(M, N, Ret, =:=_in_ag(N, 0)) ACKERMANN_IN_AAA(M, N, Ret) -> =:=_IN_AG(N, 0) U8_AAA(M, N, Ret, =:=_out_ag(N, 0)) -> U9_AAA(M, N, Ret, is_in_aa(M1, -(M, 1))) U8_AAA(M, N, Ret, =:=_out_ag(N, 0)) -> IS_IN_AA(M1, -(M, 1)) U9_AAA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_AAA(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U9_AAA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AAA(M, N, Ret) -> U11_AAA(M, N, Ret, is_in_aa(N1, -(N, 1))) ACKERMANN_IN_AAA(M, N, Ret) -> IS_IN_AA(N1, -(N, 1)) U11_AAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_AAA(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U11_AAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> ACKERMANN_IN_AAA(M, N1, Ret1) U12_AAA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_AAA(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U12_AAA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> IS_IN_AA(M1, -(M, 1)) U13_AAA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_AAA(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U13_AAA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U14_AAA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_AAA(M, N, Ret, is_in_aa(Ret, Ret2)) U14_AAA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> IS_IN_AA(Ret, Ret2) U12_AGA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_AGA(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U12_AGA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> IS_IN_AA(M1, -(M, 1)) U13_AGA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_AGA(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U13_AGA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U14_AGA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_AGA(M, N, Ret, is_in_aa(Ret, Ret2)) U14_AGA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> IS_IN_AA(Ret, Ret2) ACKERMANN_IN_GGA(M, N, Ret) -> U11_GGA(M, N, Ret, is_in_ag(N1, -(N, 1))) ACKERMANN_IN_GGA(M, N, Ret) -> IS_IN_AG(N1, -(N, 1)) U11_GGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_GGA(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U11_GGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> ACKERMANN_IN_GAA(M, N1, Ret1) ACKERMANN_IN_GAA(M, N, Ret) -> U6_GAA(M, N, Ret, =:=_in_gg(M, 0)) ACKERMANN_IN_GAA(M, N, Ret) -> =:=_IN_GG(M, 0) U6_GAA(M, N, Ret, =:=_out_gg(M, 0)) -> U7_GAA(M, N, Ret, is_in_aa(Ret, +(N, 1))) U6_GAA(M, N, Ret, =:=_out_gg(M, 0)) -> IS_IN_AA(Ret, +(N, 1)) ACKERMANN_IN_GAA(M, N, Ret) -> U8_GAA(M, N, Ret, =:=_in_ag(N, 0)) ACKERMANN_IN_GAA(M, N, Ret) -> =:=_IN_AG(N, 0) U8_GAA(M, N, Ret, =:=_out_ag(N, 0)) -> U9_GAA(M, N, Ret, is_in_ag(M1, -(M, 1))) U8_GAA(M, N, Ret, =:=_out_ag(N, 0)) -> IS_IN_AG(M1, -(M, 1)) U9_GAA(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_GAA(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U9_GAA(M, N, Ret, is_out_ag(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_GAA(M, N, Ret) -> U11_GAA(M, N, Ret, is_in_aa(N1, -(N, 1))) ACKERMANN_IN_GAA(M, N, Ret) -> IS_IN_AA(N1, -(N, 1)) U11_GAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_GAA(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U11_GAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> ACKERMANN_IN_GAA(M, N1, Ret1) U12_GAA(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_GAA(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U12_GAA(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> IS_IN_AG(M1, -(M, 1)) U13_GAA(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_GAA(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U13_GAA(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U14_GAA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_GAA(M, N, Ret, is_in_aa(Ret, Ret2)) U14_GAA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> IS_IN_AA(Ret, Ret2) U12_GGA(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_GGA(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U12_GGA(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> IS_IN_AG(M1, -(M, 1)) U13_GGA(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_GGA(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U13_GGA(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U14_GGA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_GGA(M, N, Ret, is_in_aa(Ret, Ret2)) U14_GGA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> IS_IN_AA(Ret, Ret2) The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, >=_in_gg(M, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U1_gg(M, N, >=_out_gg(M, 0)) -> U2_gg(M, N, =<_in_gg(M, 3)) =<_in_gg(X0, X1) -> =<_out_gg(X0, X1) U2_gg(M, N, =<_out_gg(M, 3)) -> U3_gg(M, N, >=_in_gg(N, 0)) U3_gg(M, N, >=_out_gg(N, 0)) -> U4_gg(M, N, =<_in_gg(N, 23)) U4_gg(M, N, =<_out_gg(N, 23)) -> U5_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U6_gga(M, N, Ret, =:=_in_gg(M, 0)) =:=_in_gg(X0, X1) -> =:=_out_gg(X0, X1) U6_gga(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gga(M, N, Ret, is_in_ag(Ret, +(N, 1))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U7_gga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U8_gga(M, N, Ret, =:=_in_gg(N, 0)) U8_gga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_gga(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gga(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U6_aga(M, N, Ret, =:=_in_ag(M, 0)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U6_aga(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aga(M, N, Ret, is_in_ag(Ret, +(N, 1))) U7_aga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_aga(M, N, Ret) ackermann_in_aga(M, N, Ret) -> U8_aga(M, N, Ret, =:=_in_gg(N, 0)) U8_aga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_aga(M, N, Ret, is_in_aa(M1, -(M, 1))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U9_aga(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U11_aga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_aga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_aga(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) ackermann_in_aaa(M, N, Ret) -> U6_aaa(M, N, Ret, =:=_in_ag(M, 0)) U6_aaa(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_aaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U8_aaa(M, N, Ret, =:=_in_ag(N, 0)) U8_aaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_aaa(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_aaa(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_aaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U11_aaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_aaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_aaa(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_aaa(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aaa(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aaa(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aaa(M, N, Ret) U12_aga(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aga(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aga(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aga(M, N, Ret) U10_aga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aga(M, N, Ret) U10_gga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U11_gga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_gga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_gga(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) ackermann_in_gaa(M, N, Ret) -> U6_gaa(M, N, Ret, =:=_in_gg(M, 0)) U6_gaa(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_gaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U8_gaa(M, N, Ret, =:=_in_ag(N, 0)) U8_gaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_gaa(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gaa(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_gaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U11_gaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_gaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_gaa(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U12_gaa(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gaa(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gaa(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gaa(M, N, Ret) U12_gga(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gga(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gga(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U5_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg 0 = 0 U2_gg(x1, x2, x3) = U2_gg(x1, x2, x3) =<_in_gg(x1, x2) = =<_in_gg(x1, x2) =<_out_gg(x1, x2) = =<_out_gg 3 = 3 U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) 23 = 23 U5_gg(x1, x2, x3) = U5_gg(x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U6_gga(x1, x2, x3, x4) = U6_gga(x2, x4) =:=_in_gg(x1, x2) = =:=_in_gg(x1, x2) =:=_out_gg(x1, x2) = =:=_out_gg U7_gga(x1, x2, x3, x4) = U7_gga(x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag +(x1, x2) = +(x1, x2) 1 = 1 ackermann_out_gga(x1, x2, x3) = ackermann_out_gga U8_gga(x1, x2, x3, x4) = U8_gga(x1, x4) U9_gga(x1, x2, x3, x4) = U9_gga(x4) -(x1, x2) = -(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x4) ackermann_in_aga(x1, x2, x3) = ackermann_in_aga(x2) U6_aga(x1, x2, x3, x4) = U6_aga(x2, x4) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag U7_aga(x1, x2, x3, x4) = U7_aga(x4) ackermann_out_aga(x1, x2, x3) = ackermann_out_aga U8_aga(x1, x2, x3, x4) = U8_aga(x4) U9_aga(x1, x2, x3, x4) = U9_aga(x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U10_aga(x1, x2, x3, x4) = U10_aga(x4) U11_aga(x1, x2, x3, x4) = U11_aga(x4) U12_aga(x1, x2, x3, x4, x5) = U12_aga(x5) ackermann_in_aaa(x1, x2, x3) = ackermann_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) ackermann_out_aaa(x1, x2, x3) = ackermann_out_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) U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4, x5) = U12_aaa(x5) U13_aaa(x1, x2, x3, x4, x5) = U13_aaa(x5) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U15_aaa(x1, x2, x3, x4) = U15_aaa(x4) U13_aga(x1, x2, x3, x4, x5) = U13_aga(x5) U14_aga(x1, x2, x3, x4) = U14_aga(x4) U15_aga(x1, x2, x3, x4) = U15_aga(x4) U11_gga(x1, x2, x3, x4) = U11_gga(x1, x4) U12_gga(x1, x2, x3, x4, x5) = U12_gga(x1, x5) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x4) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) U11_gaa(x1, x2, x3, x4) = U11_gaa(x1, x4) U12_gaa(x1, x2, x3, x4, x5) = U12_gaa(x1, x5) U13_gaa(x1, x2, x3, x4, x5) = U13_gaa(x5) U14_gaa(x1, x2, x3, x4) = U14_gaa(x4) U15_gaa(x1, x2, x3, x4) = U15_gaa(x4) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x5) U14_gga(x1, x2, x3, x4) = U14_gga(x4) U15_gga(x1, x2, x3, x4) = U15_gga(x4) main_out_gg(x1, x2) = main_out_gg MAIN_IN_GG(x1, x2) = MAIN_IN_GG(x1, x2) U1_GG(x1, x2, x3) = U1_GG(x1, x2, x3) >=_IN_GG(x1, x2) = >=_IN_GG(x1, x2) U2_GG(x1, x2, x3) = U2_GG(x1, x2, x3) =<_IN_GG(x1, x2) = =<_IN_GG(x1, x2) U3_GG(x1, x2, x3) = U3_GG(x1, x2, x3) U4_GG(x1, x2, x3) = U4_GG(x1, x2, x3) U5_GG(x1, x2, x3) = U5_GG(x3) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U6_GGA(x1, x2, x3, x4) = U6_GGA(x2, x4) =:=_IN_GG(x1, x2) = =:=_IN_GG(x1, x2) U7_GGA(x1, x2, x3, x4) = U7_GGA(x4) IS_IN_AG(x1, x2) = IS_IN_AG(x2) U8_GGA(x1, x2, x3, x4) = U8_GGA(x1, x4) U9_GGA(x1, x2, x3, x4) = U9_GGA(x4) U10_GGA(x1, x2, x3, x4) = U10_GGA(x4) ACKERMANN_IN_AGA(x1, x2, x3) = ACKERMANN_IN_AGA(x2) U6_AGA(x1, x2, x3, x4) = U6_AGA(x2, x4) =:=_IN_AG(x1, x2) = =:=_IN_AG(x2) U7_AGA(x1, x2, x3, x4) = U7_AGA(x4) U8_AGA(x1, x2, x3, x4) = U8_AGA(x4) U9_AGA(x1, x2, x3, x4) = U9_AGA(x4) IS_IN_AA(x1, x2) = IS_IN_AA U10_AGA(x1, x2, x3, x4) = U10_AGA(x4) U11_AGA(x1, x2, x3, x4) = U11_AGA(x4) U12_AGA(x1, x2, x3, x4, x5) = U12_AGA(x5) ACKERMANN_IN_AAA(x1, x2, x3) = ACKERMANN_IN_AAA U6_AAA(x1, x2, x3, x4) = U6_AAA(x4) U7_AAA(x1, x2, x3, x4) = U7_AAA(x4) U8_AAA(x1, x2, x3, x4) = U8_AAA(x4) U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) U11_AAA(x1, x2, x3, x4) = U11_AAA(x4) U12_AAA(x1, x2, x3, x4, x5) = U12_AAA(x5) U13_AAA(x1, x2, x3, x4, x5) = U13_AAA(x5) U14_AAA(x1, x2, x3, x4) = U14_AAA(x4) U15_AAA(x1, x2, x3, x4) = U15_AAA(x4) U13_AGA(x1, x2, x3, x4, x5) = U13_AGA(x5) U14_AGA(x1, x2, x3, x4) = U14_AGA(x4) U15_AGA(x1, x2, x3, x4) = U15_AGA(x4) U11_GGA(x1, x2, x3, x4) = U11_GGA(x1, x4) U12_GGA(x1, x2, x3, x4, x5) = U12_GGA(x1, x5) ACKERMANN_IN_GAA(x1, x2, x3) = ACKERMANN_IN_GAA(x1) U6_GAA(x1, x2, x3, x4) = U6_GAA(x4) U7_GAA(x1, x2, x3, x4) = U7_GAA(x4) U8_GAA(x1, x2, x3, x4) = U8_GAA(x1, x4) U9_GAA(x1, x2, x3, x4) = U9_GAA(x4) U10_GAA(x1, x2, x3, x4) = U10_GAA(x4) U11_GAA(x1, x2, x3, x4) = U11_GAA(x1, x4) U12_GAA(x1, x2, x3, x4, x5) = U12_GAA(x1, x5) U13_GAA(x1, x2, x3, x4, x5) = U13_GAA(x5) U14_GAA(x1, x2, x3, x4) = U14_GAA(x4) U15_GAA(x1, x2, x3, x4) = U15_GAA(x4) U13_GGA(x1, x2, x3, x4, x5) = U13_GGA(x5) U14_GGA(x1, x2, x3, x4) = U14_GGA(x4) U15_GGA(x1, x2, x3, x4) = U15_GGA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (9) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 72 less nodes. ---------------------------------------- (10) Complex Obligation (AND) ---------------------------------------- (11) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_AGA(M, N, Ret) -> U8_AGA(M, N, Ret, =:=_in_gg(N, 0)) U8_AGA(M, N, Ret, =:=_out_gg(N, 0)) -> U9_AGA(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_AGA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AGA(M, N, Ret) -> U11_AGA(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_AGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_AGA(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_AGA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_AGA(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_AGA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) ACKERMANN_IN_AAA(M, N, Ret) -> U8_AAA(M, N, Ret, =:=_in_ag(N, 0)) U8_AAA(M, N, Ret, =:=_out_ag(N, 0)) -> U9_AAA(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_AAA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AAA(M, N, Ret) -> U11_AAA(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_AAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_AAA(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_AAA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_AAA(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_AAA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U11_AAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> ACKERMANN_IN_AAA(M, N1, Ret1) U11_AGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> ACKERMANN_IN_AAA(M, N1, Ret1) The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, >=_in_gg(M, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U1_gg(M, N, >=_out_gg(M, 0)) -> U2_gg(M, N, =<_in_gg(M, 3)) =<_in_gg(X0, X1) -> =<_out_gg(X0, X1) U2_gg(M, N, =<_out_gg(M, 3)) -> U3_gg(M, N, >=_in_gg(N, 0)) U3_gg(M, N, >=_out_gg(N, 0)) -> U4_gg(M, N, =<_in_gg(N, 23)) U4_gg(M, N, =<_out_gg(N, 23)) -> U5_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U6_gga(M, N, Ret, =:=_in_gg(M, 0)) =:=_in_gg(X0, X1) -> =:=_out_gg(X0, X1) U6_gga(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gga(M, N, Ret, is_in_ag(Ret, +(N, 1))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U7_gga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U8_gga(M, N, Ret, =:=_in_gg(N, 0)) U8_gga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_gga(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gga(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U6_aga(M, N, Ret, =:=_in_ag(M, 0)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U6_aga(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aga(M, N, Ret, is_in_ag(Ret, +(N, 1))) U7_aga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_aga(M, N, Ret) ackermann_in_aga(M, N, Ret) -> U8_aga(M, N, Ret, =:=_in_gg(N, 0)) U8_aga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_aga(M, N, Ret, is_in_aa(M1, -(M, 1))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U9_aga(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U11_aga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_aga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_aga(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) ackermann_in_aaa(M, N, Ret) -> U6_aaa(M, N, Ret, =:=_in_ag(M, 0)) U6_aaa(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_aaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U8_aaa(M, N, Ret, =:=_in_ag(N, 0)) U8_aaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_aaa(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_aaa(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_aaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U11_aaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_aaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_aaa(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_aaa(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aaa(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aaa(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aaa(M, N, Ret) U12_aga(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aga(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aga(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aga(M, N, Ret) U10_aga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aga(M, N, Ret) U10_gga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U11_gga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_gga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_gga(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) ackermann_in_gaa(M, N, Ret) -> U6_gaa(M, N, Ret, =:=_in_gg(M, 0)) U6_gaa(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_gaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U8_gaa(M, N, Ret, =:=_in_ag(N, 0)) U8_gaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_gaa(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gaa(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_gaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U11_gaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_gaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_gaa(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U12_gaa(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gaa(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gaa(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gaa(M, N, Ret) U12_gga(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gga(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gga(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U5_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg 0 = 0 U2_gg(x1, x2, x3) = U2_gg(x1, x2, x3) =<_in_gg(x1, x2) = =<_in_gg(x1, x2) =<_out_gg(x1, x2) = =<_out_gg 3 = 3 U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) 23 = 23 U5_gg(x1, x2, x3) = U5_gg(x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U6_gga(x1, x2, x3, x4) = U6_gga(x2, x4) =:=_in_gg(x1, x2) = =:=_in_gg(x1, x2) =:=_out_gg(x1, x2) = =:=_out_gg U7_gga(x1, x2, x3, x4) = U7_gga(x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag +(x1, x2) = +(x1, x2) 1 = 1 ackermann_out_gga(x1, x2, x3) = ackermann_out_gga U8_gga(x1, x2, x3, x4) = U8_gga(x1, x4) U9_gga(x1, x2, x3, x4) = U9_gga(x4) -(x1, x2) = -(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x4) ackermann_in_aga(x1, x2, x3) = ackermann_in_aga(x2) U6_aga(x1, x2, x3, x4) = U6_aga(x2, x4) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag U7_aga(x1, x2, x3, x4) = U7_aga(x4) ackermann_out_aga(x1, x2, x3) = ackermann_out_aga U8_aga(x1, x2, x3, x4) = U8_aga(x4) U9_aga(x1, x2, x3, x4) = U9_aga(x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U10_aga(x1, x2, x3, x4) = U10_aga(x4) U11_aga(x1, x2, x3, x4) = U11_aga(x4) U12_aga(x1, x2, x3, x4, x5) = U12_aga(x5) ackermann_in_aaa(x1, x2, x3) = ackermann_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) ackermann_out_aaa(x1, x2, x3) = ackermann_out_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) U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4, x5) = U12_aaa(x5) U13_aaa(x1, x2, x3, x4, x5) = U13_aaa(x5) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U15_aaa(x1, x2, x3, x4) = U15_aaa(x4) U13_aga(x1, x2, x3, x4, x5) = U13_aga(x5) U14_aga(x1, x2, x3, x4) = U14_aga(x4) U15_aga(x1, x2, x3, x4) = U15_aga(x4) U11_gga(x1, x2, x3, x4) = U11_gga(x1, x4) U12_gga(x1, x2, x3, x4, x5) = U12_gga(x1, x5) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x4) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) U11_gaa(x1, x2, x3, x4) = U11_gaa(x1, x4) U12_gaa(x1, x2, x3, x4, x5) = U12_gaa(x1, x5) U13_gaa(x1, x2, x3, x4, x5) = U13_gaa(x5) U14_gaa(x1, x2, x3, x4) = U14_gaa(x4) U15_gaa(x1, x2, x3, x4) = U15_gaa(x4) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x5) U14_gga(x1, x2, x3, x4) = U14_gga(x4) U15_gga(x1, x2, x3, x4) = U15_gga(x4) main_out_gg(x1, x2) = main_out_gg ACKERMANN_IN_AGA(x1, x2, x3) = ACKERMANN_IN_AGA(x2) U8_AGA(x1, x2, x3, x4) = U8_AGA(x4) U9_AGA(x1, x2, x3, x4) = U9_AGA(x4) U11_AGA(x1, x2, x3, x4) = U11_AGA(x4) U12_AGA(x1, x2, x3, x4, x5) = U12_AGA(x5) ACKERMANN_IN_AAA(x1, x2, x3) = ACKERMANN_IN_AAA U8_AAA(x1, x2, x3, x4) = U8_AAA(x4) U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U11_AAA(x1, x2, x3, x4) = U11_AAA(x4) U12_AAA(x1, x2, x3, x4, x5) = U12_AAA(x5) U13_AAA(x1, x2, x3, x4, x5) = U13_AAA(x5) U13_AGA(x1, x2, x3, x4, x5) = U13_AGA(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (12) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (13) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_AGA(M, N, Ret) -> U8_AGA(M, N, Ret, =:=_in_gg(N, 0)) U8_AGA(M, N, Ret, =:=_out_gg(N, 0)) -> U9_AGA(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_AGA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AGA(M, N, Ret) -> U11_AGA(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_AGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_AGA(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_AGA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_AGA(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_AGA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) ACKERMANN_IN_AAA(M, N, Ret) -> U8_AAA(M, N, Ret, =:=_in_ag(N, 0)) U8_AAA(M, N, Ret, =:=_out_ag(N, 0)) -> U9_AAA(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_AAA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AAA(M, N, Ret) -> U11_AAA(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_AAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_AAA(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_AAA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_AAA(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_AAA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U11_AAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> ACKERMANN_IN_AAA(M, N1, Ret1) U11_AGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> ACKERMANN_IN_AAA(M, N1, Ret1) The TRS R consists of the following rules: =:=_in_gg(X0, X1) -> =:=_out_gg(X0, X1) is_in_aa(X0, X1) -> is_out_aa(X0, X1) is_in_ag(X0, X1) -> is_out_ag(X0, X1) ackermann_in_aaa(M, N, Ret) -> U6_aaa(M, N, Ret, =:=_in_ag(M, 0)) ackermann_in_aaa(M, N, Ret) -> U8_aaa(M, N, Ret, =:=_in_ag(N, 0)) ackermann_in_aaa(M, N, Ret) -> U11_aaa(M, N, Ret, is_in_aa(N1, -(N, 1))) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U6_aaa(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U8_aaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_aaa(M, N, Ret, is_in_aa(M1, -(M, 1))) U11_aaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_aaa(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U7_aaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_aaa(M, N, Ret) U9_aaa(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U12_aaa(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aaa(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U10_aaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aaa(M, N, Ret) U13_aaa(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) ackermann_in_aga(M, N, Ret) -> U6_aga(M, N, Ret, =:=_in_ag(M, 0)) ackermann_in_aga(M, N, Ret) -> U8_aga(M, N, Ret, =:=_in_gg(N, 0)) ackermann_in_aga(M, N, Ret) -> U11_aga(M, N, Ret, is_in_ag(N1, -(N, 1))) U14_aaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aaa(M, N, Ret, is_in_aa(Ret, Ret2)) U6_aga(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aga(M, N, Ret, is_in_ag(Ret, +(N, 1))) U8_aga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_aga(M, N, Ret, is_in_aa(M1, -(M, 1))) U11_aga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_aga(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U15_aaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aaa(M, N, Ret) U7_aga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_aga(M, N, Ret) U9_aga(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U12_aga(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aga(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U10_aga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aga(M, N, Ret) U13_aga(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aga(M, N, Ret) The argument filtering Pi contains the following mapping: 0 = 0 =:=_in_gg(x1, x2) = =:=_in_gg(x1, x2) =:=_out_gg(x1, x2) = =:=_out_gg is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag +(x1, x2) = +(x1, x2) 1 = 1 -(x1, x2) = -(x1, x2) ackermann_in_aga(x1, x2, x3) = ackermann_in_aga(x2) U6_aga(x1, x2, x3, x4) = U6_aga(x2, x4) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag U7_aga(x1, x2, x3, x4) = U7_aga(x4) ackermann_out_aga(x1, x2, x3) = ackermann_out_aga U8_aga(x1, x2, x3, x4) = U8_aga(x4) U9_aga(x1, x2, x3, x4) = U9_aga(x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U10_aga(x1, x2, x3, x4) = U10_aga(x4) U11_aga(x1, x2, x3, x4) = U11_aga(x4) U12_aga(x1, x2, x3, x4, x5) = U12_aga(x5) ackermann_in_aaa(x1, x2, x3) = ackermann_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) ackermann_out_aaa(x1, x2, x3) = ackermann_out_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) U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4, x5) = U12_aaa(x5) U13_aaa(x1, x2, x3, x4, x5) = U13_aaa(x5) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U15_aaa(x1, x2, x3, x4) = U15_aaa(x4) U13_aga(x1, x2, x3, x4, x5) = U13_aga(x5) U14_aga(x1, x2, x3, x4) = U14_aga(x4) U15_aga(x1, x2, x3, x4) = U15_aga(x4) ACKERMANN_IN_AGA(x1, x2, x3) = ACKERMANN_IN_AGA(x2) U8_AGA(x1, x2, x3, x4) = U8_AGA(x4) U9_AGA(x1, x2, x3, x4) = U9_AGA(x4) U11_AGA(x1, x2, x3, x4) = U11_AGA(x4) U12_AGA(x1, x2, x3, x4, x5) = U12_AGA(x5) ACKERMANN_IN_AAA(x1, x2, x3) = ACKERMANN_IN_AAA U8_AAA(x1, x2, x3, x4) = U8_AAA(x4) U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U11_AAA(x1, x2, x3, x4) = U11_AAA(x4) U12_AAA(x1, x2, x3, x4, x5) = U12_AAA(x5) U13_AAA(x1, x2, x3, x4, x5) = U13_AAA(x5) U13_AGA(x1, x2, x3, x4, x5) = U13_AGA(x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (14) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (15) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANN_IN_AGA(N) -> U8_AGA(=:=_in_gg(N, 0)) U8_AGA(=:=_out_gg) -> U9_AGA(is_in_aa) U9_AGA(is_out_aa) -> ACKERMANN_IN_AGA(1) ACKERMANN_IN_AGA(N) -> U11_AGA(is_in_ag(-(N, 1))) U11_AGA(is_out_ag) -> U12_AGA(ackermann_in_aaa) U12_AGA(ackermann_out_aaa) -> U13_AGA(is_in_aa) U13_AGA(is_out_aa) -> ACKERMANN_IN_AAA ACKERMANN_IN_AAA -> U8_AAA(=:=_in_ag(0)) U8_AAA(=:=_out_ag) -> U9_AAA(is_in_aa) U9_AAA(is_out_aa) -> ACKERMANN_IN_AGA(1) ACKERMANN_IN_AAA -> U11_AAA(is_in_aa) U11_AAA(is_out_aa) -> U12_AAA(ackermann_in_aaa) U12_AAA(ackermann_out_aaa) -> U13_AAA(is_in_aa) U13_AAA(is_out_aa) -> ACKERMANN_IN_AAA U11_AAA(is_out_aa) -> ACKERMANN_IN_AAA U11_AGA(is_out_ag) -> ACKERMANN_IN_AAA The TRS R consists of the following rules: =:=_in_gg(X0, X1) -> =:=_out_gg is_in_aa -> is_out_aa is_in_ag(X1) -> is_out_ag ackermann_in_aaa -> U6_aaa(=:=_in_ag(0)) ackermann_in_aaa -> U8_aaa(=:=_in_ag(0)) ackermann_in_aaa -> U11_aaa(is_in_aa) =:=_in_ag(X1) -> =:=_out_ag U6_aaa(=:=_out_ag) -> U7_aaa(is_in_aa) U8_aaa(=:=_out_ag) -> U9_aaa(is_in_aa) U11_aaa(is_out_aa) -> U12_aaa(ackermann_in_aaa) U7_aaa(is_out_aa) -> ackermann_out_aaa U9_aaa(is_out_aa) -> U10_aaa(ackermann_in_aga(1)) U12_aaa(ackermann_out_aaa) -> U13_aaa(is_in_aa) U10_aaa(ackermann_out_aga) -> ackermann_out_aaa U13_aaa(is_out_aa) -> U14_aaa(ackermann_in_aaa) ackermann_in_aga(N) -> U6_aga(N, =:=_in_ag(0)) ackermann_in_aga(N) -> U8_aga(=:=_in_gg(N, 0)) ackermann_in_aga(N) -> U11_aga(is_in_ag(-(N, 1))) U14_aaa(ackermann_out_aaa) -> U15_aaa(is_in_aa) U6_aga(N, =:=_out_ag) -> U7_aga(is_in_ag(+(N, 1))) U8_aga(=:=_out_gg) -> U9_aga(is_in_aa) U11_aga(is_out_ag) -> U12_aga(ackermann_in_aaa) U15_aaa(is_out_aa) -> ackermann_out_aaa U7_aga(is_out_ag) -> ackermann_out_aga U9_aga(is_out_aa) -> U10_aga(ackermann_in_aga(1)) U12_aga(ackermann_out_aaa) -> U13_aga(is_in_aa) U10_aga(ackermann_out_aga) -> ackermann_out_aga U13_aga(is_out_aa) -> U14_aga(ackermann_in_aaa) U14_aga(ackermann_out_aaa) -> U15_aga(is_in_aa) U15_aga(is_out_aa) -> ackermann_out_aga The set Q consists of the following terms: =:=_in_gg(x0, x1) is_in_aa is_in_ag(x0) ackermann_in_aaa =:=_in_ag(x0) U6_aaa(x0) U8_aaa(x0) U11_aaa(x0) U7_aaa(x0) U9_aaa(x0) U12_aaa(x0) U10_aaa(x0) U13_aaa(x0) ackermann_in_aga(x0) U14_aaa(x0) U6_aga(x0, x1) U8_aga(x0) U11_aga(x0) U15_aaa(x0) U7_aga(x0) U9_aga(x0) U12_aga(x0) U10_aga(x0) U13_aga(x0) U14_aga(x0) U15_aga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (16) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule ACKERMANN_IN_AGA(N) -> U8_AGA(=:=_in_gg(N, 0)) at position [0] we obtained the following new rules [LPAR04]: (ACKERMANN_IN_AGA(N) -> U8_AGA(=:=_out_gg),ACKERMANN_IN_AGA(N) -> U8_AGA(=:=_out_gg)) ---------------------------------------- (17) Obligation: Q DP problem: The TRS P consists of the following rules: U8_AGA(=:=_out_gg) -> U9_AGA(is_in_aa) U9_AGA(is_out_aa) -> ACKERMANN_IN_AGA(1) ACKERMANN_IN_AGA(N) -> U11_AGA(is_in_ag(-(N, 1))) U11_AGA(is_out_ag) -> U12_AGA(ackermann_in_aaa) U12_AGA(ackermann_out_aaa) -> U13_AGA(is_in_aa) U13_AGA(is_out_aa) -> ACKERMANN_IN_AAA ACKERMANN_IN_AAA -> U8_AAA(=:=_in_ag(0)) U8_AAA(=:=_out_ag) -> U9_AAA(is_in_aa) U9_AAA(is_out_aa) -> ACKERMANN_IN_AGA(1) ACKERMANN_IN_AAA -> U11_AAA(is_in_aa) U11_AAA(is_out_aa) -> U12_AAA(ackermann_in_aaa) U12_AAA(ackermann_out_aaa) -> U13_AAA(is_in_aa) U13_AAA(is_out_aa) -> ACKERMANN_IN_AAA U11_AAA(is_out_aa) -> ACKERMANN_IN_AAA U11_AGA(is_out_ag) -> ACKERMANN_IN_AAA ACKERMANN_IN_AGA(N) -> U8_AGA(=:=_out_gg) The TRS R consists of the following rules: =:=_in_gg(X0, X1) -> =:=_out_gg is_in_aa -> is_out_aa is_in_ag(X1) -> is_out_ag ackermann_in_aaa -> U6_aaa(=:=_in_ag(0)) ackermann_in_aaa -> U8_aaa(=:=_in_ag(0)) ackermann_in_aaa -> U11_aaa(is_in_aa) =:=_in_ag(X1) -> =:=_out_ag U6_aaa(=:=_out_ag) -> U7_aaa(is_in_aa) U8_aaa(=:=_out_ag) -> U9_aaa(is_in_aa) U11_aaa(is_out_aa) -> U12_aaa(ackermann_in_aaa) U7_aaa(is_out_aa) -> ackermann_out_aaa U9_aaa(is_out_aa) -> U10_aaa(ackermann_in_aga(1)) U12_aaa(ackermann_out_aaa) -> U13_aaa(is_in_aa) U10_aaa(ackermann_out_aga) -> ackermann_out_aaa U13_aaa(is_out_aa) -> U14_aaa(ackermann_in_aaa) ackermann_in_aga(N) -> U6_aga(N, =:=_in_ag(0)) ackermann_in_aga(N) -> U8_aga(=:=_in_gg(N, 0)) ackermann_in_aga(N) -> U11_aga(is_in_ag(-(N, 1))) U14_aaa(ackermann_out_aaa) -> U15_aaa(is_in_aa) U6_aga(N, =:=_out_ag) -> U7_aga(is_in_ag(+(N, 1))) U8_aga(=:=_out_gg) -> U9_aga(is_in_aa) U11_aga(is_out_ag) -> U12_aga(ackermann_in_aaa) U15_aaa(is_out_aa) -> ackermann_out_aaa U7_aga(is_out_ag) -> ackermann_out_aga U9_aga(is_out_aa) -> U10_aga(ackermann_in_aga(1)) U12_aga(ackermann_out_aaa) -> U13_aga(is_in_aa) U10_aga(ackermann_out_aga) -> ackermann_out_aga U13_aga(is_out_aa) -> U14_aga(ackermann_in_aaa) U14_aga(ackermann_out_aaa) -> U15_aga(is_in_aa) U15_aga(is_out_aa) -> ackermann_out_aga The set Q consists of the following terms: =:=_in_gg(x0, x1) is_in_aa is_in_ag(x0) ackermann_in_aaa =:=_in_ag(x0) U6_aaa(x0) U8_aaa(x0) U11_aaa(x0) U7_aaa(x0) U9_aaa(x0) U12_aaa(x0) U10_aaa(x0) U13_aaa(x0) ackermann_in_aga(x0) U14_aaa(x0) U6_aga(x0, x1) U8_aga(x0) U11_aga(x0) U15_aaa(x0) U7_aga(x0) U9_aga(x0) U12_aga(x0) U10_aga(x0) U13_aga(x0) U14_aga(x0) U15_aga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (18) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U8_AGA(=:=_out_gg) -> U9_AGA(is_in_aa) at position [0] we obtained the following new rules [LPAR04]: (U8_AGA(=:=_out_gg) -> U9_AGA(is_out_aa),U8_AGA(=:=_out_gg) -> U9_AGA(is_out_aa)) ---------------------------------------- (19) Obligation: Q DP problem: The TRS P consists of the following rules: U9_AGA(is_out_aa) -> ACKERMANN_IN_AGA(1) ACKERMANN_IN_AGA(N) -> U11_AGA(is_in_ag(-(N, 1))) U11_AGA(is_out_ag) -> U12_AGA(ackermann_in_aaa) U12_AGA(ackermann_out_aaa) -> U13_AGA(is_in_aa) U13_AGA(is_out_aa) -> ACKERMANN_IN_AAA ACKERMANN_IN_AAA -> U8_AAA(=:=_in_ag(0)) U8_AAA(=:=_out_ag) -> U9_AAA(is_in_aa) U9_AAA(is_out_aa) -> ACKERMANN_IN_AGA(1) ACKERMANN_IN_AAA -> U11_AAA(is_in_aa) U11_AAA(is_out_aa) -> U12_AAA(ackermann_in_aaa) U12_AAA(ackermann_out_aaa) -> U13_AAA(is_in_aa) U13_AAA(is_out_aa) -> ACKERMANN_IN_AAA U11_AAA(is_out_aa) -> ACKERMANN_IN_AAA U11_AGA(is_out_ag) -> ACKERMANN_IN_AAA ACKERMANN_IN_AGA(N) -> U8_AGA(=:=_out_gg) U8_AGA(=:=_out_gg) -> U9_AGA(is_out_aa) The TRS R consists of the following rules: =:=_in_gg(X0, X1) -> =:=_out_gg is_in_aa -> is_out_aa is_in_ag(X1) -> is_out_ag ackermann_in_aaa -> U6_aaa(=:=_in_ag(0)) ackermann_in_aaa -> U8_aaa(=:=_in_ag(0)) ackermann_in_aaa -> U11_aaa(is_in_aa) =:=_in_ag(X1) -> =:=_out_ag U6_aaa(=:=_out_ag) -> U7_aaa(is_in_aa) U8_aaa(=:=_out_ag) -> U9_aaa(is_in_aa) U11_aaa(is_out_aa) -> U12_aaa(ackermann_in_aaa) U7_aaa(is_out_aa) -> ackermann_out_aaa U9_aaa(is_out_aa) -> U10_aaa(ackermann_in_aga(1)) U12_aaa(ackermann_out_aaa) -> U13_aaa(is_in_aa) U10_aaa(ackermann_out_aga) -> ackermann_out_aaa U13_aaa(is_out_aa) -> U14_aaa(ackermann_in_aaa) ackermann_in_aga(N) -> U6_aga(N, =:=_in_ag(0)) ackermann_in_aga(N) -> U8_aga(=:=_in_gg(N, 0)) ackermann_in_aga(N) -> U11_aga(is_in_ag(-(N, 1))) U14_aaa(ackermann_out_aaa) -> U15_aaa(is_in_aa) U6_aga(N, =:=_out_ag) -> U7_aga(is_in_ag(+(N, 1))) U8_aga(=:=_out_gg) -> U9_aga(is_in_aa) U11_aga(is_out_ag) -> U12_aga(ackermann_in_aaa) U15_aaa(is_out_aa) -> ackermann_out_aaa U7_aga(is_out_ag) -> ackermann_out_aga U9_aga(is_out_aa) -> U10_aga(ackermann_in_aga(1)) U12_aga(ackermann_out_aaa) -> U13_aga(is_in_aa) U10_aga(ackermann_out_aga) -> ackermann_out_aga U13_aga(is_out_aa) -> U14_aga(ackermann_in_aaa) U14_aga(ackermann_out_aaa) -> U15_aga(is_in_aa) U15_aga(is_out_aa) -> ackermann_out_aga The set Q consists of the following terms: =:=_in_gg(x0, x1) is_in_aa is_in_ag(x0) ackermann_in_aaa =:=_in_ag(x0) U6_aaa(x0) U8_aaa(x0) U11_aaa(x0) U7_aaa(x0) U9_aaa(x0) U12_aaa(x0) U10_aaa(x0) U13_aaa(x0) ackermann_in_aga(x0) U14_aaa(x0) U6_aga(x0, x1) U8_aga(x0) U11_aga(x0) U15_aaa(x0) U7_aga(x0) U9_aga(x0) U12_aga(x0) U10_aga(x0) U13_aga(x0) U14_aga(x0) U15_aga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (20) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule ACKERMANN_IN_AGA(N) -> U11_AGA(is_in_ag(-(N, 1))) at position [0] we obtained the following new rules [LPAR04]: (ACKERMANN_IN_AGA(N) -> U11_AGA(is_out_ag),ACKERMANN_IN_AGA(N) -> U11_AGA(is_out_ag)) ---------------------------------------- (21) Obligation: Q DP problem: The TRS P consists of the following rules: U9_AGA(is_out_aa) -> ACKERMANN_IN_AGA(1) U11_AGA(is_out_ag) -> U12_AGA(ackermann_in_aaa) U12_AGA(ackermann_out_aaa) -> U13_AGA(is_in_aa) U13_AGA(is_out_aa) -> ACKERMANN_IN_AAA ACKERMANN_IN_AAA -> U8_AAA(=:=_in_ag(0)) U8_AAA(=:=_out_ag) -> U9_AAA(is_in_aa) U9_AAA(is_out_aa) -> ACKERMANN_IN_AGA(1) ACKERMANN_IN_AAA -> U11_AAA(is_in_aa) U11_AAA(is_out_aa) -> U12_AAA(ackermann_in_aaa) U12_AAA(ackermann_out_aaa) -> U13_AAA(is_in_aa) U13_AAA(is_out_aa) -> ACKERMANN_IN_AAA U11_AAA(is_out_aa) -> ACKERMANN_IN_AAA U11_AGA(is_out_ag) -> ACKERMANN_IN_AAA ACKERMANN_IN_AGA(N) -> U8_AGA(=:=_out_gg) U8_AGA(=:=_out_gg) -> U9_AGA(is_out_aa) ACKERMANN_IN_AGA(N) -> U11_AGA(is_out_ag) The TRS R consists of the following rules: =:=_in_gg(X0, X1) -> =:=_out_gg is_in_aa -> is_out_aa is_in_ag(X1) -> is_out_ag ackermann_in_aaa -> U6_aaa(=:=_in_ag(0)) ackermann_in_aaa -> U8_aaa(=:=_in_ag(0)) ackermann_in_aaa -> U11_aaa(is_in_aa) =:=_in_ag(X1) -> =:=_out_ag U6_aaa(=:=_out_ag) -> U7_aaa(is_in_aa) U8_aaa(=:=_out_ag) -> U9_aaa(is_in_aa) U11_aaa(is_out_aa) -> U12_aaa(ackermann_in_aaa) U7_aaa(is_out_aa) -> ackermann_out_aaa U9_aaa(is_out_aa) -> U10_aaa(ackermann_in_aga(1)) U12_aaa(ackermann_out_aaa) -> U13_aaa(is_in_aa) U10_aaa(ackermann_out_aga) -> ackermann_out_aaa U13_aaa(is_out_aa) -> U14_aaa(ackermann_in_aaa) ackermann_in_aga(N) -> U6_aga(N, =:=_in_ag(0)) ackermann_in_aga(N) -> U8_aga(=:=_in_gg(N, 0)) ackermann_in_aga(N) -> U11_aga(is_in_ag(-(N, 1))) U14_aaa(ackermann_out_aaa) -> U15_aaa(is_in_aa) U6_aga(N, =:=_out_ag) -> U7_aga(is_in_ag(+(N, 1))) U8_aga(=:=_out_gg) -> U9_aga(is_in_aa) U11_aga(is_out_ag) -> U12_aga(ackermann_in_aaa) U15_aaa(is_out_aa) -> ackermann_out_aaa U7_aga(is_out_ag) -> ackermann_out_aga U9_aga(is_out_aa) -> U10_aga(ackermann_in_aga(1)) U12_aga(ackermann_out_aaa) -> U13_aga(is_in_aa) U10_aga(ackermann_out_aga) -> ackermann_out_aga U13_aga(is_out_aa) -> U14_aga(ackermann_in_aaa) U14_aga(ackermann_out_aaa) -> U15_aga(is_in_aa) U15_aga(is_out_aa) -> ackermann_out_aga The set Q consists of the following terms: =:=_in_gg(x0, x1) is_in_aa is_in_ag(x0) ackermann_in_aaa =:=_in_ag(x0) U6_aaa(x0) U8_aaa(x0) U11_aaa(x0) U7_aaa(x0) U9_aaa(x0) U12_aaa(x0) U10_aaa(x0) U13_aaa(x0) ackermann_in_aga(x0) U14_aaa(x0) U6_aga(x0, x1) U8_aga(x0) U11_aga(x0) U15_aaa(x0) U7_aga(x0) U9_aga(x0) U12_aga(x0) U10_aga(x0) U13_aga(x0) U14_aga(x0) U15_aga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (22) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U12_AGA(ackermann_out_aaa) -> U13_AGA(is_in_aa) at position [0] we obtained the following new rules [LPAR04]: (U12_AGA(ackermann_out_aaa) -> U13_AGA(is_out_aa),U12_AGA(ackermann_out_aaa) -> U13_AGA(is_out_aa)) ---------------------------------------- (23) Obligation: Q DP problem: The TRS P consists of the following rules: U9_AGA(is_out_aa) -> ACKERMANN_IN_AGA(1) U11_AGA(is_out_ag) -> U12_AGA(ackermann_in_aaa) U13_AGA(is_out_aa) -> ACKERMANN_IN_AAA ACKERMANN_IN_AAA -> U8_AAA(=:=_in_ag(0)) U8_AAA(=:=_out_ag) -> U9_AAA(is_in_aa) U9_AAA(is_out_aa) -> ACKERMANN_IN_AGA(1) ACKERMANN_IN_AAA -> U11_AAA(is_in_aa) U11_AAA(is_out_aa) -> U12_AAA(ackermann_in_aaa) U12_AAA(ackermann_out_aaa) -> U13_AAA(is_in_aa) U13_AAA(is_out_aa) -> ACKERMANN_IN_AAA U11_AAA(is_out_aa) -> ACKERMANN_IN_AAA U11_AGA(is_out_ag) -> ACKERMANN_IN_AAA ACKERMANN_IN_AGA(N) -> U8_AGA(=:=_out_gg) U8_AGA(=:=_out_gg) -> U9_AGA(is_out_aa) ACKERMANN_IN_AGA(N) -> U11_AGA(is_out_ag) U12_AGA(ackermann_out_aaa) -> U13_AGA(is_out_aa) The TRS R consists of the following rules: =:=_in_gg(X0, X1) -> =:=_out_gg is_in_aa -> is_out_aa is_in_ag(X1) -> is_out_ag ackermann_in_aaa -> U6_aaa(=:=_in_ag(0)) ackermann_in_aaa -> U8_aaa(=:=_in_ag(0)) ackermann_in_aaa -> U11_aaa(is_in_aa) =:=_in_ag(X1) -> =:=_out_ag U6_aaa(=:=_out_ag) -> U7_aaa(is_in_aa) U8_aaa(=:=_out_ag) -> U9_aaa(is_in_aa) U11_aaa(is_out_aa) -> U12_aaa(ackermann_in_aaa) U7_aaa(is_out_aa) -> ackermann_out_aaa U9_aaa(is_out_aa) -> U10_aaa(ackermann_in_aga(1)) U12_aaa(ackermann_out_aaa) -> U13_aaa(is_in_aa) U10_aaa(ackermann_out_aga) -> ackermann_out_aaa U13_aaa(is_out_aa) -> U14_aaa(ackermann_in_aaa) ackermann_in_aga(N) -> U6_aga(N, =:=_in_ag(0)) ackermann_in_aga(N) -> U8_aga(=:=_in_gg(N, 0)) ackermann_in_aga(N) -> U11_aga(is_in_ag(-(N, 1))) U14_aaa(ackermann_out_aaa) -> U15_aaa(is_in_aa) U6_aga(N, =:=_out_ag) -> U7_aga(is_in_ag(+(N, 1))) U8_aga(=:=_out_gg) -> U9_aga(is_in_aa) U11_aga(is_out_ag) -> U12_aga(ackermann_in_aaa) U15_aaa(is_out_aa) -> ackermann_out_aaa U7_aga(is_out_ag) -> ackermann_out_aga U9_aga(is_out_aa) -> U10_aga(ackermann_in_aga(1)) U12_aga(ackermann_out_aaa) -> U13_aga(is_in_aa) U10_aga(ackermann_out_aga) -> ackermann_out_aga U13_aga(is_out_aa) -> U14_aga(ackermann_in_aaa) U14_aga(ackermann_out_aaa) -> U15_aga(is_in_aa) U15_aga(is_out_aa) -> ackermann_out_aga The set Q consists of the following terms: =:=_in_gg(x0, x1) is_in_aa is_in_ag(x0) ackermann_in_aaa =:=_in_ag(x0) U6_aaa(x0) U8_aaa(x0) U11_aaa(x0) U7_aaa(x0) U9_aaa(x0) U12_aaa(x0) U10_aaa(x0) U13_aaa(x0) ackermann_in_aga(x0) U14_aaa(x0) U6_aga(x0, x1) U8_aga(x0) U11_aga(x0) U15_aaa(x0) U7_aga(x0) U9_aga(x0) U12_aga(x0) U10_aga(x0) U13_aga(x0) U14_aga(x0) U15_aga(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (24) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAA(M, N, Ret) -> U11_GAA(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_GAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> ACKERMANN_IN_GAA(M, N1, Ret1) The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, >=_in_gg(M, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U1_gg(M, N, >=_out_gg(M, 0)) -> U2_gg(M, N, =<_in_gg(M, 3)) =<_in_gg(X0, X1) -> =<_out_gg(X0, X1) U2_gg(M, N, =<_out_gg(M, 3)) -> U3_gg(M, N, >=_in_gg(N, 0)) U3_gg(M, N, >=_out_gg(N, 0)) -> U4_gg(M, N, =<_in_gg(N, 23)) U4_gg(M, N, =<_out_gg(N, 23)) -> U5_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U6_gga(M, N, Ret, =:=_in_gg(M, 0)) =:=_in_gg(X0, X1) -> =:=_out_gg(X0, X1) U6_gga(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gga(M, N, Ret, is_in_ag(Ret, +(N, 1))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U7_gga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U8_gga(M, N, Ret, =:=_in_gg(N, 0)) U8_gga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_gga(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gga(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U6_aga(M, N, Ret, =:=_in_ag(M, 0)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U6_aga(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aga(M, N, Ret, is_in_ag(Ret, +(N, 1))) U7_aga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_aga(M, N, Ret) ackermann_in_aga(M, N, Ret) -> U8_aga(M, N, Ret, =:=_in_gg(N, 0)) U8_aga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_aga(M, N, Ret, is_in_aa(M1, -(M, 1))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U9_aga(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U11_aga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_aga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_aga(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) ackermann_in_aaa(M, N, Ret) -> U6_aaa(M, N, Ret, =:=_in_ag(M, 0)) U6_aaa(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_aaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U8_aaa(M, N, Ret, =:=_in_ag(N, 0)) U8_aaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_aaa(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_aaa(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_aaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U11_aaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_aaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_aaa(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_aaa(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aaa(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aaa(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aaa(M, N, Ret) U12_aga(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aga(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aga(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aga(M, N, Ret) U10_aga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aga(M, N, Ret) U10_gga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U11_gga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_gga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_gga(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) ackermann_in_gaa(M, N, Ret) -> U6_gaa(M, N, Ret, =:=_in_gg(M, 0)) U6_gaa(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_gaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U8_gaa(M, N, Ret, =:=_in_ag(N, 0)) U8_gaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_gaa(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gaa(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_gaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U11_gaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_gaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_gaa(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U12_gaa(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gaa(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gaa(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gaa(M, N, Ret) U12_gga(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gga(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gga(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U5_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg 0 = 0 U2_gg(x1, x2, x3) = U2_gg(x1, x2, x3) =<_in_gg(x1, x2) = =<_in_gg(x1, x2) =<_out_gg(x1, x2) = =<_out_gg 3 = 3 U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) 23 = 23 U5_gg(x1, x2, x3) = U5_gg(x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U6_gga(x1, x2, x3, x4) = U6_gga(x2, x4) =:=_in_gg(x1, x2) = =:=_in_gg(x1, x2) =:=_out_gg(x1, x2) = =:=_out_gg U7_gga(x1, x2, x3, x4) = U7_gga(x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag +(x1, x2) = +(x1, x2) 1 = 1 ackermann_out_gga(x1, x2, x3) = ackermann_out_gga U8_gga(x1, x2, x3, x4) = U8_gga(x1, x4) U9_gga(x1, x2, x3, x4) = U9_gga(x4) -(x1, x2) = -(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x4) ackermann_in_aga(x1, x2, x3) = ackermann_in_aga(x2) U6_aga(x1, x2, x3, x4) = U6_aga(x2, x4) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag U7_aga(x1, x2, x3, x4) = U7_aga(x4) ackermann_out_aga(x1, x2, x3) = ackermann_out_aga U8_aga(x1, x2, x3, x4) = U8_aga(x4) U9_aga(x1, x2, x3, x4) = U9_aga(x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U10_aga(x1, x2, x3, x4) = U10_aga(x4) U11_aga(x1, x2, x3, x4) = U11_aga(x4) U12_aga(x1, x2, x3, x4, x5) = U12_aga(x5) ackermann_in_aaa(x1, x2, x3) = ackermann_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) ackermann_out_aaa(x1, x2, x3) = ackermann_out_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) U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4, x5) = U12_aaa(x5) U13_aaa(x1, x2, x3, x4, x5) = U13_aaa(x5) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U15_aaa(x1, x2, x3, x4) = U15_aaa(x4) U13_aga(x1, x2, x3, x4, x5) = U13_aga(x5) U14_aga(x1, x2, x3, x4) = U14_aga(x4) U15_aga(x1, x2, x3, x4) = U15_aga(x4) U11_gga(x1, x2, x3, x4) = U11_gga(x1, x4) U12_gga(x1, x2, x3, x4, x5) = U12_gga(x1, x5) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x4) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) U9_gaa(x1, x2, x3, x4) = U9_gaa(x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x4) U11_gaa(x1, x2, x3, x4) = U11_gaa(x1, x4) U12_gaa(x1, x2, x3, x4, x5) = U12_gaa(x1, x5) U13_gaa(x1, x2, x3, x4, x5) = U13_gaa(x5) U14_gaa(x1, x2, x3, x4) = U14_gaa(x4) U15_gaa(x1, x2, x3, x4) = U15_gaa(x4) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x5) U14_gga(x1, x2, x3, x4) = U14_gga(x4) U15_gga(x1, x2, x3, x4) = U15_gga(x4) main_out_gg(x1, x2) = main_out_gg ACKERMANN_IN_GAA(x1, x2, x3) = ACKERMANN_IN_GAA(x1) U11_GAA(x1, x2, x3, x4) = U11_GAA(x1, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (25) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (26) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAA(M, N, Ret) -> U11_GAA(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_GAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> ACKERMANN_IN_GAA(M, N1, Ret1) The TRS R consists of the following rules: is_in_aa(X0, X1) -> is_out_aa(X0, X1) The argument filtering Pi contains the following mapping: 1 = 1 -(x1, x2) = -(x1, x2) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa ACKERMANN_IN_GAA(x1, x2, x3) = ACKERMANN_IN_GAA(x1) U11_GAA(x1, x2, x3, x4) = U11_GAA(x1, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (27) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: main_in_2: (b,b) ackermann_in_3: (b,b,f) (f,b,f) (f,f,f) (b,f,f) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, >=_in_gg(M, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U1_gg(M, N, >=_out_gg(M, 0)) -> U2_gg(M, N, =<_in_gg(M, 3)) =<_in_gg(X0, X1) -> =<_out_gg(X0, X1) U2_gg(M, N, =<_out_gg(M, 3)) -> U3_gg(M, N, >=_in_gg(N, 0)) U3_gg(M, N, >=_out_gg(N, 0)) -> U4_gg(M, N, =<_in_gg(N, 23)) U4_gg(M, N, =<_out_gg(N, 23)) -> U5_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U6_gga(M, N, Ret, =:=_in_gg(M, 0)) =:=_in_gg(X0, X1) -> =:=_out_gg(X0, X1) U6_gga(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gga(M, N, Ret, is_in_ag(Ret, +(N, 1))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U7_gga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U8_gga(M, N, Ret, =:=_in_gg(N, 0)) U8_gga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_gga(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gga(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U6_aga(M, N, Ret, =:=_in_ag(M, 0)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U6_aga(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aga(M, N, Ret, is_in_ag(Ret, +(N, 1))) U7_aga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_aga(M, N, Ret) ackermann_in_aga(M, N, Ret) -> U8_aga(M, N, Ret, =:=_in_gg(N, 0)) U8_aga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_aga(M, N, Ret, is_in_aa(M1, -(M, 1))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U9_aga(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U11_aga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_aga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_aga(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) ackermann_in_aaa(M, N, Ret) -> U6_aaa(M, N, Ret, =:=_in_ag(M, 0)) U6_aaa(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_aaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U8_aaa(M, N, Ret, =:=_in_ag(N, 0)) U8_aaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_aaa(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_aaa(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_aaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U11_aaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_aaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_aaa(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_aaa(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aaa(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aaa(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aaa(M, N, Ret) U12_aga(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aga(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aga(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aga(M, N, Ret) U10_aga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aga(M, N, Ret) U10_gga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U11_gga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_gga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_gga(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) ackermann_in_gaa(M, N, Ret) -> U6_gaa(M, N, Ret, =:=_in_gg(M, 0)) U6_gaa(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_gaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U8_gaa(M, N, Ret, =:=_in_ag(N, 0)) U8_gaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_gaa(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gaa(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_gaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U11_gaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_gaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_gaa(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U12_gaa(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gaa(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gaa(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gaa(M, N, Ret) U12_gga(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gga(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gga(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U5_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) 0 = 0 U2_gg(x1, x2, x3) = U2_gg(x1, x2, x3) =<_in_gg(x1, x2) = =<_in_gg(x1, x2) =<_out_gg(x1, x2) = =<_out_gg(x1, x2) 3 = 3 U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) 23 = 23 U5_gg(x1, x2, x3) = U5_gg(x1, x2, x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U6_gga(x1, x2, x3, x4) = U6_gga(x1, x2, x4) =:=_in_gg(x1, x2) = =:=_in_gg(x1, x2) =:=_out_gg(x1, x2) = =:=_out_gg(x1, x2) U7_gga(x1, x2, x3, x4) = U7_gga(x1, x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) +(x1, x2) = +(x1, x2) 1 = 1 ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2) U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) -(x1, x2) = -(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) ackermann_in_aga(x1, x2, x3) = ackermann_in_aga(x2) U6_aga(x1, x2, x3, x4) = U6_aga(x2, x4) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag(x2) U7_aga(x1, x2, x3, x4) = U7_aga(x2, x4) ackermann_out_aga(x1, x2, x3) = ackermann_out_aga(x2) U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4) = U11_aga(x2, x4) U12_aga(x1, x2, x3, x4, x5) = U12_aga(x2, x5) ackermann_in_aaa(x1, x2, x3) = ackermann_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) ackermann_out_aaa(x1, x2, x3) = ackermann_out_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) U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4, x5) = U12_aaa(x5) U13_aaa(x1, x2, x3, x4, x5) = U13_aaa(x5) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U15_aaa(x1, x2, x3, x4) = U15_aaa(x4) U13_aga(x1, x2, x3, x4, x5) = U13_aga(x2, x5) U14_aga(x1, x2, x3, x4) = U14_aga(x2, x4) U15_aga(x1, x2, x3, x4) = U15_aga(x2, x4) U11_gga(x1, x2, x3, x4) = U11_gga(x1, x2, x4) U12_gga(x1, x2, x3, x4, x5) = U12_gga(x1, x2, x5) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa(x1) U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) U11_gaa(x1, x2, x3, x4) = U11_gaa(x1, x4) U12_gaa(x1, x2, x3, x4, x5) = U12_gaa(x1, x5) U13_gaa(x1, x2, x3, x4, x5) = U13_gaa(x1, x5) U14_gaa(x1, x2, x3, x4) = U14_gaa(x1, x4) U15_gaa(x1, x2, x3, x4) = U15_gaa(x1, x4) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x5) U14_gga(x1, x2, x3, x4) = U14_gga(x1, x2, x4) U15_gga(x1, x2, x3, x4) = U15_gga(x1, x2, x4) main_out_gg(x1, x2) = main_out_gg(x1, x2) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (28) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, >=_in_gg(M, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U1_gg(M, N, >=_out_gg(M, 0)) -> U2_gg(M, N, =<_in_gg(M, 3)) =<_in_gg(X0, X1) -> =<_out_gg(X0, X1) U2_gg(M, N, =<_out_gg(M, 3)) -> U3_gg(M, N, >=_in_gg(N, 0)) U3_gg(M, N, >=_out_gg(N, 0)) -> U4_gg(M, N, =<_in_gg(N, 23)) U4_gg(M, N, =<_out_gg(N, 23)) -> U5_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U6_gga(M, N, Ret, =:=_in_gg(M, 0)) =:=_in_gg(X0, X1) -> =:=_out_gg(X0, X1) U6_gga(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gga(M, N, Ret, is_in_ag(Ret, +(N, 1))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U7_gga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U8_gga(M, N, Ret, =:=_in_gg(N, 0)) U8_gga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_gga(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gga(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U6_aga(M, N, Ret, =:=_in_ag(M, 0)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U6_aga(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aga(M, N, Ret, is_in_ag(Ret, +(N, 1))) U7_aga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_aga(M, N, Ret) ackermann_in_aga(M, N, Ret) -> U8_aga(M, N, Ret, =:=_in_gg(N, 0)) U8_aga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_aga(M, N, Ret, is_in_aa(M1, -(M, 1))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U9_aga(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U11_aga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_aga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_aga(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) ackermann_in_aaa(M, N, Ret) -> U6_aaa(M, N, Ret, =:=_in_ag(M, 0)) U6_aaa(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_aaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U8_aaa(M, N, Ret, =:=_in_ag(N, 0)) U8_aaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_aaa(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_aaa(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_aaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U11_aaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_aaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_aaa(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_aaa(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aaa(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aaa(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aaa(M, N, Ret) U12_aga(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aga(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aga(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aga(M, N, Ret) U10_aga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aga(M, N, Ret) U10_gga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U11_gga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_gga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_gga(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) ackermann_in_gaa(M, N, Ret) -> U6_gaa(M, N, Ret, =:=_in_gg(M, 0)) U6_gaa(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_gaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U8_gaa(M, N, Ret, =:=_in_ag(N, 0)) U8_gaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_gaa(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gaa(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_gaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U11_gaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_gaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_gaa(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U12_gaa(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gaa(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gaa(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gaa(M, N, Ret) U12_gga(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gga(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gga(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U5_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) 0 = 0 U2_gg(x1, x2, x3) = U2_gg(x1, x2, x3) =<_in_gg(x1, x2) = =<_in_gg(x1, x2) =<_out_gg(x1, x2) = =<_out_gg(x1, x2) 3 = 3 U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) 23 = 23 U5_gg(x1, x2, x3) = U5_gg(x1, x2, x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U6_gga(x1, x2, x3, x4) = U6_gga(x1, x2, x4) =:=_in_gg(x1, x2) = =:=_in_gg(x1, x2) =:=_out_gg(x1, x2) = =:=_out_gg(x1, x2) U7_gga(x1, x2, x3, x4) = U7_gga(x1, x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) +(x1, x2) = +(x1, x2) 1 = 1 ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2) U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) -(x1, x2) = -(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) ackermann_in_aga(x1, x2, x3) = ackermann_in_aga(x2) U6_aga(x1, x2, x3, x4) = U6_aga(x2, x4) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag(x2) U7_aga(x1, x2, x3, x4) = U7_aga(x2, x4) ackermann_out_aga(x1, x2, x3) = ackermann_out_aga(x2) U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4) = U11_aga(x2, x4) U12_aga(x1, x2, x3, x4, x5) = U12_aga(x2, x5) ackermann_in_aaa(x1, x2, x3) = ackermann_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) ackermann_out_aaa(x1, x2, x3) = ackermann_out_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) U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4, x5) = U12_aaa(x5) U13_aaa(x1, x2, x3, x4, x5) = U13_aaa(x5) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U15_aaa(x1, x2, x3, x4) = U15_aaa(x4) U13_aga(x1, x2, x3, x4, x5) = U13_aga(x2, x5) U14_aga(x1, x2, x3, x4) = U14_aga(x2, x4) U15_aga(x1, x2, x3, x4) = U15_aga(x2, x4) U11_gga(x1, x2, x3, x4) = U11_gga(x1, x2, x4) U12_gga(x1, x2, x3, x4, x5) = U12_gga(x1, x2, x5) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa(x1) U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) U11_gaa(x1, x2, x3, x4) = U11_gaa(x1, x4) U12_gaa(x1, x2, x3, x4, x5) = U12_gaa(x1, x5) U13_gaa(x1, x2, x3, x4, x5) = U13_gaa(x1, x5) U14_gaa(x1, x2, x3, x4) = U14_gaa(x1, x4) U15_gaa(x1, x2, x3, x4) = U15_gaa(x1, x4) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x5) U14_gga(x1, x2, x3, x4) = U14_gga(x1, x2, x4) U15_gga(x1, x2, x3, x4) = U15_gga(x1, x2, x4) main_out_gg(x1, x2) = main_out_gg(x1, x2) ---------------------------------------- (29) 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: MAIN_IN_GG(M, N) -> U1_GG(M, N, >=_in_gg(M, 0)) MAIN_IN_GG(M, N) -> >=_IN_GG(M, 0) U1_GG(M, N, >=_out_gg(M, 0)) -> U2_GG(M, N, =<_in_gg(M, 3)) U1_GG(M, N, >=_out_gg(M, 0)) -> =<_IN_GG(M, 3) U2_GG(M, N, =<_out_gg(M, 3)) -> U3_GG(M, N, >=_in_gg(N, 0)) U2_GG(M, N, =<_out_gg(M, 3)) -> >=_IN_GG(N, 0) U3_GG(M, N, >=_out_gg(N, 0)) -> U4_GG(M, N, =<_in_gg(N, 23)) U3_GG(M, N, >=_out_gg(N, 0)) -> =<_IN_GG(N, 23) U4_GG(M, N, =<_out_gg(N, 23)) -> U5_GG(M, N, ackermann_in_gga(M, N, X1)) U4_GG(M, N, =<_out_gg(N, 23)) -> ACKERMANN_IN_GGA(M, N, X1) ACKERMANN_IN_GGA(M, N, Ret) -> U6_GGA(M, N, Ret, =:=_in_gg(M, 0)) ACKERMANN_IN_GGA(M, N, Ret) -> =:=_IN_GG(M, 0) U6_GGA(M, N, Ret, =:=_out_gg(M, 0)) -> U7_GGA(M, N, Ret, is_in_ag(Ret, +(N, 1))) U6_GGA(M, N, Ret, =:=_out_gg(M, 0)) -> IS_IN_AG(Ret, +(N, 1)) ACKERMANN_IN_GGA(M, N, Ret) -> U8_GGA(M, N, Ret, =:=_in_gg(N, 0)) ACKERMANN_IN_GGA(M, N, Ret) -> =:=_IN_GG(N, 0) U8_GGA(M, N, Ret, =:=_out_gg(N, 0)) -> U9_GGA(M, N, Ret, is_in_ag(M1, -(M, 1))) U8_GGA(M, N, Ret, =:=_out_gg(N, 0)) -> IS_IN_AG(M1, -(M, 1)) U9_GGA(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_GGA(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U9_GGA(M, N, Ret, is_out_ag(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AGA(M, N, Ret) -> U6_AGA(M, N, Ret, =:=_in_ag(M, 0)) ACKERMANN_IN_AGA(M, N, Ret) -> =:=_IN_AG(M, 0) U6_AGA(M, N, Ret, =:=_out_ag(M, 0)) -> U7_AGA(M, N, Ret, is_in_ag(Ret, +(N, 1))) U6_AGA(M, N, Ret, =:=_out_ag(M, 0)) -> IS_IN_AG(Ret, +(N, 1)) ACKERMANN_IN_AGA(M, N, Ret) -> U8_AGA(M, N, Ret, =:=_in_gg(N, 0)) ACKERMANN_IN_AGA(M, N, Ret) -> =:=_IN_GG(N, 0) U8_AGA(M, N, Ret, =:=_out_gg(N, 0)) -> U9_AGA(M, N, Ret, is_in_aa(M1, -(M, 1))) U8_AGA(M, N, Ret, =:=_out_gg(N, 0)) -> IS_IN_AA(M1, -(M, 1)) U9_AGA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_AGA(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U9_AGA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AGA(M, N, Ret) -> U11_AGA(M, N, Ret, is_in_ag(N1, -(N, 1))) ACKERMANN_IN_AGA(M, N, Ret) -> IS_IN_AG(N1, -(N, 1)) U11_AGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_AGA(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U11_AGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> ACKERMANN_IN_AAA(M, N1, Ret1) ACKERMANN_IN_AAA(M, N, Ret) -> U6_AAA(M, N, Ret, =:=_in_ag(M, 0)) ACKERMANN_IN_AAA(M, N, Ret) -> =:=_IN_AG(M, 0) U6_AAA(M, N, Ret, =:=_out_ag(M, 0)) -> U7_AAA(M, N, Ret, is_in_aa(Ret, +(N, 1))) U6_AAA(M, N, Ret, =:=_out_ag(M, 0)) -> IS_IN_AA(Ret, +(N, 1)) ACKERMANN_IN_AAA(M, N, Ret) -> U8_AAA(M, N, Ret, =:=_in_ag(N, 0)) ACKERMANN_IN_AAA(M, N, Ret) -> =:=_IN_AG(N, 0) U8_AAA(M, N, Ret, =:=_out_ag(N, 0)) -> U9_AAA(M, N, Ret, is_in_aa(M1, -(M, 1))) U8_AAA(M, N, Ret, =:=_out_ag(N, 0)) -> IS_IN_AA(M1, -(M, 1)) U9_AAA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_AAA(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U9_AAA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AAA(M, N, Ret) -> U11_AAA(M, N, Ret, is_in_aa(N1, -(N, 1))) ACKERMANN_IN_AAA(M, N, Ret) -> IS_IN_AA(N1, -(N, 1)) U11_AAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_AAA(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U11_AAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> ACKERMANN_IN_AAA(M, N1, Ret1) U12_AAA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_AAA(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U12_AAA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> IS_IN_AA(M1, -(M, 1)) U13_AAA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_AAA(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U13_AAA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U14_AAA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_AAA(M, N, Ret, is_in_aa(Ret, Ret2)) U14_AAA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> IS_IN_AA(Ret, Ret2) U12_AGA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_AGA(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U12_AGA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> IS_IN_AA(M1, -(M, 1)) U13_AGA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_AGA(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U13_AGA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U14_AGA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_AGA(M, N, Ret, is_in_aa(Ret, Ret2)) U14_AGA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> IS_IN_AA(Ret, Ret2) ACKERMANN_IN_GGA(M, N, Ret) -> U11_GGA(M, N, Ret, is_in_ag(N1, -(N, 1))) ACKERMANN_IN_GGA(M, N, Ret) -> IS_IN_AG(N1, -(N, 1)) U11_GGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_GGA(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U11_GGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> ACKERMANN_IN_GAA(M, N1, Ret1) ACKERMANN_IN_GAA(M, N, Ret) -> U6_GAA(M, N, Ret, =:=_in_gg(M, 0)) ACKERMANN_IN_GAA(M, N, Ret) -> =:=_IN_GG(M, 0) U6_GAA(M, N, Ret, =:=_out_gg(M, 0)) -> U7_GAA(M, N, Ret, is_in_aa(Ret, +(N, 1))) U6_GAA(M, N, Ret, =:=_out_gg(M, 0)) -> IS_IN_AA(Ret, +(N, 1)) ACKERMANN_IN_GAA(M, N, Ret) -> U8_GAA(M, N, Ret, =:=_in_ag(N, 0)) ACKERMANN_IN_GAA(M, N, Ret) -> =:=_IN_AG(N, 0) U8_GAA(M, N, Ret, =:=_out_ag(N, 0)) -> U9_GAA(M, N, Ret, is_in_ag(M1, -(M, 1))) U8_GAA(M, N, Ret, =:=_out_ag(N, 0)) -> IS_IN_AG(M1, -(M, 1)) U9_GAA(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_GAA(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U9_GAA(M, N, Ret, is_out_ag(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_GAA(M, N, Ret) -> U11_GAA(M, N, Ret, is_in_aa(N1, -(N, 1))) ACKERMANN_IN_GAA(M, N, Ret) -> IS_IN_AA(N1, -(N, 1)) U11_GAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_GAA(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U11_GAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> ACKERMANN_IN_GAA(M, N1, Ret1) U12_GAA(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_GAA(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U12_GAA(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> IS_IN_AG(M1, -(M, 1)) U13_GAA(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_GAA(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U13_GAA(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U14_GAA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_GAA(M, N, Ret, is_in_aa(Ret, Ret2)) U14_GAA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> IS_IN_AA(Ret, Ret2) U12_GGA(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_GGA(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U12_GGA(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> IS_IN_AG(M1, -(M, 1)) U13_GGA(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_GGA(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U13_GGA(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U14_GGA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_GGA(M, N, Ret, is_in_aa(Ret, Ret2)) U14_GGA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> IS_IN_AA(Ret, Ret2) The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, >=_in_gg(M, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U1_gg(M, N, >=_out_gg(M, 0)) -> U2_gg(M, N, =<_in_gg(M, 3)) =<_in_gg(X0, X1) -> =<_out_gg(X0, X1) U2_gg(M, N, =<_out_gg(M, 3)) -> U3_gg(M, N, >=_in_gg(N, 0)) U3_gg(M, N, >=_out_gg(N, 0)) -> U4_gg(M, N, =<_in_gg(N, 23)) U4_gg(M, N, =<_out_gg(N, 23)) -> U5_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U6_gga(M, N, Ret, =:=_in_gg(M, 0)) =:=_in_gg(X0, X1) -> =:=_out_gg(X0, X1) U6_gga(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gga(M, N, Ret, is_in_ag(Ret, +(N, 1))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U7_gga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U8_gga(M, N, Ret, =:=_in_gg(N, 0)) U8_gga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_gga(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gga(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U6_aga(M, N, Ret, =:=_in_ag(M, 0)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U6_aga(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aga(M, N, Ret, is_in_ag(Ret, +(N, 1))) U7_aga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_aga(M, N, Ret) ackermann_in_aga(M, N, Ret) -> U8_aga(M, N, Ret, =:=_in_gg(N, 0)) U8_aga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_aga(M, N, Ret, is_in_aa(M1, -(M, 1))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U9_aga(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U11_aga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_aga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_aga(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) ackermann_in_aaa(M, N, Ret) -> U6_aaa(M, N, Ret, =:=_in_ag(M, 0)) U6_aaa(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_aaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U8_aaa(M, N, Ret, =:=_in_ag(N, 0)) U8_aaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_aaa(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_aaa(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_aaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U11_aaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_aaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_aaa(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_aaa(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aaa(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aaa(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aaa(M, N, Ret) U12_aga(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aga(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aga(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aga(M, N, Ret) U10_aga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aga(M, N, Ret) U10_gga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U11_gga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_gga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_gga(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) ackermann_in_gaa(M, N, Ret) -> U6_gaa(M, N, Ret, =:=_in_gg(M, 0)) U6_gaa(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_gaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U8_gaa(M, N, Ret, =:=_in_ag(N, 0)) U8_gaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_gaa(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gaa(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_gaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U11_gaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_gaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_gaa(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U12_gaa(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gaa(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gaa(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gaa(M, N, Ret) U12_gga(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gga(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gga(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U5_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) 0 = 0 U2_gg(x1, x2, x3) = U2_gg(x1, x2, x3) =<_in_gg(x1, x2) = =<_in_gg(x1, x2) =<_out_gg(x1, x2) = =<_out_gg(x1, x2) 3 = 3 U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) 23 = 23 U5_gg(x1, x2, x3) = U5_gg(x1, x2, x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U6_gga(x1, x2, x3, x4) = U6_gga(x1, x2, x4) =:=_in_gg(x1, x2) = =:=_in_gg(x1, x2) =:=_out_gg(x1, x2) = =:=_out_gg(x1, x2) U7_gga(x1, x2, x3, x4) = U7_gga(x1, x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) +(x1, x2) = +(x1, x2) 1 = 1 ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2) U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) -(x1, x2) = -(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) ackermann_in_aga(x1, x2, x3) = ackermann_in_aga(x2) U6_aga(x1, x2, x3, x4) = U6_aga(x2, x4) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag(x2) U7_aga(x1, x2, x3, x4) = U7_aga(x2, x4) ackermann_out_aga(x1, x2, x3) = ackermann_out_aga(x2) U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4) = U11_aga(x2, x4) U12_aga(x1, x2, x3, x4, x5) = U12_aga(x2, x5) ackermann_in_aaa(x1, x2, x3) = ackermann_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) ackermann_out_aaa(x1, x2, x3) = ackermann_out_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) U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4, x5) = U12_aaa(x5) U13_aaa(x1, x2, x3, x4, x5) = U13_aaa(x5) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U15_aaa(x1, x2, x3, x4) = U15_aaa(x4) U13_aga(x1, x2, x3, x4, x5) = U13_aga(x2, x5) U14_aga(x1, x2, x3, x4) = U14_aga(x2, x4) U15_aga(x1, x2, x3, x4) = U15_aga(x2, x4) U11_gga(x1, x2, x3, x4) = U11_gga(x1, x2, x4) U12_gga(x1, x2, x3, x4, x5) = U12_gga(x1, x2, x5) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa(x1) U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) U11_gaa(x1, x2, x3, x4) = U11_gaa(x1, x4) U12_gaa(x1, x2, x3, x4, x5) = U12_gaa(x1, x5) U13_gaa(x1, x2, x3, x4, x5) = U13_gaa(x1, x5) U14_gaa(x1, x2, x3, x4) = U14_gaa(x1, x4) U15_gaa(x1, x2, x3, x4) = U15_gaa(x1, x4) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x5) U14_gga(x1, x2, x3, x4) = U14_gga(x1, x2, x4) U15_gga(x1, x2, x3, x4) = U15_gga(x1, x2, x4) main_out_gg(x1, x2) = main_out_gg(x1, x2) MAIN_IN_GG(x1, x2) = MAIN_IN_GG(x1, x2) U1_GG(x1, x2, x3) = U1_GG(x1, x2, x3) >=_IN_GG(x1, x2) = >=_IN_GG(x1, x2) U2_GG(x1, x2, x3) = U2_GG(x1, x2, x3) =<_IN_GG(x1, x2) = =<_IN_GG(x1, x2) U3_GG(x1, x2, x3) = U3_GG(x1, x2, x3) U4_GG(x1, x2, x3) = U4_GG(x1, x2, x3) U5_GG(x1, x2, x3) = U5_GG(x1, x2, x3) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U6_GGA(x1, x2, x3, x4) = U6_GGA(x1, x2, x4) =:=_IN_GG(x1, x2) = =:=_IN_GG(x1, x2) U7_GGA(x1, x2, x3, x4) = U7_GGA(x1, x2, x4) IS_IN_AG(x1, x2) = IS_IN_AG(x2) U8_GGA(x1, x2, x3, x4) = U8_GGA(x1, x2, x4) U9_GGA(x1, x2, x3, x4) = U9_GGA(x1, x2, x4) U10_GGA(x1, x2, x3, x4) = U10_GGA(x1, x2, x4) ACKERMANN_IN_AGA(x1, x2, x3) = ACKERMANN_IN_AGA(x2) U6_AGA(x1, x2, x3, x4) = U6_AGA(x2, x4) =:=_IN_AG(x1, x2) = =:=_IN_AG(x2) U7_AGA(x1, x2, x3, x4) = U7_AGA(x2, x4) U8_AGA(x1, x2, x3, x4) = U8_AGA(x2, x4) U9_AGA(x1, x2, x3, x4) = U9_AGA(x2, x4) IS_IN_AA(x1, x2) = IS_IN_AA U10_AGA(x1, x2, x3, x4) = U10_AGA(x2, x4) U11_AGA(x1, x2, x3, x4) = U11_AGA(x2, x4) U12_AGA(x1, x2, x3, x4, x5) = U12_AGA(x2, x5) ACKERMANN_IN_AAA(x1, x2, x3) = ACKERMANN_IN_AAA U6_AAA(x1, x2, x3, x4) = U6_AAA(x4) U7_AAA(x1, x2, x3, x4) = U7_AAA(x4) U8_AAA(x1, x2, x3, x4) = U8_AAA(x4) U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) U11_AAA(x1, x2, x3, x4) = U11_AAA(x4) U12_AAA(x1, x2, x3, x4, x5) = U12_AAA(x5) U13_AAA(x1, x2, x3, x4, x5) = U13_AAA(x5) U14_AAA(x1, x2, x3, x4) = U14_AAA(x4) U15_AAA(x1, x2, x3, x4) = U15_AAA(x4) U13_AGA(x1, x2, x3, x4, x5) = U13_AGA(x2, x5) U14_AGA(x1, x2, x3, x4) = U14_AGA(x2, x4) U15_AGA(x1, x2, x3, x4) = U15_AGA(x2, x4) U11_GGA(x1, x2, x3, x4) = U11_GGA(x1, x2, x4) U12_GGA(x1, x2, x3, x4, x5) = U12_GGA(x1, x2, x5) ACKERMANN_IN_GAA(x1, x2, x3) = ACKERMANN_IN_GAA(x1) U6_GAA(x1, x2, x3, x4) = U6_GAA(x1, x4) U7_GAA(x1, x2, x3, x4) = U7_GAA(x1, x4) U8_GAA(x1, x2, x3, x4) = U8_GAA(x1, x4) U9_GAA(x1, x2, x3, x4) = U9_GAA(x1, x4) U10_GAA(x1, x2, x3, x4) = U10_GAA(x1, x4) U11_GAA(x1, x2, x3, x4) = U11_GAA(x1, x4) U12_GAA(x1, x2, x3, x4, x5) = U12_GAA(x1, x5) U13_GAA(x1, x2, x3, x4, x5) = U13_GAA(x1, x5) U14_GAA(x1, x2, x3, x4) = U14_GAA(x1, x4) U15_GAA(x1, x2, x3, x4) = U15_GAA(x1, x4) U13_GGA(x1, x2, x3, x4, x5) = U13_GGA(x1, x2, x5) U14_GGA(x1, x2, x3, x4) = U14_GGA(x1, x2, x4) U15_GGA(x1, x2, x3, x4) = U15_GGA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (30) Obligation: Pi DP problem: The TRS P consists of the following rules: MAIN_IN_GG(M, N) -> U1_GG(M, N, >=_in_gg(M, 0)) MAIN_IN_GG(M, N) -> >=_IN_GG(M, 0) U1_GG(M, N, >=_out_gg(M, 0)) -> U2_GG(M, N, =<_in_gg(M, 3)) U1_GG(M, N, >=_out_gg(M, 0)) -> =<_IN_GG(M, 3) U2_GG(M, N, =<_out_gg(M, 3)) -> U3_GG(M, N, >=_in_gg(N, 0)) U2_GG(M, N, =<_out_gg(M, 3)) -> >=_IN_GG(N, 0) U3_GG(M, N, >=_out_gg(N, 0)) -> U4_GG(M, N, =<_in_gg(N, 23)) U3_GG(M, N, >=_out_gg(N, 0)) -> =<_IN_GG(N, 23) U4_GG(M, N, =<_out_gg(N, 23)) -> U5_GG(M, N, ackermann_in_gga(M, N, X1)) U4_GG(M, N, =<_out_gg(N, 23)) -> ACKERMANN_IN_GGA(M, N, X1) ACKERMANN_IN_GGA(M, N, Ret) -> U6_GGA(M, N, Ret, =:=_in_gg(M, 0)) ACKERMANN_IN_GGA(M, N, Ret) -> =:=_IN_GG(M, 0) U6_GGA(M, N, Ret, =:=_out_gg(M, 0)) -> U7_GGA(M, N, Ret, is_in_ag(Ret, +(N, 1))) U6_GGA(M, N, Ret, =:=_out_gg(M, 0)) -> IS_IN_AG(Ret, +(N, 1)) ACKERMANN_IN_GGA(M, N, Ret) -> U8_GGA(M, N, Ret, =:=_in_gg(N, 0)) ACKERMANN_IN_GGA(M, N, Ret) -> =:=_IN_GG(N, 0) U8_GGA(M, N, Ret, =:=_out_gg(N, 0)) -> U9_GGA(M, N, Ret, is_in_ag(M1, -(M, 1))) U8_GGA(M, N, Ret, =:=_out_gg(N, 0)) -> IS_IN_AG(M1, -(M, 1)) U9_GGA(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_GGA(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U9_GGA(M, N, Ret, is_out_ag(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AGA(M, N, Ret) -> U6_AGA(M, N, Ret, =:=_in_ag(M, 0)) ACKERMANN_IN_AGA(M, N, Ret) -> =:=_IN_AG(M, 0) U6_AGA(M, N, Ret, =:=_out_ag(M, 0)) -> U7_AGA(M, N, Ret, is_in_ag(Ret, +(N, 1))) U6_AGA(M, N, Ret, =:=_out_ag(M, 0)) -> IS_IN_AG(Ret, +(N, 1)) ACKERMANN_IN_AGA(M, N, Ret) -> U8_AGA(M, N, Ret, =:=_in_gg(N, 0)) ACKERMANN_IN_AGA(M, N, Ret) -> =:=_IN_GG(N, 0) U8_AGA(M, N, Ret, =:=_out_gg(N, 0)) -> U9_AGA(M, N, Ret, is_in_aa(M1, -(M, 1))) U8_AGA(M, N, Ret, =:=_out_gg(N, 0)) -> IS_IN_AA(M1, -(M, 1)) U9_AGA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_AGA(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U9_AGA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AGA(M, N, Ret) -> U11_AGA(M, N, Ret, is_in_ag(N1, -(N, 1))) ACKERMANN_IN_AGA(M, N, Ret) -> IS_IN_AG(N1, -(N, 1)) U11_AGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_AGA(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U11_AGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> ACKERMANN_IN_AAA(M, N1, Ret1) ACKERMANN_IN_AAA(M, N, Ret) -> U6_AAA(M, N, Ret, =:=_in_ag(M, 0)) ACKERMANN_IN_AAA(M, N, Ret) -> =:=_IN_AG(M, 0) U6_AAA(M, N, Ret, =:=_out_ag(M, 0)) -> U7_AAA(M, N, Ret, is_in_aa(Ret, +(N, 1))) U6_AAA(M, N, Ret, =:=_out_ag(M, 0)) -> IS_IN_AA(Ret, +(N, 1)) ACKERMANN_IN_AAA(M, N, Ret) -> U8_AAA(M, N, Ret, =:=_in_ag(N, 0)) ACKERMANN_IN_AAA(M, N, Ret) -> =:=_IN_AG(N, 0) U8_AAA(M, N, Ret, =:=_out_ag(N, 0)) -> U9_AAA(M, N, Ret, is_in_aa(M1, -(M, 1))) U8_AAA(M, N, Ret, =:=_out_ag(N, 0)) -> IS_IN_AA(M1, -(M, 1)) U9_AAA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_AAA(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U9_AAA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AAA(M, N, Ret) -> U11_AAA(M, N, Ret, is_in_aa(N1, -(N, 1))) ACKERMANN_IN_AAA(M, N, Ret) -> IS_IN_AA(N1, -(N, 1)) U11_AAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_AAA(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U11_AAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> ACKERMANN_IN_AAA(M, N1, Ret1) U12_AAA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_AAA(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U12_AAA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> IS_IN_AA(M1, -(M, 1)) U13_AAA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_AAA(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U13_AAA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U14_AAA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_AAA(M, N, Ret, is_in_aa(Ret, Ret2)) U14_AAA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> IS_IN_AA(Ret, Ret2) U12_AGA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_AGA(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U12_AGA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> IS_IN_AA(M1, -(M, 1)) U13_AGA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_AGA(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U13_AGA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U14_AGA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_AGA(M, N, Ret, is_in_aa(Ret, Ret2)) U14_AGA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> IS_IN_AA(Ret, Ret2) ACKERMANN_IN_GGA(M, N, Ret) -> U11_GGA(M, N, Ret, is_in_ag(N1, -(N, 1))) ACKERMANN_IN_GGA(M, N, Ret) -> IS_IN_AG(N1, -(N, 1)) U11_GGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_GGA(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U11_GGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> ACKERMANN_IN_GAA(M, N1, Ret1) ACKERMANN_IN_GAA(M, N, Ret) -> U6_GAA(M, N, Ret, =:=_in_gg(M, 0)) ACKERMANN_IN_GAA(M, N, Ret) -> =:=_IN_GG(M, 0) U6_GAA(M, N, Ret, =:=_out_gg(M, 0)) -> U7_GAA(M, N, Ret, is_in_aa(Ret, +(N, 1))) U6_GAA(M, N, Ret, =:=_out_gg(M, 0)) -> IS_IN_AA(Ret, +(N, 1)) ACKERMANN_IN_GAA(M, N, Ret) -> U8_GAA(M, N, Ret, =:=_in_ag(N, 0)) ACKERMANN_IN_GAA(M, N, Ret) -> =:=_IN_AG(N, 0) U8_GAA(M, N, Ret, =:=_out_ag(N, 0)) -> U9_GAA(M, N, Ret, is_in_ag(M1, -(M, 1))) U8_GAA(M, N, Ret, =:=_out_ag(N, 0)) -> IS_IN_AG(M1, -(M, 1)) U9_GAA(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_GAA(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U9_GAA(M, N, Ret, is_out_ag(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_GAA(M, N, Ret) -> U11_GAA(M, N, Ret, is_in_aa(N1, -(N, 1))) ACKERMANN_IN_GAA(M, N, Ret) -> IS_IN_AA(N1, -(N, 1)) U11_GAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_GAA(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U11_GAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> ACKERMANN_IN_GAA(M, N1, Ret1) U12_GAA(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_GAA(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U12_GAA(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> IS_IN_AG(M1, -(M, 1)) U13_GAA(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_GAA(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U13_GAA(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U14_GAA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_GAA(M, N, Ret, is_in_aa(Ret, Ret2)) U14_GAA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> IS_IN_AA(Ret, Ret2) U12_GGA(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_GGA(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U12_GGA(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> IS_IN_AG(M1, -(M, 1)) U13_GGA(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_GGA(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U13_GGA(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U14_GGA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_GGA(M, N, Ret, is_in_aa(Ret, Ret2)) U14_GGA(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> IS_IN_AA(Ret, Ret2) The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, >=_in_gg(M, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U1_gg(M, N, >=_out_gg(M, 0)) -> U2_gg(M, N, =<_in_gg(M, 3)) =<_in_gg(X0, X1) -> =<_out_gg(X0, X1) U2_gg(M, N, =<_out_gg(M, 3)) -> U3_gg(M, N, >=_in_gg(N, 0)) U3_gg(M, N, >=_out_gg(N, 0)) -> U4_gg(M, N, =<_in_gg(N, 23)) U4_gg(M, N, =<_out_gg(N, 23)) -> U5_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U6_gga(M, N, Ret, =:=_in_gg(M, 0)) =:=_in_gg(X0, X1) -> =:=_out_gg(X0, X1) U6_gga(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gga(M, N, Ret, is_in_ag(Ret, +(N, 1))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U7_gga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U8_gga(M, N, Ret, =:=_in_gg(N, 0)) U8_gga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_gga(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gga(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U6_aga(M, N, Ret, =:=_in_ag(M, 0)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U6_aga(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aga(M, N, Ret, is_in_ag(Ret, +(N, 1))) U7_aga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_aga(M, N, Ret) ackermann_in_aga(M, N, Ret) -> U8_aga(M, N, Ret, =:=_in_gg(N, 0)) U8_aga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_aga(M, N, Ret, is_in_aa(M1, -(M, 1))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U9_aga(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U11_aga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_aga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_aga(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) ackermann_in_aaa(M, N, Ret) -> U6_aaa(M, N, Ret, =:=_in_ag(M, 0)) U6_aaa(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_aaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U8_aaa(M, N, Ret, =:=_in_ag(N, 0)) U8_aaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_aaa(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_aaa(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_aaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U11_aaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_aaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_aaa(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_aaa(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aaa(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aaa(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aaa(M, N, Ret) U12_aga(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aga(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aga(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aga(M, N, Ret) U10_aga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aga(M, N, Ret) U10_gga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U11_gga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_gga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_gga(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) ackermann_in_gaa(M, N, Ret) -> U6_gaa(M, N, Ret, =:=_in_gg(M, 0)) U6_gaa(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_gaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U8_gaa(M, N, Ret, =:=_in_ag(N, 0)) U8_gaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_gaa(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gaa(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_gaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U11_gaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_gaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_gaa(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U12_gaa(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gaa(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gaa(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gaa(M, N, Ret) U12_gga(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gga(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gga(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U5_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) 0 = 0 U2_gg(x1, x2, x3) = U2_gg(x1, x2, x3) =<_in_gg(x1, x2) = =<_in_gg(x1, x2) =<_out_gg(x1, x2) = =<_out_gg(x1, x2) 3 = 3 U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) 23 = 23 U5_gg(x1, x2, x3) = U5_gg(x1, x2, x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U6_gga(x1, x2, x3, x4) = U6_gga(x1, x2, x4) =:=_in_gg(x1, x2) = =:=_in_gg(x1, x2) =:=_out_gg(x1, x2) = =:=_out_gg(x1, x2) U7_gga(x1, x2, x3, x4) = U7_gga(x1, x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) +(x1, x2) = +(x1, x2) 1 = 1 ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2) U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) -(x1, x2) = -(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) ackermann_in_aga(x1, x2, x3) = ackermann_in_aga(x2) U6_aga(x1, x2, x3, x4) = U6_aga(x2, x4) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag(x2) U7_aga(x1, x2, x3, x4) = U7_aga(x2, x4) ackermann_out_aga(x1, x2, x3) = ackermann_out_aga(x2) U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4) = U11_aga(x2, x4) U12_aga(x1, x2, x3, x4, x5) = U12_aga(x2, x5) ackermann_in_aaa(x1, x2, x3) = ackermann_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) ackermann_out_aaa(x1, x2, x3) = ackermann_out_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) U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4, x5) = U12_aaa(x5) U13_aaa(x1, x2, x3, x4, x5) = U13_aaa(x5) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U15_aaa(x1, x2, x3, x4) = U15_aaa(x4) U13_aga(x1, x2, x3, x4, x5) = U13_aga(x2, x5) U14_aga(x1, x2, x3, x4) = U14_aga(x2, x4) U15_aga(x1, x2, x3, x4) = U15_aga(x2, x4) U11_gga(x1, x2, x3, x4) = U11_gga(x1, x2, x4) U12_gga(x1, x2, x3, x4, x5) = U12_gga(x1, x2, x5) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa(x1) U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) U11_gaa(x1, x2, x3, x4) = U11_gaa(x1, x4) U12_gaa(x1, x2, x3, x4, x5) = U12_gaa(x1, x5) U13_gaa(x1, x2, x3, x4, x5) = U13_gaa(x1, x5) U14_gaa(x1, x2, x3, x4) = U14_gaa(x1, x4) U15_gaa(x1, x2, x3, x4) = U15_gaa(x1, x4) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x5) U14_gga(x1, x2, x3, x4) = U14_gga(x1, x2, x4) U15_gga(x1, x2, x3, x4) = U15_gga(x1, x2, x4) main_out_gg(x1, x2) = main_out_gg(x1, x2) MAIN_IN_GG(x1, x2) = MAIN_IN_GG(x1, x2) U1_GG(x1, x2, x3) = U1_GG(x1, x2, x3) >=_IN_GG(x1, x2) = >=_IN_GG(x1, x2) U2_GG(x1, x2, x3) = U2_GG(x1, x2, x3) =<_IN_GG(x1, x2) = =<_IN_GG(x1, x2) U3_GG(x1, x2, x3) = U3_GG(x1, x2, x3) U4_GG(x1, x2, x3) = U4_GG(x1, x2, x3) U5_GG(x1, x2, x3) = U5_GG(x1, x2, x3) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U6_GGA(x1, x2, x3, x4) = U6_GGA(x1, x2, x4) =:=_IN_GG(x1, x2) = =:=_IN_GG(x1, x2) U7_GGA(x1, x2, x3, x4) = U7_GGA(x1, x2, x4) IS_IN_AG(x1, x2) = IS_IN_AG(x2) U8_GGA(x1, x2, x3, x4) = U8_GGA(x1, x2, x4) U9_GGA(x1, x2, x3, x4) = U9_GGA(x1, x2, x4) U10_GGA(x1, x2, x3, x4) = U10_GGA(x1, x2, x4) ACKERMANN_IN_AGA(x1, x2, x3) = ACKERMANN_IN_AGA(x2) U6_AGA(x1, x2, x3, x4) = U6_AGA(x2, x4) =:=_IN_AG(x1, x2) = =:=_IN_AG(x2) U7_AGA(x1, x2, x3, x4) = U7_AGA(x2, x4) U8_AGA(x1, x2, x3, x4) = U8_AGA(x2, x4) U9_AGA(x1, x2, x3, x4) = U9_AGA(x2, x4) IS_IN_AA(x1, x2) = IS_IN_AA U10_AGA(x1, x2, x3, x4) = U10_AGA(x2, x4) U11_AGA(x1, x2, x3, x4) = U11_AGA(x2, x4) U12_AGA(x1, x2, x3, x4, x5) = U12_AGA(x2, x5) ACKERMANN_IN_AAA(x1, x2, x3) = ACKERMANN_IN_AAA U6_AAA(x1, x2, x3, x4) = U6_AAA(x4) U7_AAA(x1, x2, x3, x4) = U7_AAA(x4) U8_AAA(x1, x2, x3, x4) = U8_AAA(x4) U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U10_AAA(x1, x2, x3, x4) = U10_AAA(x4) U11_AAA(x1, x2, x3, x4) = U11_AAA(x4) U12_AAA(x1, x2, x3, x4, x5) = U12_AAA(x5) U13_AAA(x1, x2, x3, x4, x5) = U13_AAA(x5) U14_AAA(x1, x2, x3, x4) = U14_AAA(x4) U15_AAA(x1, x2, x3, x4) = U15_AAA(x4) U13_AGA(x1, x2, x3, x4, x5) = U13_AGA(x2, x5) U14_AGA(x1, x2, x3, x4) = U14_AGA(x2, x4) U15_AGA(x1, x2, x3, x4) = U15_AGA(x2, x4) U11_GGA(x1, x2, x3, x4) = U11_GGA(x1, x2, x4) U12_GGA(x1, x2, x3, x4, x5) = U12_GGA(x1, x2, x5) ACKERMANN_IN_GAA(x1, x2, x3) = ACKERMANN_IN_GAA(x1) U6_GAA(x1, x2, x3, x4) = U6_GAA(x1, x4) U7_GAA(x1, x2, x3, x4) = U7_GAA(x1, x4) U8_GAA(x1, x2, x3, x4) = U8_GAA(x1, x4) U9_GAA(x1, x2, x3, x4) = U9_GAA(x1, x4) U10_GAA(x1, x2, x3, x4) = U10_GAA(x1, x4) U11_GAA(x1, x2, x3, x4) = U11_GAA(x1, x4) U12_GAA(x1, x2, x3, x4, x5) = U12_GAA(x1, x5) U13_GAA(x1, x2, x3, x4, x5) = U13_GAA(x1, x5) U14_GAA(x1, x2, x3, x4) = U14_GAA(x1, x4) U15_GAA(x1, x2, x3, x4) = U15_GAA(x1, x4) U13_GGA(x1, x2, x3, x4, x5) = U13_GGA(x1, x2, x5) U14_GGA(x1, x2, x3, x4) = U14_GGA(x1, x2, x4) U15_GGA(x1, x2, x3, x4) = U15_GGA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (31) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 72 less nodes. ---------------------------------------- (32) Complex Obligation (AND) ---------------------------------------- (33) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_AGA(M, N, Ret) -> U8_AGA(M, N, Ret, =:=_in_gg(N, 0)) U8_AGA(M, N, Ret, =:=_out_gg(N, 0)) -> U9_AGA(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_AGA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AGA(M, N, Ret) -> U11_AGA(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_AGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_AGA(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_AGA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_AGA(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_AGA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) ACKERMANN_IN_AAA(M, N, Ret) -> U8_AAA(M, N, Ret, =:=_in_ag(N, 0)) U8_AAA(M, N, Ret, =:=_out_ag(N, 0)) -> U9_AAA(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_AAA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AAA(M, N, Ret) -> U11_AAA(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_AAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_AAA(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_AAA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_AAA(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_AAA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U11_AAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> ACKERMANN_IN_AAA(M, N1, Ret1) U11_AGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> ACKERMANN_IN_AAA(M, N1, Ret1) The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, >=_in_gg(M, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U1_gg(M, N, >=_out_gg(M, 0)) -> U2_gg(M, N, =<_in_gg(M, 3)) =<_in_gg(X0, X1) -> =<_out_gg(X0, X1) U2_gg(M, N, =<_out_gg(M, 3)) -> U3_gg(M, N, >=_in_gg(N, 0)) U3_gg(M, N, >=_out_gg(N, 0)) -> U4_gg(M, N, =<_in_gg(N, 23)) U4_gg(M, N, =<_out_gg(N, 23)) -> U5_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U6_gga(M, N, Ret, =:=_in_gg(M, 0)) =:=_in_gg(X0, X1) -> =:=_out_gg(X0, X1) U6_gga(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gga(M, N, Ret, is_in_ag(Ret, +(N, 1))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U7_gga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U8_gga(M, N, Ret, =:=_in_gg(N, 0)) U8_gga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_gga(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gga(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U6_aga(M, N, Ret, =:=_in_ag(M, 0)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U6_aga(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aga(M, N, Ret, is_in_ag(Ret, +(N, 1))) U7_aga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_aga(M, N, Ret) ackermann_in_aga(M, N, Ret) -> U8_aga(M, N, Ret, =:=_in_gg(N, 0)) U8_aga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_aga(M, N, Ret, is_in_aa(M1, -(M, 1))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U9_aga(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U11_aga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_aga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_aga(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) ackermann_in_aaa(M, N, Ret) -> U6_aaa(M, N, Ret, =:=_in_ag(M, 0)) U6_aaa(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_aaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U8_aaa(M, N, Ret, =:=_in_ag(N, 0)) U8_aaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_aaa(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_aaa(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_aaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U11_aaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_aaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_aaa(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_aaa(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aaa(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aaa(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aaa(M, N, Ret) U12_aga(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aga(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aga(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aga(M, N, Ret) U10_aga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aga(M, N, Ret) U10_gga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U11_gga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_gga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_gga(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) ackermann_in_gaa(M, N, Ret) -> U6_gaa(M, N, Ret, =:=_in_gg(M, 0)) U6_gaa(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_gaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U8_gaa(M, N, Ret, =:=_in_ag(N, 0)) U8_gaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_gaa(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gaa(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_gaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U11_gaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_gaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_gaa(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U12_gaa(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gaa(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gaa(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gaa(M, N, Ret) U12_gga(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gga(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gga(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U5_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) 0 = 0 U2_gg(x1, x2, x3) = U2_gg(x1, x2, x3) =<_in_gg(x1, x2) = =<_in_gg(x1, x2) =<_out_gg(x1, x2) = =<_out_gg(x1, x2) 3 = 3 U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) 23 = 23 U5_gg(x1, x2, x3) = U5_gg(x1, x2, x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U6_gga(x1, x2, x3, x4) = U6_gga(x1, x2, x4) =:=_in_gg(x1, x2) = =:=_in_gg(x1, x2) =:=_out_gg(x1, x2) = =:=_out_gg(x1, x2) U7_gga(x1, x2, x3, x4) = U7_gga(x1, x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) +(x1, x2) = +(x1, x2) 1 = 1 ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2) U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) -(x1, x2) = -(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) ackermann_in_aga(x1, x2, x3) = ackermann_in_aga(x2) U6_aga(x1, x2, x3, x4) = U6_aga(x2, x4) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag(x2) U7_aga(x1, x2, x3, x4) = U7_aga(x2, x4) ackermann_out_aga(x1, x2, x3) = ackermann_out_aga(x2) U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4) = U11_aga(x2, x4) U12_aga(x1, x2, x3, x4, x5) = U12_aga(x2, x5) ackermann_in_aaa(x1, x2, x3) = ackermann_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) ackermann_out_aaa(x1, x2, x3) = ackermann_out_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) U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4, x5) = U12_aaa(x5) U13_aaa(x1, x2, x3, x4, x5) = U13_aaa(x5) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U15_aaa(x1, x2, x3, x4) = U15_aaa(x4) U13_aga(x1, x2, x3, x4, x5) = U13_aga(x2, x5) U14_aga(x1, x2, x3, x4) = U14_aga(x2, x4) U15_aga(x1, x2, x3, x4) = U15_aga(x2, x4) U11_gga(x1, x2, x3, x4) = U11_gga(x1, x2, x4) U12_gga(x1, x2, x3, x4, x5) = U12_gga(x1, x2, x5) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa(x1) U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) U11_gaa(x1, x2, x3, x4) = U11_gaa(x1, x4) U12_gaa(x1, x2, x3, x4, x5) = U12_gaa(x1, x5) U13_gaa(x1, x2, x3, x4, x5) = U13_gaa(x1, x5) U14_gaa(x1, x2, x3, x4) = U14_gaa(x1, x4) U15_gaa(x1, x2, x3, x4) = U15_gaa(x1, x4) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x5) U14_gga(x1, x2, x3, x4) = U14_gga(x1, x2, x4) U15_gga(x1, x2, x3, x4) = U15_gga(x1, x2, x4) main_out_gg(x1, x2) = main_out_gg(x1, x2) ACKERMANN_IN_AGA(x1, x2, x3) = ACKERMANN_IN_AGA(x2) U8_AGA(x1, x2, x3, x4) = U8_AGA(x2, x4) U9_AGA(x1, x2, x3, x4) = U9_AGA(x2, x4) U11_AGA(x1, x2, x3, x4) = U11_AGA(x2, x4) U12_AGA(x1, x2, x3, x4, x5) = U12_AGA(x2, x5) ACKERMANN_IN_AAA(x1, x2, x3) = ACKERMANN_IN_AAA U8_AAA(x1, x2, x3, x4) = U8_AAA(x4) U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U11_AAA(x1, x2, x3, x4) = U11_AAA(x4) U12_AAA(x1, x2, x3, x4, x5) = U12_AAA(x5) U13_AAA(x1, x2, x3, x4, x5) = U13_AAA(x5) U13_AGA(x1, x2, x3, x4, x5) = U13_AGA(x2, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (34) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (35) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_AGA(M, N, Ret) -> U8_AGA(M, N, Ret, =:=_in_gg(N, 0)) U8_AGA(M, N, Ret, =:=_out_gg(N, 0)) -> U9_AGA(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_AGA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AGA(M, N, Ret) -> U11_AGA(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_AGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_AGA(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_AGA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_AGA(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_AGA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) ACKERMANN_IN_AAA(M, N, Ret) -> U8_AAA(M, N, Ret, =:=_in_ag(N, 0)) U8_AAA(M, N, Ret, =:=_out_ag(N, 0)) -> U9_AAA(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_AAA(M, N, Ret, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AGA(M1, 1, Ret) ACKERMANN_IN_AAA(M, N, Ret) -> U11_AAA(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_AAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_AAA(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_AAA(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_AAA(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_AAA(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> ACKERMANN_IN_AAA(M1, Ret1, Ret2) U11_AAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> ACKERMANN_IN_AAA(M, N1, Ret1) U11_AGA(M, N, Ret, is_out_ag(N1, -(N, 1))) -> ACKERMANN_IN_AAA(M, N1, Ret1) The TRS R consists of the following rules: =:=_in_gg(X0, X1) -> =:=_out_gg(X0, X1) is_in_aa(X0, X1) -> is_out_aa(X0, X1) is_in_ag(X0, X1) -> is_out_ag(X0, X1) ackermann_in_aaa(M, N, Ret) -> U6_aaa(M, N, Ret, =:=_in_ag(M, 0)) ackermann_in_aaa(M, N, Ret) -> U8_aaa(M, N, Ret, =:=_in_ag(N, 0)) ackermann_in_aaa(M, N, Ret) -> U11_aaa(M, N, Ret, is_in_aa(N1, -(N, 1))) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U6_aaa(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U8_aaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_aaa(M, N, Ret, is_in_aa(M1, -(M, 1))) U11_aaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_aaa(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U7_aaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_aaa(M, N, Ret) U9_aaa(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U12_aaa(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aaa(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U10_aaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aaa(M, N, Ret) U13_aaa(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) ackermann_in_aga(M, N, Ret) -> U6_aga(M, N, Ret, =:=_in_ag(M, 0)) ackermann_in_aga(M, N, Ret) -> U8_aga(M, N, Ret, =:=_in_gg(N, 0)) ackermann_in_aga(M, N, Ret) -> U11_aga(M, N, Ret, is_in_ag(N1, -(N, 1))) U14_aaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aaa(M, N, Ret, is_in_aa(Ret, Ret2)) U6_aga(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aga(M, N, Ret, is_in_ag(Ret, +(N, 1))) U8_aga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_aga(M, N, Ret, is_in_aa(M1, -(M, 1))) U11_aga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_aga(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U15_aaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aaa(M, N, Ret) U7_aga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_aga(M, N, Ret) U9_aga(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U12_aga(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aga(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U10_aga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aga(M, N, Ret) U13_aga(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aga(M, N, Ret) 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) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) +(x1, x2) = +(x1, x2) 1 = 1 -(x1, x2) = -(x1, x2) ackermann_in_aga(x1, x2, x3) = ackermann_in_aga(x2) U6_aga(x1, x2, x3, x4) = U6_aga(x2, x4) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag(x2) U7_aga(x1, x2, x3, x4) = U7_aga(x2, x4) ackermann_out_aga(x1, x2, x3) = ackermann_out_aga(x2) U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4) = U11_aga(x2, x4) U12_aga(x1, x2, x3, x4, x5) = U12_aga(x2, x5) ackermann_in_aaa(x1, x2, x3) = ackermann_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) ackermann_out_aaa(x1, x2, x3) = ackermann_out_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) U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4, x5) = U12_aaa(x5) U13_aaa(x1, x2, x3, x4, x5) = U13_aaa(x5) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U15_aaa(x1, x2, x3, x4) = U15_aaa(x4) U13_aga(x1, x2, x3, x4, x5) = U13_aga(x2, x5) U14_aga(x1, x2, x3, x4) = U14_aga(x2, x4) U15_aga(x1, x2, x3, x4) = U15_aga(x2, x4) ACKERMANN_IN_AGA(x1, x2, x3) = ACKERMANN_IN_AGA(x2) U8_AGA(x1, x2, x3, x4) = U8_AGA(x2, x4) U9_AGA(x1, x2, x3, x4) = U9_AGA(x2, x4) U11_AGA(x1, x2, x3, x4) = U11_AGA(x2, x4) U12_AGA(x1, x2, x3, x4, x5) = U12_AGA(x2, x5) ACKERMANN_IN_AAA(x1, x2, x3) = ACKERMANN_IN_AAA U8_AAA(x1, x2, x3, x4) = U8_AAA(x4) U9_AAA(x1, x2, x3, x4) = U9_AAA(x4) U11_AAA(x1, x2, x3, x4) = U11_AAA(x4) U12_AAA(x1, x2, x3, x4, x5) = U12_AAA(x5) U13_AAA(x1, x2, x3, x4, x5) = U13_AAA(x5) U13_AGA(x1, x2, x3, x4, x5) = U13_AGA(x2, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (36) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (37) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANN_IN_AGA(N) -> U8_AGA(N, =:=_in_gg(N, 0)) U8_AGA(N, =:=_out_gg(N, 0)) -> U9_AGA(N, is_in_aa) U9_AGA(N, is_out_aa) -> ACKERMANN_IN_AGA(1) ACKERMANN_IN_AGA(N) -> U11_AGA(N, is_in_ag(-(N, 1))) U11_AGA(N, is_out_ag(-(N, 1))) -> U12_AGA(N, ackermann_in_aaa) U12_AGA(N, ackermann_out_aaa) -> U13_AGA(N, is_in_aa) U13_AGA(N, is_out_aa) -> ACKERMANN_IN_AAA ACKERMANN_IN_AAA -> U8_AAA(=:=_in_ag(0)) U8_AAA(=:=_out_ag(0)) -> U9_AAA(is_in_aa) U9_AAA(is_out_aa) -> ACKERMANN_IN_AGA(1) ACKERMANN_IN_AAA -> U11_AAA(is_in_aa) U11_AAA(is_out_aa) -> U12_AAA(ackermann_in_aaa) U12_AAA(ackermann_out_aaa) -> U13_AAA(is_in_aa) U13_AAA(is_out_aa) -> ACKERMANN_IN_AAA U11_AAA(is_out_aa) -> ACKERMANN_IN_AAA U11_AGA(N, is_out_ag(-(N, 1))) -> ACKERMANN_IN_AAA The TRS R consists of the following rules: =:=_in_gg(X0, X1) -> =:=_out_gg(X0, X1) is_in_aa -> is_out_aa is_in_ag(X1) -> is_out_ag(X1) ackermann_in_aaa -> U6_aaa(=:=_in_ag(0)) ackermann_in_aaa -> U8_aaa(=:=_in_ag(0)) ackermann_in_aaa -> U11_aaa(is_in_aa) =:=_in_ag(X1) -> =:=_out_ag(X1) U6_aaa(=:=_out_ag(0)) -> U7_aaa(is_in_aa) U8_aaa(=:=_out_ag(0)) -> U9_aaa(is_in_aa) U11_aaa(is_out_aa) -> U12_aaa(ackermann_in_aaa) U7_aaa(is_out_aa) -> ackermann_out_aaa U9_aaa(is_out_aa) -> U10_aaa(ackermann_in_aga(1)) U12_aaa(ackermann_out_aaa) -> U13_aaa(is_in_aa) U10_aaa(ackermann_out_aga(1)) -> ackermann_out_aaa U13_aaa(is_out_aa) -> U14_aaa(ackermann_in_aaa) ackermann_in_aga(N) -> U6_aga(N, =:=_in_ag(0)) ackermann_in_aga(N) -> U8_aga(N, =:=_in_gg(N, 0)) ackermann_in_aga(N) -> U11_aga(N, is_in_ag(-(N, 1))) U14_aaa(ackermann_out_aaa) -> U15_aaa(is_in_aa) U6_aga(N, =:=_out_ag(0)) -> U7_aga(N, is_in_ag(+(N, 1))) U8_aga(N, =:=_out_gg(N, 0)) -> U9_aga(N, is_in_aa) U11_aga(N, is_out_ag(-(N, 1))) -> U12_aga(N, ackermann_in_aaa) U15_aaa(is_out_aa) -> ackermann_out_aaa U7_aga(N, is_out_ag(+(N, 1))) -> ackermann_out_aga(N) U9_aga(N, is_out_aa) -> U10_aga(N, ackermann_in_aga(1)) U12_aga(N, ackermann_out_aaa) -> U13_aga(N, is_in_aa) U10_aga(N, ackermann_out_aga(1)) -> ackermann_out_aga(N) U13_aga(N, is_out_aa) -> U14_aga(N, ackermann_in_aaa) U14_aga(N, ackermann_out_aaa) -> U15_aga(N, is_in_aa) U15_aga(N, is_out_aa) -> ackermann_out_aga(N) The set Q consists of the following terms: =:=_in_gg(x0, x1) is_in_aa is_in_ag(x0) ackermann_in_aaa =:=_in_ag(x0) U6_aaa(x0) U8_aaa(x0) U11_aaa(x0) U7_aaa(x0) U9_aaa(x0) U12_aaa(x0) U10_aaa(x0) U13_aaa(x0) ackermann_in_aga(x0) U14_aaa(x0) U6_aga(x0, x1) U8_aga(x0, x1) U11_aga(x0, x1) U15_aaa(x0) U7_aga(x0, x1) U9_aga(x0, x1) U12_aga(x0, x1) U10_aga(x0, x1) U13_aga(x0, x1) U14_aga(x0, x1) U15_aga(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (38) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule ACKERMANN_IN_AGA(N) -> U8_AGA(N, =:=_in_gg(N, 0)) at position [1] we obtained the following new rules [LPAR04]: (ACKERMANN_IN_AGA(N) -> U8_AGA(N, =:=_out_gg(N, 0)),ACKERMANN_IN_AGA(N) -> U8_AGA(N, =:=_out_gg(N, 0))) ---------------------------------------- (39) Obligation: Q DP problem: The TRS P consists of the following rules: U8_AGA(N, =:=_out_gg(N, 0)) -> U9_AGA(N, is_in_aa) U9_AGA(N, is_out_aa) -> ACKERMANN_IN_AGA(1) ACKERMANN_IN_AGA(N) -> U11_AGA(N, is_in_ag(-(N, 1))) U11_AGA(N, is_out_ag(-(N, 1))) -> U12_AGA(N, ackermann_in_aaa) U12_AGA(N, ackermann_out_aaa) -> U13_AGA(N, is_in_aa) U13_AGA(N, is_out_aa) -> ACKERMANN_IN_AAA ACKERMANN_IN_AAA -> U8_AAA(=:=_in_ag(0)) U8_AAA(=:=_out_ag(0)) -> U9_AAA(is_in_aa) U9_AAA(is_out_aa) -> ACKERMANN_IN_AGA(1) ACKERMANN_IN_AAA -> U11_AAA(is_in_aa) U11_AAA(is_out_aa) -> U12_AAA(ackermann_in_aaa) U12_AAA(ackermann_out_aaa) -> U13_AAA(is_in_aa) U13_AAA(is_out_aa) -> ACKERMANN_IN_AAA U11_AAA(is_out_aa) -> ACKERMANN_IN_AAA U11_AGA(N, is_out_ag(-(N, 1))) -> ACKERMANN_IN_AAA ACKERMANN_IN_AGA(N) -> U8_AGA(N, =:=_out_gg(N, 0)) The TRS R consists of the following rules: =:=_in_gg(X0, X1) -> =:=_out_gg(X0, X1) is_in_aa -> is_out_aa is_in_ag(X1) -> is_out_ag(X1) ackermann_in_aaa -> U6_aaa(=:=_in_ag(0)) ackermann_in_aaa -> U8_aaa(=:=_in_ag(0)) ackermann_in_aaa -> U11_aaa(is_in_aa) =:=_in_ag(X1) -> =:=_out_ag(X1) U6_aaa(=:=_out_ag(0)) -> U7_aaa(is_in_aa) U8_aaa(=:=_out_ag(0)) -> U9_aaa(is_in_aa) U11_aaa(is_out_aa) -> U12_aaa(ackermann_in_aaa) U7_aaa(is_out_aa) -> ackermann_out_aaa U9_aaa(is_out_aa) -> U10_aaa(ackermann_in_aga(1)) U12_aaa(ackermann_out_aaa) -> U13_aaa(is_in_aa) U10_aaa(ackermann_out_aga(1)) -> ackermann_out_aaa U13_aaa(is_out_aa) -> U14_aaa(ackermann_in_aaa) ackermann_in_aga(N) -> U6_aga(N, =:=_in_ag(0)) ackermann_in_aga(N) -> U8_aga(N, =:=_in_gg(N, 0)) ackermann_in_aga(N) -> U11_aga(N, is_in_ag(-(N, 1))) U14_aaa(ackermann_out_aaa) -> U15_aaa(is_in_aa) U6_aga(N, =:=_out_ag(0)) -> U7_aga(N, is_in_ag(+(N, 1))) U8_aga(N, =:=_out_gg(N, 0)) -> U9_aga(N, is_in_aa) U11_aga(N, is_out_ag(-(N, 1))) -> U12_aga(N, ackermann_in_aaa) U15_aaa(is_out_aa) -> ackermann_out_aaa U7_aga(N, is_out_ag(+(N, 1))) -> ackermann_out_aga(N) U9_aga(N, is_out_aa) -> U10_aga(N, ackermann_in_aga(1)) U12_aga(N, ackermann_out_aaa) -> U13_aga(N, is_in_aa) U10_aga(N, ackermann_out_aga(1)) -> ackermann_out_aga(N) U13_aga(N, is_out_aa) -> U14_aga(N, ackermann_in_aaa) U14_aga(N, ackermann_out_aaa) -> U15_aga(N, is_in_aa) U15_aga(N, is_out_aa) -> ackermann_out_aga(N) The set Q consists of the following terms: =:=_in_gg(x0, x1) is_in_aa is_in_ag(x0) ackermann_in_aaa =:=_in_ag(x0) U6_aaa(x0) U8_aaa(x0) U11_aaa(x0) U7_aaa(x0) U9_aaa(x0) U12_aaa(x0) U10_aaa(x0) U13_aaa(x0) ackermann_in_aga(x0) U14_aaa(x0) U6_aga(x0, x1) U8_aga(x0, x1) U11_aga(x0, x1) U15_aaa(x0) U7_aga(x0, x1) U9_aga(x0, x1) U12_aga(x0, x1) U10_aga(x0, x1) U13_aga(x0, x1) U14_aga(x0, x1) U15_aga(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (40) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule U8_AGA(N, =:=_out_gg(N, 0)) -> U9_AGA(N, is_in_aa) at position [1] we obtained the following new rules [LPAR04]: (U8_AGA(N, =:=_out_gg(N, 0)) -> U9_AGA(N, is_out_aa),U8_AGA(N, =:=_out_gg(N, 0)) -> U9_AGA(N, is_out_aa)) ---------------------------------------- (41) Obligation: Q DP problem: The TRS P consists of the following rules: U9_AGA(N, is_out_aa) -> ACKERMANN_IN_AGA(1) ACKERMANN_IN_AGA(N) -> U11_AGA(N, is_in_ag(-(N, 1))) U11_AGA(N, is_out_ag(-(N, 1))) -> U12_AGA(N, ackermann_in_aaa) U12_AGA(N, ackermann_out_aaa) -> U13_AGA(N, is_in_aa) U13_AGA(N, is_out_aa) -> ACKERMANN_IN_AAA ACKERMANN_IN_AAA -> U8_AAA(=:=_in_ag(0)) U8_AAA(=:=_out_ag(0)) -> U9_AAA(is_in_aa) U9_AAA(is_out_aa) -> ACKERMANN_IN_AGA(1) ACKERMANN_IN_AAA -> U11_AAA(is_in_aa) U11_AAA(is_out_aa) -> U12_AAA(ackermann_in_aaa) U12_AAA(ackermann_out_aaa) -> U13_AAA(is_in_aa) U13_AAA(is_out_aa) -> ACKERMANN_IN_AAA U11_AAA(is_out_aa) -> ACKERMANN_IN_AAA U11_AGA(N, is_out_ag(-(N, 1))) -> ACKERMANN_IN_AAA ACKERMANN_IN_AGA(N) -> U8_AGA(N, =:=_out_gg(N, 0)) U8_AGA(N, =:=_out_gg(N, 0)) -> U9_AGA(N, is_out_aa) The TRS R consists of the following rules: =:=_in_gg(X0, X1) -> =:=_out_gg(X0, X1) is_in_aa -> is_out_aa is_in_ag(X1) -> is_out_ag(X1) ackermann_in_aaa -> U6_aaa(=:=_in_ag(0)) ackermann_in_aaa -> U8_aaa(=:=_in_ag(0)) ackermann_in_aaa -> U11_aaa(is_in_aa) =:=_in_ag(X1) -> =:=_out_ag(X1) U6_aaa(=:=_out_ag(0)) -> U7_aaa(is_in_aa) U8_aaa(=:=_out_ag(0)) -> U9_aaa(is_in_aa) U11_aaa(is_out_aa) -> U12_aaa(ackermann_in_aaa) U7_aaa(is_out_aa) -> ackermann_out_aaa U9_aaa(is_out_aa) -> U10_aaa(ackermann_in_aga(1)) U12_aaa(ackermann_out_aaa) -> U13_aaa(is_in_aa) U10_aaa(ackermann_out_aga(1)) -> ackermann_out_aaa U13_aaa(is_out_aa) -> U14_aaa(ackermann_in_aaa) ackermann_in_aga(N) -> U6_aga(N, =:=_in_ag(0)) ackermann_in_aga(N) -> U8_aga(N, =:=_in_gg(N, 0)) ackermann_in_aga(N) -> U11_aga(N, is_in_ag(-(N, 1))) U14_aaa(ackermann_out_aaa) -> U15_aaa(is_in_aa) U6_aga(N, =:=_out_ag(0)) -> U7_aga(N, is_in_ag(+(N, 1))) U8_aga(N, =:=_out_gg(N, 0)) -> U9_aga(N, is_in_aa) U11_aga(N, is_out_ag(-(N, 1))) -> U12_aga(N, ackermann_in_aaa) U15_aaa(is_out_aa) -> ackermann_out_aaa U7_aga(N, is_out_ag(+(N, 1))) -> ackermann_out_aga(N) U9_aga(N, is_out_aa) -> U10_aga(N, ackermann_in_aga(1)) U12_aga(N, ackermann_out_aaa) -> U13_aga(N, is_in_aa) U10_aga(N, ackermann_out_aga(1)) -> ackermann_out_aga(N) U13_aga(N, is_out_aa) -> U14_aga(N, ackermann_in_aaa) U14_aga(N, ackermann_out_aaa) -> U15_aga(N, is_in_aa) U15_aga(N, is_out_aa) -> ackermann_out_aga(N) The set Q consists of the following terms: =:=_in_gg(x0, x1) is_in_aa is_in_ag(x0) ackermann_in_aaa =:=_in_ag(x0) U6_aaa(x0) U8_aaa(x0) U11_aaa(x0) U7_aaa(x0) U9_aaa(x0) U12_aaa(x0) U10_aaa(x0) U13_aaa(x0) ackermann_in_aga(x0) U14_aaa(x0) U6_aga(x0, x1) U8_aga(x0, x1) U11_aga(x0, x1) U15_aaa(x0) U7_aga(x0, x1) U9_aga(x0, x1) U12_aga(x0, x1) U10_aga(x0, x1) U13_aga(x0, x1) U14_aga(x0, x1) U15_aga(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (42) TransformationProof (EQUIVALENT) By rewriting [LPAR04] the rule ACKERMANN_IN_AGA(N) -> U11_AGA(N, is_in_ag(-(N, 1))) at position [1] we obtained the following new rules [LPAR04]: (ACKERMANN_IN_AGA(N) -> U11_AGA(N, is_out_ag(-(N, 1))),ACKERMANN_IN_AGA(N) -> U11_AGA(N, is_out_ag(-(N, 1)))) ---------------------------------------- (43) Obligation: Q DP problem: The TRS P consists of the following rules: U9_AGA(N, is_out_aa) -> ACKERMANN_IN_AGA(1) U11_AGA(N, is_out_ag(-(N, 1))) -> U12_AGA(N, ackermann_in_aaa) U12_AGA(N, ackermann_out_aaa) -> U13_AGA(N, is_in_aa) U13_AGA(N, is_out_aa) -> ACKERMANN_IN_AAA ACKERMANN_IN_AAA -> U8_AAA(=:=_in_ag(0)) U8_AAA(=:=_out_ag(0)) -> U9_AAA(is_in_aa) U9_AAA(is_out_aa) -> ACKERMANN_IN_AGA(1) ACKERMANN_IN_AAA -> U11_AAA(is_in_aa) U11_AAA(is_out_aa) -> U12_AAA(ackermann_in_aaa) U12_AAA(ackermann_out_aaa) -> U13_AAA(is_in_aa) U13_AAA(is_out_aa) -> ACKERMANN_IN_AAA U11_AAA(is_out_aa) -> ACKERMANN_IN_AAA U11_AGA(N, is_out_ag(-(N, 1))) -> ACKERMANN_IN_AAA ACKERMANN_IN_AGA(N) -> U8_AGA(N, =:=_out_gg(N, 0)) U8_AGA(N, =:=_out_gg(N, 0)) -> U9_AGA(N, is_out_aa) ACKERMANN_IN_AGA(N) -> U11_AGA(N, is_out_ag(-(N, 1))) The TRS R consists of the following rules: =:=_in_gg(X0, X1) -> =:=_out_gg(X0, X1) is_in_aa -> is_out_aa is_in_ag(X1) -> is_out_ag(X1) ackermann_in_aaa -> U6_aaa(=:=_in_ag(0)) ackermann_in_aaa -> U8_aaa(=:=_in_ag(0)) ackermann_in_aaa -> U11_aaa(is_in_aa) =:=_in_ag(X1) -> =:=_out_ag(X1) U6_aaa(=:=_out_ag(0)) -> U7_aaa(is_in_aa) U8_aaa(=:=_out_ag(0)) -> U9_aaa(is_in_aa) U11_aaa(is_out_aa) -> U12_aaa(ackermann_in_aaa) U7_aaa(is_out_aa) -> ackermann_out_aaa U9_aaa(is_out_aa) -> U10_aaa(ackermann_in_aga(1)) U12_aaa(ackermann_out_aaa) -> U13_aaa(is_in_aa) U10_aaa(ackermann_out_aga(1)) -> ackermann_out_aaa U13_aaa(is_out_aa) -> U14_aaa(ackermann_in_aaa) ackermann_in_aga(N) -> U6_aga(N, =:=_in_ag(0)) ackermann_in_aga(N) -> U8_aga(N, =:=_in_gg(N, 0)) ackermann_in_aga(N) -> U11_aga(N, is_in_ag(-(N, 1))) U14_aaa(ackermann_out_aaa) -> U15_aaa(is_in_aa) U6_aga(N, =:=_out_ag(0)) -> U7_aga(N, is_in_ag(+(N, 1))) U8_aga(N, =:=_out_gg(N, 0)) -> U9_aga(N, is_in_aa) U11_aga(N, is_out_ag(-(N, 1))) -> U12_aga(N, ackermann_in_aaa) U15_aaa(is_out_aa) -> ackermann_out_aaa U7_aga(N, is_out_ag(+(N, 1))) -> ackermann_out_aga(N) U9_aga(N, is_out_aa) -> U10_aga(N, ackermann_in_aga(1)) U12_aga(N, ackermann_out_aaa) -> U13_aga(N, is_in_aa) U10_aga(N, ackermann_out_aga(1)) -> ackermann_out_aga(N) U13_aga(N, is_out_aa) -> U14_aga(N, ackermann_in_aaa) U14_aga(N, ackermann_out_aaa) -> U15_aga(N, is_in_aa) U15_aga(N, is_out_aa) -> ackermann_out_aga(N) The set Q consists of the following terms: =:=_in_gg(x0, x1) is_in_aa is_in_ag(x0) ackermann_in_aaa =:=_in_ag(x0) U6_aaa(x0) U8_aaa(x0) U11_aaa(x0) U7_aaa(x0) U9_aaa(x0) U12_aaa(x0) U10_aaa(x0) U13_aaa(x0) ackermann_in_aga(x0) U14_aaa(x0) U6_aga(x0, x1) U8_aga(x0, x1) U11_aga(x0, x1) U15_aaa(x0) U7_aga(x0, x1) U9_aga(x0, x1) U12_aga(x0, x1) U10_aga(x0, x1) U13_aga(x0, x1) U14_aga(x0, x1) U15_aga(x0, x1) We have to consider all (P,Q,R)-chains. ---------------------------------------- (44) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAA(M, N, Ret) -> U11_GAA(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_GAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> ACKERMANN_IN_GAA(M, N1, Ret1) The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, >=_in_gg(M, 0)) >=_in_gg(X0, X1) -> >=_out_gg(X0, X1) U1_gg(M, N, >=_out_gg(M, 0)) -> U2_gg(M, N, =<_in_gg(M, 3)) =<_in_gg(X0, X1) -> =<_out_gg(X0, X1) U2_gg(M, N, =<_out_gg(M, 3)) -> U3_gg(M, N, >=_in_gg(N, 0)) U3_gg(M, N, >=_out_gg(N, 0)) -> U4_gg(M, N, =<_in_gg(N, 23)) U4_gg(M, N, =<_out_gg(N, 23)) -> U5_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U6_gga(M, N, Ret, =:=_in_gg(M, 0)) =:=_in_gg(X0, X1) -> =:=_out_gg(X0, X1) U6_gga(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gga(M, N, Ret, is_in_ag(Ret, +(N, 1))) is_in_ag(X0, X1) -> is_out_ag(X0, X1) U7_gga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U8_gga(M, N, Ret, =:=_in_gg(N, 0)) U8_gga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_gga(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gga(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U6_aga(M, N, Ret, =:=_in_ag(M, 0)) =:=_in_ag(X0, X1) -> =:=_out_ag(X0, X1) U6_aga(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aga(M, N, Ret, is_in_ag(Ret, +(N, 1))) U7_aga(M, N, Ret, is_out_ag(Ret, +(N, 1))) -> ackermann_out_aga(M, N, Ret) ackermann_in_aga(M, N, Ret) -> U8_aga(M, N, Ret, =:=_in_gg(N, 0)) U8_aga(M, N, Ret, =:=_out_gg(N, 0)) -> U9_aga(M, N, Ret, is_in_aa(M1, -(M, 1))) is_in_aa(X0, X1) -> is_out_aa(X0, X1) U9_aga(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aga(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) ackermann_in_aga(M, N, Ret) -> U11_aga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_aga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_aga(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) ackermann_in_aaa(M, N, Ret) -> U6_aaa(M, N, Ret, =:=_in_ag(M, 0)) U6_aaa(M, N, Ret, =:=_out_ag(M, 0)) -> U7_aaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_aaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U8_aaa(M, N, Ret, =:=_in_ag(N, 0)) U8_aaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_aaa(M, N, Ret, is_in_aa(M1, -(M, 1))) U9_aaa(M, N, Ret, is_out_aa(M1, -(M, 1))) -> U10_aaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_aaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aaa(M, N, Ret) ackermann_in_aaa(M, N, Ret) -> U11_aaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_aaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_aaa(M, N, Ret, N1, ackermann_in_aaa(M, N1, Ret1)) U12_aaa(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aaa(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aaa(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aaa(M, N, Ret) U12_aga(M, N, Ret, N1, ackermann_out_aaa(M, N1, Ret1)) -> U13_aga(M, N, Ret, Ret1, is_in_aa(M1, -(M, 1))) U13_aga(M, N, Ret, Ret1, is_out_aa(M1, -(M, 1))) -> U14_aga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_aga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_aga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_aga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_aga(M, N, Ret) U10_aga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_aga(M, N, Ret) U10_gga(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U11_gga(M, N, Ret, is_in_ag(N1, -(N, 1))) U11_gga(M, N, Ret, is_out_ag(N1, -(N, 1))) -> U12_gga(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) ackermann_in_gaa(M, N, Ret) -> U6_gaa(M, N, Ret, =:=_in_gg(M, 0)) U6_gaa(M, N, Ret, =:=_out_gg(M, 0)) -> U7_gaa(M, N, Ret, is_in_aa(Ret, +(N, 1))) U7_gaa(M, N, Ret, is_out_aa(Ret, +(N, 1))) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U8_gaa(M, N, Ret, =:=_in_ag(N, 0)) U8_gaa(M, N, Ret, =:=_out_ag(N, 0)) -> U9_gaa(M, N, Ret, is_in_ag(M1, -(M, 1))) U9_gaa(M, N, Ret, is_out_ag(M1, -(M, 1))) -> U10_gaa(M, N, Ret, ackermann_in_aga(M1, 1, Ret)) U10_gaa(M, N, Ret, ackermann_out_aga(M1, 1, Ret)) -> ackermann_out_gaa(M, N, Ret) ackermann_in_gaa(M, N, Ret) -> U11_gaa(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_gaa(M, N, Ret, is_out_aa(N1, -(N, 1))) -> U12_gaa(M, N, Ret, N1, ackermann_in_gaa(M, N1, Ret1)) U12_gaa(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gaa(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gaa(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gaa(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gaa(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gaa(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gaa(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gaa(M, N, Ret) U12_gga(M, N, Ret, N1, ackermann_out_gaa(M, N1, Ret1)) -> U13_gga(M, N, Ret, Ret1, is_in_ag(M1, -(M, 1))) U13_gga(M, N, Ret, Ret1, is_out_ag(M1, -(M, 1))) -> U14_gga(M, N, Ret, ackermann_in_aaa(M1, Ret1, Ret2)) U14_gga(M, N, Ret, ackermann_out_aaa(M1, Ret1, Ret2)) -> U15_gga(M, N, Ret, is_in_aa(Ret, Ret2)) U15_gga(M, N, Ret, is_out_aa(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U5_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) >=_in_gg(x1, x2) = >=_in_gg(x1, x2) >=_out_gg(x1, x2) = >=_out_gg(x1, x2) 0 = 0 U2_gg(x1, x2, x3) = U2_gg(x1, x2, x3) =<_in_gg(x1, x2) = =<_in_gg(x1, x2) =<_out_gg(x1, x2) = =<_out_gg(x1, x2) 3 = 3 U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) 23 = 23 U5_gg(x1, x2, x3) = U5_gg(x1, x2, x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U6_gga(x1, x2, x3, x4) = U6_gga(x1, x2, x4) =:=_in_gg(x1, x2) = =:=_in_gg(x1, x2) =:=_out_gg(x1, x2) = =:=_out_gg(x1, x2) U7_gga(x1, x2, x3, x4) = U7_gga(x1, x2, x4) is_in_ag(x1, x2) = is_in_ag(x2) is_out_ag(x1, x2) = is_out_ag(x2) +(x1, x2) = +(x1, x2) 1 = 1 ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2) U8_gga(x1, x2, x3, x4) = U8_gga(x1, x2, x4) U9_gga(x1, x2, x3, x4) = U9_gga(x1, x2, x4) -(x1, x2) = -(x1, x2) U10_gga(x1, x2, x3, x4) = U10_gga(x1, x2, x4) ackermann_in_aga(x1, x2, x3) = ackermann_in_aga(x2) U6_aga(x1, x2, x3, x4) = U6_aga(x2, x4) =:=_in_ag(x1, x2) = =:=_in_ag(x2) =:=_out_ag(x1, x2) = =:=_out_ag(x2) U7_aga(x1, x2, x3, x4) = U7_aga(x2, x4) ackermann_out_aga(x1, x2, x3) = ackermann_out_aga(x2) U8_aga(x1, x2, x3, x4) = U8_aga(x2, x4) U9_aga(x1, x2, x3, x4) = U9_aga(x2, x4) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa U10_aga(x1, x2, x3, x4) = U10_aga(x2, x4) U11_aga(x1, x2, x3, x4) = U11_aga(x2, x4) U12_aga(x1, x2, x3, x4, x5) = U12_aga(x2, x5) ackermann_in_aaa(x1, x2, x3) = ackermann_in_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) U7_aaa(x1, x2, x3, x4) = U7_aaa(x4) ackermann_out_aaa(x1, x2, x3) = ackermann_out_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) U11_aaa(x1, x2, x3, x4) = U11_aaa(x4) U12_aaa(x1, x2, x3, x4, x5) = U12_aaa(x5) U13_aaa(x1, x2, x3, x4, x5) = U13_aaa(x5) U14_aaa(x1, x2, x3, x4) = U14_aaa(x4) U15_aaa(x1, x2, x3, x4) = U15_aaa(x4) U13_aga(x1, x2, x3, x4, x5) = U13_aga(x2, x5) U14_aga(x1, x2, x3, x4) = U14_aga(x2, x4) U15_aga(x1, x2, x3, x4) = U15_aga(x2, x4) U11_gga(x1, x2, x3, x4) = U11_gga(x1, x2, x4) U12_gga(x1, x2, x3, x4, x5) = U12_gga(x1, x2, x5) ackermann_in_gaa(x1, x2, x3) = ackermann_in_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4) = U7_gaa(x1, x4) ackermann_out_gaa(x1, x2, x3) = ackermann_out_gaa(x1) U8_gaa(x1, x2, x3, x4) = U8_gaa(x1, x4) U9_gaa(x1, x2, x3, x4) = U9_gaa(x1, x4) U10_gaa(x1, x2, x3, x4) = U10_gaa(x1, x4) U11_gaa(x1, x2, x3, x4) = U11_gaa(x1, x4) U12_gaa(x1, x2, x3, x4, x5) = U12_gaa(x1, x5) U13_gaa(x1, x2, x3, x4, x5) = U13_gaa(x1, x5) U14_gaa(x1, x2, x3, x4) = U14_gaa(x1, x4) U15_gaa(x1, x2, x3, x4) = U15_gaa(x1, x4) U13_gga(x1, x2, x3, x4, x5) = U13_gga(x1, x2, x5) U14_gga(x1, x2, x3, x4) = U14_gga(x1, x2, x4) U15_gga(x1, x2, x3, x4) = U15_gga(x1, x2, x4) main_out_gg(x1, x2) = main_out_gg(x1, x2) ACKERMANN_IN_GAA(x1, x2, x3) = ACKERMANN_IN_GAA(x1) U11_GAA(x1, x2, x3, x4) = U11_GAA(x1, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (45) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (46) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GAA(M, N, Ret) -> U11_GAA(M, N, Ret, is_in_aa(N1, -(N, 1))) U11_GAA(M, N, Ret, is_out_aa(N1, -(N, 1))) -> ACKERMANN_IN_GAA(M, N1, Ret1) The TRS R consists of the following rules: is_in_aa(X0, X1) -> is_out_aa(X0, X1) The argument filtering Pi contains the following mapping: 1 = 1 -(x1, x2) = -(x1, x2) is_in_aa(x1, x2) = is_in_aa is_out_aa(x1, x2) = is_out_aa ACKERMANN_IN_GAA(x1, x2, x3) = ACKERMANN_IN_GAA(x1) U11_GAA(x1, x2, x3, x4) = U11_GAA(x1, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (47) IntegerArithmeticTransformerProof (SOUND) Added definitions of predefined predicates [PROLOG]. ---------------------------------------- (48) Obligation: Clauses: main(M, N) :- ','(=(X, M), ','(=(X2, zero), ','(;(isGreater(X, X2), =(X, X2)), ','(=(X5, M), ','(=(X6, succ(succ(succ(zero)))), ','(;(=(X5, X6), isLess(X5, X6)), ','(=(X3, N), ','(=(X4, zero), ','(;(isGreater(X3, X4), =(X3, X4)), ','(=(X7, N), ','(=(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))), ','(;(=(X7, X8), isLess(X7, X8)), ackermann(M, N, X1))))))))))))). ackermann(M, N, Ret) :- ','(=(X, M), ','(=(X1, zero), ','(=(X, X1), ','(!, ','(isPlus(N, succ(zero), U), =(Ret, U)))))). ackermann(M, N, Ret) :- ','(=(X, N), ','(=(X1, zero), ','(=(X, X1), ','(!, ','(isMinus(M, succ(zero), U), ','(=(M1, U), ackermann(M1, succ(zero), Ret))))))). ackermann(M, N, Ret) :- ','(!, ','(isMinus(N, succ(zero), U), ','(=(N1, U), ','(ackermann(M, N1, Ret1), ','(isMinus(M, succ(zero), U), ','(=(M1, U), ','(ackermann(M1, Ret1, Ret2), =(Ret, Ret2)))))))). 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: main(g,g) ---------------------------------------- (49) CutEliminatorProof (SOUND) Eliminated all cuts by simply ignoring them[PROLOG]. ---------------------------------------- (50) Obligation: Clauses: main(M, N) :- ','(=(X, M), ','(=(X2, zero), ','(;(isGreater(X, X2), =(X, X2)), ','(=(X5, M), ','(=(X6, succ(succ(succ(zero)))), ','(;(=(X5, X6), isLess(X5, X6)), ','(=(X3, N), ','(=(X4, zero), ','(;(isGreater(X3, X4), =(X3, X4)), ','(=(X7, N), ','(=(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))), ','(;(=(X7, X8), isLess(X7, X8)), ackermann(M, N, X1))))))))))))). ackermann(M, N, Ret) :- ','(=(X, M), ','(=(X1, zero), ','(=(X, X1), ','(isPlus(N, succ(zero), U), =(Ret, U))))). ackermann(M, N, Ret) :- ','(=(X, N), ','(=(X1, zero), ','(=(X, X1), ','(isMinus(M, succ(zero), U), ','(=(M1, U), ackermann(M1, succ(zero), Ret)))))). ackermann(M, N, Ret) :- ','(isMinus(N, succ(zero), U), ','(=(N1, U), ','(ackermann(M, N1, Ret1), ','(isMinus(M, succ(zero), U), ','(=(M1, U), ','(ackermann(M1, Ret1, Ret2), =(Ret, Ret2))))))). 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: main(g,g) ---------------------------------------- (51) UnifyTransformerProof (EQUIVALENT) Added a fact for the built-in = predicate [PROLOG]. ---------------------------------------- (52) Obligation: Clauses: main(M, N) :- ','(=(X, M), ','(=(X2, zero), ','(;(isGreater(X, X2), =(X, X2)), ','(=(X5, M), ','(=(X6, succ(succ(succ(zero)))), ','(;(=(X5, X6), isLess(X5, X6)), ','(=(X3, N), ','(=(X4, zero), ','(;(isGreater(X3, X4), =(X3, X4)), ','(=(X7, N), ','(=(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))), ','(;(=(X7, X8), isLess(X7, X8)), ackermann(M, N, X1))))))))))))). ackermann(M, N, Ret) :- ','(=(X, M), ','(=(X1, zero), ','(=(X, X1), ','(isPlus(N, succ(zero), U), =(Ret, U))))). ackermann(M, N, Ret) :- ','(=(X, N), ','(=(X1, zero), ','(=(X, X1), ','(isMinus(M, succ(zero), U), ','(=(M1, U), ackermann(M1, succ(zero), Ret)))))). ackermann(M, N, Ret) :- ','(isMinus(N, succ(zero), U), ','(=(N1, U), ','(ackermann(M, N1, Ret1), ','(isMinus(M, succ(zero), U), ','(=(M1, U), ','(ackermann(M1, Ret1, Ret2), =(Ret, Ret2))))))). 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: main(g,g) ---------------------------------------- (53) OrTransformerProof (EQUIVALENT) Transformed all or-constructs[PROLOG]. ---------------------------------------- (54) Obligation: Clauses: main(M, N) :- ','(=(X, M), ','(=(X2, zero), ','(isGreater(X, X2), ','(=(X5, M), ','(=(X6, succ(succ(succ(zero)))), ','(=(X5, X6), ','(=(X3, N), ','(=(X4, zero), ','(isGreater(X3, X4), ','(=(X7, N), ','(=(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))), ','(=(X7, X8), ackermann(M, N, X1))))))))))))). main(M, N) :- ','(=(X, M), ','(=(X2, zero), ','(isGreater(X, X2), ','(=(X5, M), ','(=(X6, succ(succ(succ(zero)))), ','(=(X5, X6), ','(=(X3, N), ','(=(X4, zero), ','(isGreater(X3, X4), ','(=(X7, N), ','(=(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))), ','(isLess(X7, X8), ackermann(M, N, X1))))))))))))). main(M, N) :- ','(=(X, M), ','(=(X2, zero), ','(isGreater(X, X2), ','(=(X5, M), ','(=(X6, succ(succ(succ(zero)))), ','(=(X5, X6), ','(=(X3, N), ','(=(X4, zero), ','(=(X3, X4), ','(=(X7, N), ','(=(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))), ','(=(X7, X8), ackermann(M, N, X1))))))))))))). main(M, N) :- ','(=(X, M), ','(=(X2, zero), ','(isGreater(X, X2), ','(=(X5, M), ','(=(X6, succ(succ(succ(zero)))), ','(=(X5, X6), ','(=(X3, N), ','(=(X4, zero), ','(=(X3, X4), ','(=(X7, N), ','(=(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))), ','(isLess(X7, X8), ackermann(M, N, X1))))))))))))). main(M, N) :- ','(=(X, M), ','(=(X2, zero), ','(isGreater(X, X2), ','(=(X5, M), ','(=(X6, succ(succ(succ(zero)))), ','(isLess(X5, X6), ','(=(X3, N), ','(=(X4, zero), ','(isGreater(X3, X4), ','(=(X7, N), ','(=(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))), ','(=(X7, X8), ackermann(M, N, X1))))))))))))). main(M, N) :- ','(=(X, M), ','(=(X2, zero), ','(isGreater(X, X2), ','(=(X5, M), ','(=(X6, succ(succ(succ(zero)))), ','(isLess(X5, X6), ','(=(X3, N), ','(=(X4, zero), ','(isGreater(X3, X4), ','(=(X7, N), ','(=(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))), ','(isLess(X7, X8), ackermann(M, N, X1))))))))))))). main(M, N) :- ','(=(X, M), ','(=(X2, zero), ','(isGreater(X, X2), ','(=(X5, M), ','(=(X6, succ(succ(succ(zero)))), ','(isLess(X5, X6), ','(=(X3, N), ','(=(X4, zero), ','(=(X3, X4), ','(=(X7, N), ','(=(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))), ','(=(X7, X8), ackermann(M, N, X1))))))))))))). main(M, N) :- ','(=(X, M), ','(=(X2, zero), ','(isGreater(X, X2), ','(=(X5, M), ','(=(X6, succ(succ(succ(zero)))), ','(isLess(X5, X6), ','(=(X3, N), ','(=(X4, zero), ','(=(X3, X4), ','(=(X7, N), ','(=(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))), ','(isLess(X7, X8), ackermann(M, N, X1))))))))))))). main(M, N) :- ','(=(X, M), ','(=(X2, zero), ','(=(X, X2), ','(=(X5, M), ','(=(X6, succ(succ(succ(zero)))), ','(=(X5, X6), ','(=(X3, N), ','(=(X4, zero), ','(isGreater(X3, X4), ','(=(X7, N), ','(=(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))), ','(=(X7, X8), ackermann(M, N, X1))))))))))))). main(M, N) :- ','(=(X, M), ','(=(X2, zero), ','(=(X, X2), ','(=(X5, M), ','(=(X6, succ(succ(succ(zero)))), ','(=(X5, X6), ','(=(X3, N), ','(=(X4, zero), ','(isGreater(X3, X4), ','(=(X7, N), ','(=(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))), ','(isLess(X7, X8), ackermann(M, N, X1))))))))))))). main(M, N) :- ','(=(X, M), ','(=(X2, zero), ','(=(X, X2), ','(=(X5, M), ','(=(X6, succ(succ(succ(zero)))), ','(=(X5, X6), ','(=(X3, N), ','(=(X4, zero), ','(=(X3, X4), ','(=(X7, N), ','(=(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))), ','(=(X7, X8), ackermann(M, N, X1))))))))))))). main(M, N) :- ','(=(X, M), ','(=(X2, zero), ','(=(X, X2), ','(=(X5, M), ','(=(X6, succ(succ(succ(zero)))), ','(=(X5, X6), ','(=(X3, N), ','(=(X4, zero), ','(=(X3, X4), ','(=(X7, N), ','(=(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))), ','(isLess(X7, X8), ackermann(M, N, X1))))))))))))). main(M, N) :- ','(=(X, M), ','(=(X2, zero), ','(=(X, X2), ','(=(X5, M), ','(=(X6, succ(succ(succ(zero)))), ','(isLess(X5, X6), ','(=(X3, N), ','(=(X4, zero), ','(isGreater(X3, X4), ','(=(X7, N), ','(=(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))), ','(=(X7, X8), ackermann(M, N, X1))))))))))))). main(M, N) :- ','(=(X, M), ','(=(X2, zero), ','(=(X, X2), ','(=(X5, M), ','(=(X6, succ(succ(succ(zero)))), ','(isLess(X5, X6), ','(=(X3, N), ','(=(X4, zero), ','(isGreater(X3, X4), ','(=(X7, N), ','(=(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))), ','(isLess(X7, X8), ackermann(M, N, X1))))))))))))). main(M, N) :- ','(=(X, M), ','(=(X2, zero), ','(=(X, X2), ','(=(X5, M), ','(=(X6, succ(succ(succ(zero)))), ','(isLess(X5, X6), ','(=(X3, N), ','(=(X4, zero), ','(=(X3, X4), ','(=(X7, N), ','(=(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))), ','(=(X7, X8), ackermann(M, N, X1))))))))))))). main(M, N) :- ','(=(X, M), ','(=(X2, zero), ','(=(X, X2), ','(=(X5, M), ','(=(X6, succ(succ(succ(zero)))), ','(isLess(X5, X6), ','(=(X3, N), ','(=(X4, zero), ','(=(X3, X4), ','(=(X7, N), ','(=(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))), ','(isLess(X7, X8), ackermann(M, N, X1))))))))))))). ackermann(M, N, Ret) :- ','(=(X, M), ','(=(X1, zero), ','(=(X, X1), ','(isPlus(N, succ(zero), U), =(Ret, U))))). ackermann(M, N, Ret) :- ','(=(X, N), ','(=(X1, zero), ','(=(X, X1), ','(isMinus(M, succ(zero), U), ','(=(M1, U), ackermann(M1, succ(zero), Ret)))))). ackermann(M, N, Ret) :- ','(isMinus(N, succ(zero), U), ','(=(N1, U), ','(ackermann(M, N1, Ret1), ','(isMinus(M, succ(zero), U), ','(=(M1, U), ','(ackermann(M1, Ret1, Ret2), =(Ret, Ret2))))))). 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: main(g,g) ---------------------------------------- (55) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: main_in_2: (b,b) isGreater_in_2: (b,b) ackermann_in_3: (b,b,f) isPlus_in_3: (b,b,f) isMinus_in_3: (b,b,f) (b,b,b) isLess_in_2: (b,b) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x1, x2, x3) U129_gg(x1, x2, x3) = U129_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x1, x2, x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x1, x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x1, x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x1, x2, x4) U80_gga(x1, x2, x3, x4) = U80_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) U95_gga(x1, x2, x3, x4) = U95_gga(x1, x2, x4) U96_gga(x1, x2, x3, x4) = U96_gga(x1, x2, x4) U97_gga(x1, x2, x3, x4) = U97_gga(x1, x2, x4) U98_gga(x1, x2, x3, x4) = U98_gga(x1, x2, x4) U81_gga(x1, x2, x3, x4) = U81_gga(x1, x2, x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x2, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x2, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x2, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U99_gga(x1, x2, x3) = U99_gga(x1, x3) U100_gga(x1, x2, x3) = U100_gga(x1, x3) U101_gga(x1, x2, x3, x4) = U101_gga(x1, x2, x4) U102_gga(x1, x2, x3, x4) = U102_gga(x1, x2, x4) U103_gga(x1, x2, x3, x4) = U103_gga(x1, x2, x4) U104_gga(x1, x2, x3, x4) = U104_gga(x1, x2, x4) U86_gga(x1, x2, x3, x4) = U86_gga(x1, x2, x4) U87_gga(x1, x2, x3, x4) = U87_gga(x1, x2, x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x2, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x2, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x2, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x1, x2, x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U99_ggg(x1, x2, x3) = U99_ggg(x1, x2, x3) U100_ggg(x1, x2, x3) = U100_ggg(x1, x2, x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x1, x2, x3, x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x1, x2, x3, x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x1, x2, x3, x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x1, x2, x3, x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x1, x2, x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x1, x2, x4) U94_gga(x1, x2, x3, x4) = U94_gga(x1, x2, x4) main_out_gg(x1, x2) = main_out_gg(x1, x2) U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U130_gg(x1, x2, x3) = U130_gg(x1, x2, x3) U131_gg(x1, x2, x3) = U131_gg(x1, x2, x3) U15_gg(x1, x2, x3) = U15_gg(x1, x2, x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x1, x2, x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x1, x2, x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x1, x2, x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x1, x2, x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x1, x2, x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x1, x2, x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x1, x2, x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x1, x2, x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x1, x2, x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x1, x2, x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x1, x2, x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x1, x2, x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x1, x2, x3) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (56) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x1, x2, x3) U129_gg(x1, x2, x3) = U129_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x1, x2, x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x1, x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x1, x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x1, x2, x4) U80_gga(x1, x2, x3, x4) = U80_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) U95_gga(x1, x2, x3, x4) = U95_gga(x1, x2, x4) U96_gga(x1, x2, x3, x4) = U96_gga(x1, x2, x4) U97_gga(x1, x2, x3, x4) = U97_gga(x1, x2, x4) U98_gga(x1, x2, x3, x4) = U98_gga(x1, x2, x4) U81_gga(x1, x2, x3, x4) = U81_gga(x1, x2, x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x2, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x2, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x2, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U99_gga(x1, x2, x3) = U99_gga(x1, x3) U100_gga(x1, x2, x3) = U100_gga(x1, x3) U101_gga(x1, x2, x3, x4) = U101_gga(x1, x2, x4) U102_gga(x1, x2, x3, x4) = U102_gga(x1, x2, x4) U103_gga(x1, x2, x3, x4) = U103_gga(x1, x2, x4) U104_gga(x1, x2, x3, x4) = U104_gga(x1, x2, x4) U86_gga(x1, x2, x3, x4) = U86_gga(x1, x2, x4) U87_gga(x1, x2, x3, x4) = U87_gga(x1, x2, x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x2, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x2, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x2, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x1, x2, x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U99_ggg(x1, x2, x3) = U99_ggg(x1, x2, x3) U100_ggg(x1, x2, x3) = U100_ggg(x1, x2, x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x1, x2, x3, x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x1, x2, x3, x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x1, x2, x3, x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x1, x2, x3, x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x1, x2, x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x1, x2, x4) U94_gga(x1, x2, x3, x4) = U94_gga(x1, x2, x4) main_out_gg(x1, x2) = main_out_gg(x1, x2) U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U130_gg(x1, x2, x3) = U130_gg(x1, x2, x3) U131_gg(x1, x2, x3) = U131_gg(x1, x2, x3) U15_gg(x1, x2, x3) = U15_gg(x1, x2, x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x1, x2, x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x1, x2, x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x1, x2, x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x1, x2, x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x1, x2, x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x1, x2, x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x1, x2, x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x1, x2, x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x1, x2, x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x1, x2, x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x1, x2, x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x1, x2, x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x1, x2, x3) ---------------------------------------- (57) 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: MAIN_IN_GG(M, N) -> U1_GG(M, N, =_in_ag(X, M)) MAIN_IN_GG(M, N) -> =_IN_AG(X, M) U1_GG(M, N, =_out_ag(X, M)) -> U2_GG(M, N, X, =_in_ag(X2, zero)) U1_GG(M, N, =_out_ag(X, M)) -> =_IN_AG(X2, zero) U2_GG(M, N, X, =_out_ag(X2, zero)) -> U3_GG(M, N, isGreater_in_gg(X, X2)) U2_GG(M, N, X, =_out_ag(X2, zero)) -> ISGREATER_IN_GG(X, X2) ISGREATER_IN_GG(succ(X), succ(Y)) -> U128_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)) -> U129_GG(X, Y, isGreater_in_gg(X, Y)) ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) U3_GG(M, N, isGreater_out_gg(X, X2)) -> U4_GG(M, N, =_in_ag(X5, M)) U3_GG(M, N, isGreater_out_gg(X, X2)) -> =_IN_AG(X5, M) U4_GG(M, N, =_out_ag(X5, M)) -> U5_GG(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U4_GG(M, N, =_out_ag(X5, M)) -> =_IN_AG(X6, succ(succ(succ(zero)))) U5_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_GG(M, N, =_in_gg(X5, X6)) U5_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> =_IN_GG(X5, X6) U6_GG(M, N, =_out_gg(X5, X6)) -> U7_GG(M, N, =_in_ag(X3, N)) U6_GG(M, N, =_out_gg(X5, X6)) -> =_IN_AG(X3, N) U7_GG(M, N, =_out_ag(X3, N)) -> U8_GG(M, N, X3, =_in_ag(X4, zero)) U7_GG(M, N, =_out_ag(X3, N)) -> =_IN_AG(X4, zero) U8_GG(M, N, X3, =_out_ag(X4, zero)) -> U9_GG(M, N, isGreater_in_gg(X3, X4)) U8_GG(M, N, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U9_GG(M, N, isGreater_out_gg(X3, X4)) -> U10_GG(M, N, =_in_ag(X7, N)) U9_GG(M, N, isGreater_out_gg(X3, X4)) -> =_IN_AG(X7, N) U10_GG(M, N, =_out_ag(X7, N)) -> U11_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U10_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U11_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_GG(M, N, =_in_gg(X7, X8)) U11_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U12_GG(M, N, =_out_gg(X7, X8)) -> U13_GG(M, N, ackermann_in_gga(M, N, X1)) U12_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) ACKERMANN_IN_GGA(M, N, Ret) -> U77_GGA(M, N, Ret, =_in_ag(X, M)) ACKERMANN_IN_GGA(M, N, Ret) -> =_IN_AG(X, M) U77_GGA(M, N, Ret, =_out_ag(X, M)) -> U78_GGA(M, N, Ret, X, =_in_ag(X1, zero)) U77_GGA(M, N, Ret, =_out_ag(X, M)) -> =_IN_AG(X1, zero) U78_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_GGA(M, N, Ret, =_in_gg(X, X1)) U78_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> =_IN_GG(X, X1) U79_GGA(M, N, Ret, =_out_gg(X, X1)) -> U80_GGA(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) U79_GGA(M, N, Ret, =_out_gg(X, X1)) -> ISPLUS_IN_GGA(N, succ(zero), U) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> U95_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) -> U96_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) -> U97_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))) -> U98_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) U80_GGA(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_GGA(M, N, Ret, =_in_ag(Ret, U)) U80_GGA(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> =_IN_AG(Ret, U) ACKERMANN_IN_GGA(M, N, Ret) -> U82_GGA(M, N, Ret, =_in_ag(X, N)) ACKERMANN_IN_GGA(M, N, Ret) -> =_IN_AG(X, N) U82_GGA(M, N, Ret, =_out_ag(X, N)) -> U83_GGA(M, N, Ret, X, =_in_ag(X1, zero)) U82_GGA(M, N, Ret, =_out_ag(X, N)) -> =_IN_AG(X1, zero) U83_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_GGA(M, N, Ret, =_in_gg(X, X1)) U83_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> =_IN_GG(X, X1) U84_GGA(M, N, Ret, =_out_gg(X, X1)) -> U85_GGA(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) U84_GGA(M, N, Ret, =_out_gg(X, X1)) -> ISMINUS_IN_GGA(M, succ(zero), U) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> U99_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)) -> U100_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) -> U101_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))) -> U102_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))) -> U103_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) -> U104_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) U85_GGA(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_GGA(M, N, Ret, =_in_ag(M1, U)) U85_GGA(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> =_IN_AG(M1, U) U86_GGA(M, N, Ret, =_out_ag(M1, U)) -> U87_GGA(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) U86_GGA(M, N, Ret, =_out_ag(M1, U)) -> ACKERMANN_IN_GGA(M1, succ(zero), Ret) ACKERMANN_IN_GGA(M, N, Ret) -> U88_GGA(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) ACKERMANN_IN_GGA(M, N, Ret) -> ISMINUS_IN_GGA(N, succ(zero), U) U88_GGA(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_GGA(M, N, Ret, U, =_in_ag(N1, U)) U88_GGA(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> =_IN_AG(N1, U) U89_GGA(M, N, Ret, U, =_out_ag(N1, U)) -> U90_GGA(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U89_GGA(M, N, Ret, U, =_out_ag(N1, U)) -> ACKERMANN_IN_GGA(M, N1, Ret1) U90_GGA(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_GGA(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) U90_GGA(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> ISMINUS_IN_GGG(M, succ(zero), U) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> U99_GGG(Y, Z, isMinus_in_ggg(zero, Y, Z)) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> U100_GGG(Y, Z, isMinus_in_ggg(zero, Y, Z)) ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> U101_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> U102_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> U103_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> U104_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) U91_GGA(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_GGA(M, N, Ret, Ret1, =_in_ag(M1, U)) U91_GGA(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> =_IN_AG(M1, U) U92_GGA(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_GGA(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U92_GGA(M, N, Ret, Ret1, =_out_ag(M1, U)) -> ACKERMANN_IN_GGA(M1, Ret1, Ret2) U93_GGA(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_GGA(M, N, Ret, =_in_ag(Ret, Ret2)) U93_GGA(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> =_IN_AG(Ret, Ret2) U11_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_GG(M, N, isLess_in_gg(X7, X8)) U11_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) ISLESS_IN_GG(pred(X), pred(Y)) -> U130_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)) -> U131_GG(X, Y, isLess_in_gg(X, Y)) ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) U14_GG(M, N, isLess_out_gg(X7, X8)) -> U15_GG(M, N, ackermann_in_gga(M, N, X1)) U14_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U8_GG(M, N, X3, =_out_ag(X4, zero)) -> U16_GG(M, N, =_in_gg(X3, X4)) U8_GG(M, N, X3, =_out_ag(X4, zero)) -> =_IN_GG(X3, X4) U16_GG(M, N, =_out_gg(X3, X4)) -> U17_GG(M, N, =_in_ag(X7, N)) U16_GG(M, N, =_out_gg(X3, X4)) -> =_IN_AG(X7, N) U17_GG(M, N, =_out_ag(X7, N)) -> U18_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U17_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U18_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_GG(M, N, =_in_gg(X7, X8)) U18_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U19_GG(M, N, =_out_gg(X7, X8)) -> U20_GG(M, N, ackermann_in_gga(M, N, X1)) U19_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U18_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_GG(M, N, isLess_in_gg(X7, X8)) U18_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U21_GG(M, N, isLess_out_gg(X7, X8)) -> U22_GG(M, N, ackermann_in_gga(M, N, X1)) U21_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U5_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_GG(M, N, isLess_in_gg(X5, X6)) U5_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> ISLESS_IN_GG(X5, X6) U23_GG(M, N, isLess_out_gg(X5, X6)) -> U24_GG(M, N, =_in_ag(X3, N)) U23_GG(M, N, isLess_out_gg(X5, X6)) -> =_IN_AG(X3, N) U24_GG(M, N, =_out_ag(X3, N)) -> U25_GG(M, N, X3, =_in_ag(X4, zero)) U24_GG(M, N, =_out_ag(X3, N)) -> =_IN_AG(X4, zero) U25_GG(M, N, X3, =_out_ag(X4, zero)) -> U26_GG(M, N, isGreater_in_gg(X3, X4)) U25_GG(M, N, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U26_GG(M, N, isGreater_out_gg(X3, X4)) -> U27_GG(M, N, =_in_ag(X7, N)) U26_GG(M, N, isGreater_out_gg(X3, X4)) -> =_IN_AG(X7, N) U27_GG(M, N, =_out_ag(X7, N)) -> U28_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U27_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U28_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_GG(M, N, =_in_gg(X7, X8)) U28_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U29_GG(M, N, =_out_gg(X7, X8)) -> U30_GG(M, N, ackermann_in_gga(M, N, X1)) U29_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U28_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_GG(M, N, isLess_in_gg(X7, X8)) U28_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U31_GG(M, N, isLess_out_gg(X7, X8)) -> U32_GG(M, N, ackermann_in_gga(M, N, X1)) U31_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U25_GG(M, N, X3, =_out_ag(X4, zero)) -> U33_GG(M, N, =_in_gg(X3, X4)) U25_GG(M, N, X3, =_out_ag(X4, zero)) -> =_IN_GG(X3, X4) U33_GG(M, N, =_out_gg(X3, X4)) -> U34_GG(M, N, =_in_ag(X7, N)) U33_GG(M, N, =_out_gg(X3, X4)) -> =_IN_AG(X7, N) U34_GG(M, N, =_out_ag(X7, N)) -> U35_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U34_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U35_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_GG(M, N, =_in_gg(X7, X8)) U35_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U36_GG(M, N, =_out_gg(X7, X8)) -> U37_GG(M, N, ackermann_in_gga(M, N, X1)) U36_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U35_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_GG(M, N, isLess_in_gg(X7, X8)) U35_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U38_GG(M, N, isLess_out_gg(X7, X8)) -> U39_GG(M, N, ackermann_in_gga(M, N, X1)) U38_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U2_GG(M, N, X, =_out_ag(X2, zero)) -> U40_GG(M, N, =_in_gg(X, X2)) U2_GG(M, N, X, =_out_ag(X2, zero)) -> =_IN_GG(X, X2) U40_GG(M, N, =_out_gg(X, X2)) -> U41_GG(M, N, =_in_ag(X5, M)) U40_GG(M, N, =_out_gg(X, X2)) -> =_IN_AG(X5, M) U41_GG(M, N, =_out_ag(X5, M)) -> U42_GG(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U41_GG(M, N, =_out_ag(X5, M)) -> =_IN_AG(X6, succ(succ(succ(zero)))) U42_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_GG(M, N, =_in_gg(X5, X6)) U42_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> =_IN_GG(X5, X6) U43_GG(M, N, =_out_gg(X5, X6)) -> U44_GG(M, N, =_in_ag(X3, N)) U43_GG(M, N, =_out_gg(X5, X6)) -> =_IN_AG(X3, N) U44_GG(M, N, =_out_ag(X3, N)) -> U45_GG(M, N, X3, =_in_ag(X4, zero)) U44_GG(M, N, =_out_ag(X3, N)) -> =_IN_AG(X4, zero) U45_GG(M, N, X3, =_out_ag(X4, zero)) -> U46_GG(M, N, isGreater_in_gg(X3, X4)) U45_GG(M, N, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U46_GG(M, N, isGreater_out_gg(X3, X4)) -> U47_GG(M, N, =_in_ag(X7, N)) U46_GG(M, N, isGreater_out_gg(X3, X4)) -> =_IN_AG(X7, N) U47_GG(M, N, =_out_ag(X7, N)) -> U48_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U47_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U48_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_GG(M, N, =_in_gg(X7, X8)) U48_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U49_GG(M, N, =_out_gg(X7, X8)) -> U50_GG(M, N, ackermann_in_gga(M, N, X1)) U49_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U48_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_GG(M, N, isLess_in_gg(X7, X8)) U48_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U51_GG(M, N, isLess_out_gg(X7, X8)) -> U52_GG(M, N, ackermann_in_gga(M, N, X1)) U51_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U45_GG(M, N, X3, =_out_ag(X4, zero)) -> U53_GG(M, N, =_in_gg(X3, X4)) U45_GG(M, N, X3, =_out_ag(X4, zero)) -> =_IN_GG(X3, X4) U53_GG(M, N, =_out_gg(X3, X4)) -> U54_GG(M, N, =_in_ag(X7, N)) U53_GG(M, N, =_out_gg(X3, X4)) -> =_IN_AG(X7, N) U54_GG(M, N, =_out_ag(X7, N)) -> U55_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U54_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U55_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_GG(M, N, =_in_gg(X7, X8)) U55_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U56_GG(M, N, =_out_gg(X7, X8)) -> U57_GG(M, N, ackermann_in_gga(M, N, X1)) U56_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U55_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_GG(M, N, isLess_in_gg(X7, X8)) U55_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U58_GG(M, N, isLess_out_gg(X7, X8)) -> U59_GG(M, N, ackermann_in_gga(M, N, X1)) U58_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U42_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_GG(M, N, isLess_in_gg(X5, X6)) U42_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> ISLESS_IN_GG(X5, X6) U60_GG(M, N, isLess_out_gg(X5, X6)) -> U61_GG(M, N, =_in_ag(X3, N)) U60_GG(M, N, isLess_out_gg(X5, X6)) -> =_IN_AG(X3, N) U61_GG(M, N, =_out_ag(X3, N)) -> U62_GG(M, N, X3, =_in_ag(X4, zero)) U61_GG(M, N, =_out_ag(X3, N)) -> =_IN_AG(X4, zero) U62_GG(M, N, X3, =_out_ag(X4, zero)) -> U63_GG(M, N, isGreater_in_gg(X3, X4)) U62_GG(M, N, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U63_GG(M, N, isGreater_out_gg(X3, X4)) -> U64_GG(M, N, =_in_ag(X7, N)) U63_GG(M, N, isGreater_out_gg(X3, X4)) -> =_IN_AG(X7, N) U64_GG(M, N, =_out_ag(X7, N)) -> U65_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U64_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U65_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_GG(M, N, =_in_gg(X7, X8)) U65_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U66_GG(M, N, =_out_gg(X7, X8)) -> U67_GG(M, N, ackermann_in_gga(M, N, X1)) U66_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U65_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_GG(M, N, isLess_in_gg(X7, X8)) U65_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U68_GG(M, N, isLess_out_gg(X7, X8)) -> U69_GG(M, N, ackermann_in_gga(M, N, X1)) U68_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U62_GG(M, N, X3, =_out_ag(X4, zero)) -> U70_GG(M, N, =_in_gg(X3, X4)) U62_GG(M, N, X3, =_out_ag(X4, zero)) -> =_IN_GG(X3, X4) U70_GG(M, N, =_out_gg(X3, X4)) -> U71_GG(M, N, =_in_ag(X7, N)) U70_GG(M, N, =_out_gg(X3, X4)) -> =_IN_AG(X7, N) U71_GG(M, N, =_out_ag(X7, N)) -> U72_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U71_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U72_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_GG(M, N, =_in_gg(X7, X8)) U72_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U73_GG(M, N, =_out_gg(X7, X8)) -> U74_GG(M, N, ackermann_in_gga(M, N, X1)) U73_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U72_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_GG(M, N, isLess_in_gg(X7, X8)) U72_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U75_GG(M, N, isLess_out_gg(X7, X8)) -> U76_GG(M, N, ackermann_in_gga(M, N, X1)) U75_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x1, x2, x3) U129_gg(x1, x2, x3) = U129_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x1, x2, x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x1, x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x1, x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x1, x2, x4) U80_gga(x1, x2, x3, x4) = U80_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) U95_gga(x1, x2, x3, x4) = U95_gga(x1, x2, x4) U96_gga(x1, x2, x3, x4) = U96_gga(x1, x2, x4) U97_gga(x1, x2, x3, x4) = U97_gga(x1, x2, x4) U98_gga(x1, x2, x3, x4) = U98_gga(x1, x2, x4) U81_gga(x1, x2, x3, x4) = U81_gga(x1, x2, x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x2, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x2, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x2, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U99_gga(x1, x2, x3) = U99_gga(x1, x3) U100_gga(x1, x2, x3) = U100_gga(x1, x3) U101_gga(x1, x2, x3, x4) = U101_gga(x1, x2, x4) U102_gga(x1, x2, x3, x4) = U102_gga(x1, x2, x4) U103_gga(x1, x2, x3, x4) = U103_gga(x1, x2, x4) U104_gga(x1, x2, x3, x4) = U104_gga(x1, x2, x4) U86_gga(x1, x2, x3, x4) = U86_gga(x1, x2, x4) U87_gga(x1, x2, x3, x4) = U87_gga(x1, x2, x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x2, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x2, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x2, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x1, x2, x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U99_ggg(x1, x2, x3) = U99_ggg(x1, x2, x3) U100_ggg(x1, x2, x3) = U100_ggg(x1, x2, x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x1, x2, x3, x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x1, x2, x3, x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x1, x2, x3, x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x1, x2, x3, x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x1, x2, x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x1, x2, x4) U94_gga(x1, x2, x3, x4) = U94_gga(x1, x2, x4) main_out_gg(x1, x2) = main_out_gg(x1, x2) U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U130_gg(x1, x2, x3) = U130_gg(x1, x2, x3) U131_gg(x1, x2, x3) = U131_gg(x1, x2, x3) U15_gg(x1, x2, x3) = U15_gg(x1, x2, x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x1, x2, x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x1, x2, x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x1, x2, x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x1, x2, x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x1, x2, x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x1, x2, x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x1, x2, x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x1, x2, x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x1, x2, x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x1, x2, x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x1, x2, x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x1, x2, x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x1, x2, x3) MAIN_IN_GG(x1, x2) = MAIN_IN_GG(x1, x2) U1_GG(x1, x2, x3) = U1_GG(x1, x2, x3) =_IN_AG(x1, x2) = =_IN_AG(x2) U2_GG(x1, x2, x3, x4) = U2_GG(x1, x2, x3, x4) U3_GG(x1, x2, x3) = U3_GG(x1, x2, x3) ISGREATER_IN_GG(x1, x2) = ISGREATER_IN_GG(x1, x2) U128_GG(x1, x2, x3) = U128_GG(x1, x2, x3) U129_GG(x1, x2, x3) = U129_GG(x1, x2, x3) U4_GG(x1, x2, x3) = U4_GG(x1, x2, x3) U5_GG(x1, x2, x3, x4) = U5_GG(x1, x2, x3, x4) U6_GG(x1, x2, x3) = U6_GG(x1, x2, x3) =_IN_GG(x1, x2) = =_IN_GG(x1, x2) U7_GG(x1, x2, x3) = U7_GG(x1, x2, x3) U8_GG(x1, x2, x3, x4) = U8_GG(x1, x2, x3, x4) U9_GG(x1, x2, x3) = U9_GG(x1, x2, x3) U10_GG(x1, x2, x3) = U10_GG(x1, x2, x3) U11_GG(x1, x2, x3, x4) = U11_GG(x1, x2, x3, x4) U12_GG(x1, x2, x3) = U12_GG(x1, x2, x3) U13_GG(x1, x2, x3) = U13_GG(x1, x2, x3) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U77_GGA(x1, x2, x3, x4) = U77_GGA(x1, x2, x4) U78_GGA(x1, x2, x3, x4, x5) = U78_GGA(x1, x2, x4, x5) U79_GGA(x1, x2, x3, x4) = U79_GGA(x1, x2, x4) U80_GGA(x1, x2, x3, x4) = U80_GGA(x1, x2, x4) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) U95_GGA(x1, x2, x3, x4) = U95_GGA(x1, x2, x4) U96_GGA(x1, x2, x3, x4) = U96_GGA(x1, x2, x4) U97_GGA(x1, x2, x3, x4) = U97_GGA(x1, x2, x4) U98_GGA(x1, x2, x3, x4) = U98_GGA(x1, x2, x4) U81_GGA(x1, x2, x3, x4) = U81_GGA(x1, x2, x4) U82_GGA(x1, x2, x3, x4) = U82_GGA(x1, x2, x4) U83_GGA(x1, x2, x3, x4, x5) = U83_GGA(x1, x2, x4, x5) U84_GGA(x1, x2, x3, x4) = U84_GGA(x1, x2, x4) U85_GGA(x1, x2, x3, x4) = U85_GGA(x1, x2, x4) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) U99_GGA(x1, x2, x3) = U99_GGA(x1, x3) U100_GGA(x1, x2, x3) = U100_GGA(x1, x3) U101_GGA(x1, x2, x3, x4) = U101_GGA(x1, x2, x4) U102_GGA(x1, x2, x3, x4) = U102_GGA(x1, x2, x4) U103_GGA(x1, x2, x3, x4) = U103_GGA(x1, x2, x4) U104_GGA(x1, x2, x3, x4) = U104_GGA(x1, x2, x4) U86_GGA(x1, x2, x3, x4) = U86_GGA(x1, x2, x4) U87_GGA(x1, x2, x3, x4) = U87_GGA(x1, x2, x4) U88_GGA(x1, x2, x3, x4) = U88_GGA(x1, x2, x4) U89_GGA(x1, x2, x3, x4, x5) = U89_GGA(x1, x2, x4, x5) U90_GGA(x1, x2, x3, x4, x5) = U90_GGA(x1, x2, x4, x5) U91_GGA(x1, x2, x3, x4, x5, x6) = U91_GGA(x1, x2, x4, x5, x6) ISMINUS_IN_GGG(x1, x2, x3) = ISMINUS_IN_GGG(x1, x2, x3) U99_GGG(x1, x2, x3) = U99_GGG(x1, x2, x3) U100_GGG(x1, x2, x3) = U100_GGG(x1, x2, x3) U101_GGG(x1, x2, x3, x4) = U101_GGG(x1, x2, x3, x4) U102_GGG(x1, x2, x3, x4) = U102_GGG(x1, x2, x3, x4) U103_GGG(x1, x2, x3, x4) = U103_GGG(x1, x2, x3, x4) U104_GGG(x1, x2, x3, x4) = U104_GGG(x1, x2, x3, x4) U92_GGA(x1, x2, x3, x4, x5) = U92_GGA(x1, x2, x4, x5) U93_GGA(x1, x2, x3, x4) = U93_GGA(x1, x2, x4) U94_GGA(x1, x2, x3, x4) = U94_GGA(x1, x2, x4) U14_GG(x1, x2, x3) = U14_GG(x1, x2, x3) ISLESS_IN_GG(x1, x2) = ISLESS_IN_GG(x1, x2) U130_GG(x1, x2, x3) = U130_GG(x1, x2, x3) U131_GG(x1, x2, x3) = U131_GG(x1, x2, x3) U15_GG(x1, x2, x3) = U15_GG(x1, x2, x3) U16_GG(x1, x2, x3) = U16_GG(x1, x2, x3) U17_GG(x1, x2, x3) = U17_GG(x1, x2, x3) U18_GG(x1, x2, x3, x4) = U18_GG(x1, x2, x3, x4) U19_GG(x1, x2, x3) = U19_GG(x1, x2, x3) U20_GG(x1, x2, x3) = U20_GG(x1, x2, x3) U21_GG(x1, x2, x3) = U21_GG(x1, x2, x3) U22_GG(x1, x2, x3) = U22_GG(x1, x2, x3) U23_GG(x1, x2, x3) = U23_GG(x1, x2, x3) U24_GG(x1, x2, x3) = U24_GG(x1, x2, x3) U25_GG(x1, x2, x3, x4) = U25_GG(x1, x2, x3, x4) U26_GG(x1, x2, x3) = U26_GG(x1, x2, x3) U27_GG(x1, x2, x3) = U27_GG(x1, x2, x3) U28_GG(x1, x2, x3, x4) = U28_GG(x1, x2, x3, x4) U29_GG(x1, x2, x3) = U29_GG(x1, x2, x3) U30_GG(x1, x2, x3) = U30_GG(x1, x2, x3) U31_GG(x1, x2, x3) = U31_GG(x1, x2, x3) U32_GG(x1, x2, x3) = U32_GG(x1, x2, x3) U33_GG(x1, x2, x3) = U33_GG(x1, x2, x3) U34_GG(x1, x2, x3) = U34_GG(x1, x2, x3) U35_GG(x1, x2, x3, x4) = U35_GG(x1, x2, x3, x4) U36_GG(x1, x2, x3) = U36_GG(x1, x2, x3) U37_GG(x1, x2, x3) = U37_GG(x1, x2, x3) U38_GG(x1, x2, x3) = U38_GG(x1, x2, x3) U39_GG(x1, x2, x3) = U39_GG(x1, x2, x3) U40_GG(x1, x2, x3) = U40_GG(x1, x2, x3) U41_GG(x1, x2, x3) = U41_GG(x1, x2, x3) U42_GG(x1, x2, x3, x4) = U42_GG(x1, x2, x3, x4) U43_GG(x1, x2, x3) = U43_GG(x1, x2, x3) U44_GG(x1, x2, x3) = U44_GG(x1, x2, x3) U45_GG(x1, x2, x3, x4) = U45_GG(x1, x2, x3, x4) U46_GG(x1, x2, x3) = U46_GG(x1, x2, x3) U47_GG(x1, x2, x3) = U47_GG(x1, x2, x3) U48_GG(x1, x2, x3, x4) = U48_GG(x1, x2, x3, x4) U49_GG(x1, x2, x3) = U49_GG(x1, x2, x3) U50_GG(x1, x2, x3) = U50_GG(x1, x2, x3) U51_GG(x1, x2, x3) = U51_GG(x1, x2, x3) U52_GG(x1, x2, x3) = U52_GG(x1, x2, x3) U53_GG(x1, x2, x3) = U53_GG(x1, x2, x3) U54_GG(x1, x2, x3) = U54_GG(x1, x2, x3) U55_GG(x1, x2, x3, x4) = U55_GG(x1, x2, x3, x4) U56_GG(x1, x2, x3) = U56_GG(x1, x2, x3) U57_GG(x1, x2, x3) = U57_GG(x1, x2, x3) U58_GG(x1, x2, x3) = U58_GG(x1, x2, x3) U59_GG(x1, x2, x3) = U59_GG(x1, x2, x3) U60_GG(x1, x2, x3) = U60_GG(x1, x2, x3) U61_GG(x1, x2, x3) = U61_GG(x1, x2, x3) U62_GG(x1, x2, x3, x4) = U62_GG(x1, x2, x3, x4) U63_GG(x1, x2, x3) = U63_GG(x1, x2, x3) U64_GG(x1, x2, x3) = U64_GG(x1, x2, x3) U65_GG(x1, x2, x3, x4) = U65_GG(x1, x2, x3, x4) U66_GG(x1, x2, x3) = U66_GG(x1, x2, x3) U67_GG(x1, x2, x3) = U67_GG(x1, x2, x3) U68_GG(x1, x2, x3) = U68_GG(x1, x2, x3) U69_GG(x1, x2, x3) = U69_GG(x1, x2, x3) U70_GG(x1, x2, x3) = U70_GG(x1, x2, x3) U71_GG(x1, x2, x3) = U71_GG(x1, x2, x3) U72_GG(x1, x2, x3, x4) = U72_GG(x1, x2, x3, x4) U73_GG(x1, x2, x3) = U73_GG(x1, x2, x3) U74_GG(x1, x2, x3) = U74_GG(x1, x2, x3) U75_GG(x1, x2, x3) = U75_GG(x1, x2, x3) U76_GG(x1, x2, x3) = U76_GG(x1, x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (58) Obligation: Pi DP problem: The TRS P consists of the following rules: MAIN_IN_GG(M, N) -> U1_GG(M, N, =_in_ag(X, M)) MAIN_IN_GG(M, N) -> =_IN_AG(X, M) U1_GG(M, N, =_out_ag(X, M)) -> U2_GG(M, N, X, =_in_ag(X2, zero)) U1_GG(M, N, =_out_ag(X, M)) -> =_IN_AG(X2, zero) U2_GG(M, N, X, =_out_ag(X2, zero)) -> U3_GG(M, N, isGreater_in_gg(X, X2)) U2_GG(M, N, X, =_out_ag(X2, zero)) -> ISGREATER_IN_GG(X, X2) ISGREATER_IN_GG(succ(X), succ(Y)) -> U128_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)) -> U129_GG(X, Y, isGreater_in_gg(X, Y)) ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) U3_GG(M, N, isGreater_out_gg(X, X2)) -> U4_GG(M, N, =_in_ag(X5, M)) U3_GG(M, N, isGreater_out_gg(X, X2)) -> =_IN_AG(X5, M) U4_GG(M, N, =_out_ag(X5, M)) -> U5_GG(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U4_GG(M, N, =_out_ag(X5, M)) -> =_IN_AG(X6, succ(succ(succ(zero)))) U5_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_GG(M, N, =_in_gg(X5, X6)) U5_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> =_IN_GG(X5, X6) U6_GG(M, N, =_out_gg(X5, X6)) -> U7_GG(M, N, =_in_ag(X3, N)) U6_GG(M, N, =_out_gg(X5, X6)) -> =_IN_AG(X3, N) U7_GG(M, N, =_out_ag(X3, N)) -> U8_GG(M, N, X3, =_in_ag(X4, zero)) U7_GG(M, N, =_out_ag(X3, N)) -> =_IN_AG(X4, zero) U8_GG(M, N, X3, =_out_ag(X4, zero)) -> U9_GG(M, N, isGreater_in_gg(X3, X4)) U8_GG(M, N, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U9_GG(M, N, isGreater_out_gg(X3, X4)) -> U10_GG(M, N, =_in_ag(X7, N)) U9_GG(M, N, isGreater_out_gg(X3, X4)) -> =_IN_AG(X7, N) U10_GG(M, N, =_out_ag(X7, N)) -> U11_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U10_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U11_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_GG(M, N, =_in_gg(X7, X8)) U11_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U12_GG(M, N, =_out_gg(X7, X8)) -> U13_GG(M, N, ackermann_in_gga(M, N, X1)) U12_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) ACKERMANN_IN_GGA(M, N, Ret) -> U77_GGA(M, N, Ret, =_in_ag(X, M)) ACKERMANN_IN_GGA(M, N, Ret) -> =_IN_AG(X, M) U77_GGA(M, N, Ret, =_out_ag(X, M)) -> U78_GGA(M, N, Ret, X, =_in_ag(X1, zero)) U77_GGA(M, N, Ret, =_out_ag(X, M)) -> =_IN_AG(X1, zero) U78_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_GGA(M, N, Ret, =_in_gg(X, X1)) U78_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> =_IN_GG(X, X1) U79_GGA(M, N, Ret, =_out_gg(X, X1)) -> U80_GGA(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) U79_GGA(M, N, Ret, =_out_gg(X, X1)) -> ISPLUS_IN_GGA(N, succ(zero), U) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> U95_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) -> U96_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) -> U97_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))) -> U98_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) U80_GGA(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_GGA(M, N, Ret, =_in_ag(Ret, U)) U80_GGA(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> =_IN_AG(Ret, U) ACKERMANN_IN_GGA(M, N, Ret) -> U82_GGA(M, N, Ret, =_in_ag(X, N)) ACKERMANN_IN_GGA(M, N, Ret) -> =_IN_AG(X, N) U82_GGA(M, N, Ret, =_out_ag(X, N)) -> U83_GGA(M, N, Ret, X, =_in_ag(X1, zero)) U82_GGA(M, N, Ret, =_out_ag(X, N)) -> =_IN_AG(X1, zero) U83_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_GGA(M, N, Ret, =_in_gg(X, X1)) U83_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> =_IN_GG(X, X1) U84_GGA(M, N, Ret, =_out_gg(X, X1)) -> U85_GGA(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) U84_GGA(M, N, Ret, =_out_gg(X, X1)) -> ISMINUS_IN_GGA(M, succ(zero), U) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> U99_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)) -> U100_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) -> U101_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))) -> U102_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))) -> U103_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) -> U104_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) U85_GGA(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_GGA(M, N, Ret, =_in_ag(M1, U)) U85_GGA(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> =_IN_AG(M1, U) U86_GGA(M, N, Ret, =_out_ag(M1, U)) -> U87_GGA(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) U86_GGA(M, N, Ret, =_out_ag(M1, U)) -> ACKERMANN_IN_GGA(M1, succ(zero), Ret) ACKERMANN_IN_GGA(M, N, Ret) -> U88_GGA(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) ACKERMANN_IN_GGA(M, N, Ret) -> ISMINUS_IN_GGA(N, succ(zero), U) U88_GGA(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_GGA(M, N, Ret, U, =_in_ag(N1, U)) U88_GGA(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> =_IN_AG(N1, U) U89_GGA(M, N, Ret, U, =_out_ag(N1, U)) -> U90_GGA(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U89_GGA(M, N, Ret, U, =_out_ag(N1, U)) -> ACKERMANN_IN_GGA(M, N1, Ret1) U90_GGA(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_GGA(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) U90_GGA(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> ISMINUS_IN_GGG(M, succ(zero), U) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> U99_GGG(Y, Z, isMinus_in_ggg(zero, Y, Z)) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> U100_GGG(Y, Z, isMinus_in_ggg(zero, Y, Z)) ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> U101_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> U102_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> U103_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> U104_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) U91_GGA(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_GGA(M, N, Ret, Ret1, =_in_ag(M1, U)) U91_GGA(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> =_IN_AG(M1, U) U92_GGA(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_GGA(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U92_GGA(M, N, Ret, Ret1, =_out_ag(M1, U)) -> ACKERMANN_IN_GGA(M1, Ret1, Ret2) U93_GGA(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_GGA(M, N, Ret, =_in_ag(Ret, Ret2)) U93_GGA(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> =_IN_AG(Ret, Ret2) U11_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_GG(M, N, isLess_in_gg(X7, X8)) U11_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) ISLESS_IN_GG(pred(X), pred(Y)) -> U130_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)) -> U131_GG(X, Y, isLess_in_gg(X, Y)) ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) U14_GG(M, N, isLess_out_gg(X7, X8)) -> U15_GG(M, N, ackermann_in_gga(M, N, X1)) U14_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U8_GG(M, N, X3, =_out_ag(X4, zero)) -> U16_GG(M, N, =_in_gg(X3, X4)) U8_GG(M, N, X3, =_out_ag(X4, zero)) -> =_IN_GG(X3, X4) U16_GG(M, N, =_out_gg(X3, X4)) -> U17_GG(M, N, =_in_ag(X7, N)) U16_GG(M, N, =_out_gg(X3, X4)) -> =_IN_AG(X7, N) U17_GG(M, N, =_out_ag(X7, N)) -> U18_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U17_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U18_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_GG(M, N, =_in_gg(X7, X8)) U18_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U19_GG(M, N, =_out_gg(X7, X8)) -> U20_GG(M, N, ackermann_in_gga(M, N, X1)) U19_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U18_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_GG(M, N, isLess_in_gg(X7, X8)) U18_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U21_GG(M, N, isLess_out_gg(X7, X8)) -> U22_GG(M, N, ackermann_in_gga(M, N, X1)) U21_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U5_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_GG(M, N, isLess_in_gg(X5, X6)) U5_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> ISLESS_IN_GG(X5, X6) U23_GG(M, N, isLess_out_gg(X5, X6)) -> U24_GG(M, N, =_in_ag(X3, N)) U23_GG(M, N, isLess_out_gg(X5, X6)) -> =_IN_AG(X3, N) U24_GG(M, N, =_out_ag(X3, N)) -> U25_GG(M, N, X3, =_in_ag(X4, zero)) U24_GG(M, N, =_out_ag(X3, N)) -> =_IN_AG(X4, zero) U25_GG(M, N, X3, =_out_ag(X4, zero)) -> U26_GG(M, N, isGreater_in_gg(X3, X4)) U25_GG(M, N, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U26_GG(M, N, isGreater_out_gg(X3, X4)) -> U27_GG(M, N, =_in_ag(X7, N)) U26_GG(M, N, isGreater_out_gg(X3, X4)) -> =_IN_AG(X7, N) U27_GG(M, N, =_out_ag(X7, N)) -> U28_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U27_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U28_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_GG(M, N, =_in_gg(X7, X8)) U28_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U29_GG(M, N, =_out_gg(X7, X8)) -> U30_GG(M, N, ackermann_in_gga(M, N, X1)) U29_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U28_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_GG(M, N, isLess_in_gg(X7, X8)) U28_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U31_GG(M, N, isLess_out_gg(X7, X8)) -> U32_GG(M, N, ackermann_in_gga(M, N, X1)) U31_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U25_GG(M, N, X3, =_out_ag(X4, zero)) -> U33_GG(M, N, =_in_gg(X3, X4)) U25_GG(M, N, X3, =_out_ag(X4, zero)) -> =_IN_GG(X3, X4) U33_GG(M, N, =_out_gg(X3, X4)) -> U34_GG(M, N, =_in_ag(X7, N)) U33_GG(M, N, =_out_gg(X3, X4)) -> =_IN_AG(X7, N) U34_GG(M, N, =_out_ag(X7, N)) -> U35_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U34_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U35_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_GG(M, N, =_in_gg(X7, X8)) U35_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U36_GG(M, N, =_out_gg(X7, X8)) -> U37_GG(M, N, ackermann_in_gga(M, N, X1)) U36_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U35_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_GG(M, N, isLess_in_gg(X7, X8)) U35_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U38_GG(M, N, isLess_out_gg(X7, X8)) -> U39_GG(M, N, ackermann_in_gga(M, N, X1)) U38_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U2_GG(M, N, X, =_out_ag(X2, zero)) -> U40_GG(M, N, =_in_gg(X, X2)) U2_GG(M, N, X, =_out_ag(X2, zero)) -> =_IN_GG(X, X2) U40_GG(M, N, =_out_gg(X, X2)) -> U41_GG(M, N, =_in_ag(X5, M)) U40_GG(M, N, =_out_gg(X, X2)) -> =_IN_AG(X5, M) U41_GG(M, N, =_out_ag(X5, M)) -> U42_GG(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U41_GG(M, N, =_out_ag(X5, M)) -> =_IN_AG(X6, succ(succ(succ(zero)))) U42_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_GG(M, N, =_in_gg(X5, X6)) U42_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> =_IN_GG(X5, X6) U43_GG(M, N, =_out_gg(X5, X6)) -> U44_GG(M, N, =_in_ag(X3, N)) U43_GG(M, N, =_out_gg(X5, X6)) -> =_IN_AG(X3, N) U44_GG(M, N, =_out_ag(X3, N)) -> U45_GG(M, N, X3, =_in_ag(X4, zero)) U44_GG(M, N, =_out_ag(X3, N)) -> =_IN_AG(X4, zero) U45_GG(M, N, X3, =_out_ag(X4, zero)) -> U46_GG(M, N, isGreater_in_gg(X3, X4)) U45_GG(M, N, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U46_GG(M, N, isGreater_out_gg(X3, X4)) -> U47_GG(M, N, =_in_ag(X7, N)) U46_GG(M, N, isGreater_out_gg(X3, X4)) -> =_IN_AG(X7, N) U47_GG(M, N, =_out_ag(X7, N)) -> U48_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U47_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U48_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_GG(M, N, =_in_gg(X7, X8)) U48_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U49_GG(M, N, =_out_gg(X7, X8)) -> U50_GG(M, N, ackermann_in_gga(M, N, X1)) U49_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U48_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_GG(M, N, isLess_in_gg(X7, X8)) U48_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U51_GG(M, N, isLess_out_gg(X7, X8)) -> U52_GG(M, N, ackermann_in_gga(M, N, X1)) U51_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U45_GG(M, N, X3, =_out_ag(X4, zero)) -> U53_GG(M, N, =_in_gg(X3, X4)) U45_GG(M, N, X3, =_out_ag(X4, zero)) -> =_IN_GG(X3, X4) U53_GG(M, N, =_out_gg(X3, X4)) -> U54_GG(M, N, =_in_ag(X7, N)) U53_GG(M, N, =_out_gg(X3, X4)) -> =_IN_AG(X7, N) U54_GG(M, N, =_out_ag(X7, N)) -> U55_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U54_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U55_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_GG(M, N, =_in_gg(X7, X8)) U55_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U56_GG(M, N, =_out_gg(X7, X8)) -> U57_GG(M, N, ackermann_in_gga(M, N, X1)) U56_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U55_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_GG(M, N, isLess_in_gg(X7, X8)) U55_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U58_GG(M, N, isLess_out_gg(X7, X8)) -> U59_GG(M, N, ackermann_in_gga(M, N, X1)) U58_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U42_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_GG(M, N, isLess_in_gg(X5, X6)) U42_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> ISLESS_IN_GG(X5, X6) U60_GG(M, N, isLess_out_gg(X5, X6)) -> U61_GG(M, N, =_in_ag(X3, N)) U60_GG(M, N, isLess_out_gg(X5, X6)) -> =_IN_AG(X3, N) U61_GG(M, N, =_out_ag(X3, N)) -> U62_GG(M, N, X3, =_in_ag(X4, zero)) U61_GG(M, N, =_out_ag(X3, N)) -> =_IN_AG(X4, zero) U62_GG(M, N, X3, =_out_ag(X4, zero)) -> U63_GG(M, N, isGreater_in_gg(X3, X4)) U62_GG(M, N, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U63_GG(M, N, isGreater_out_gg(X3, X4)) -> U64_GG(M, N, =_in_ag(X7, N)) U63_GG(M, N, isGreater_out_gg(X3, X4)) -> =_IN_AG(X7, N) U64_GG(M, N, =_out_ag(X7, N)) -> U65_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U64_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U65_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_GG(M, N, =_in_gg(X7, X8)) U65_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U66_GG(M, N, =_out_gg(X7, X8)) -> U67_GG(M, N, ackermann_in_gga(M, N, X1)) U66_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U65_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_GG(M, N, isLess_in_gg(X7, X8)) U65_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U68_GG(M, N, isLess_out_gg(X7, X8)) -> U69_GG(M, N, ackermann_in_gga(M, N, X1)) U68_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U62_GG(M, N, X3, =_out_ag(X4, zero)) -> U70_GG(M, N, =_in_gg(X3, X4)) U62_GG(M, N, X3, =_out_ag(X4, zero)) -> =_IN_GG(X3, X4) U70_GG(M, N, =_out_gg(X3, X4)) -> U71_GG(M, N, =_in_ag(X7, N)) U70_GG(M, N, =_out_gg(X3, X4)) -> =_IN_AG(X7, N) U71_GG(M, N, =_out_ag(X7, N)) -> U72_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U71_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U72_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_GG(M, N, =_in_gg(X7, X8)) U72_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U73_GG(M, N, =_out_gg(X7, X8)) -> U74_GG(M, N, ackermann_in_gga(M, N, X1)) U73_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U72_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_GG(M, N, isLess_in_gg(X7, X8)) U72_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U75_GG(M, N, isLess_out_gg(X7, X8)) -> U76_GG(M, N, ackermann_in_gga(M, N, X1)) U75_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x1, x2, x3) U129_gg(x1, x2, x3) = U129_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x1, x2, x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x1, x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x1, x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x1, x2, x4) U80_gga(x1, x2, x3, x4) = U80_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) U95_gga(x1, x2, x3, x4) = U95_gga(x1, x2, x4) U96_gga(x1, x2, x3, x4) = U96_gga(x1, x2, x4) U97_gga(x1, x2, x3, x4) = U97_gga(x1, x2, x4) U98_gga(x1, x2, x3, x4) = U98_gga(x1, x2, x4) U81_gga(x1, x2, x3, x4) = U81_gga(x1, x2, x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x2, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x2, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x2, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U99_gga(x1, x2, x3) = U99_gga(x1, x3) U100_gga(x1, x2, x3) = U100_gga(x1, x3) U101_gga(x1, x2, x3, x4) = U101_gga(x1, x2, x4) U102_gga(x1, x2, x3, x4) = U102_gga(x1, x2, x4) U103_gga(x1, x2, x3, x4) = U103_gga(x1, x2, x4) U104_gga(x1, x2, x3, x4) = U104_gga(x1, x2, x4) U86_gga(x1, x2, x3, x4) = U86_gga(x1, x2, x4) U87_gga(x1, x2, x3, x4) = U87_gga(x1, x2, x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x2, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x2, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x2, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x1, x2, x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U99_ggg(x1, x2, x3) = U99_ggg(x1, x2, x3) U100_ggg(x1, x2, x3) = U100_ggg(x1, x2, x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x1, x2, x3, x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x1, x2, x3, x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x1, x2, x3, x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x1, x2, x3, x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x1, x2, x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x1, x2, x4) U94_gga(x1, x2, x3, x4) = U94_gga(x1, x2, x4) main_out_gg(x1, x2) = main_out_gg(x1, x2) U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U130_gg(x1, x2, x3) = U130_gg(x1, x2, x3) U131_gg(x1, x2, x3) = U131_gg(x1, x2, x3) U15_gg(x1, x2, x3) = U15_gg(x1, x2, x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x1, x2, x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x1, x2, x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x1, x2, x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x1, x2, x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x1, x2, x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x1, x2, x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x1, x2, x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x1, x2, x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x1, x2, x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x1, x2, x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x1, x2, x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg'(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x1, x2, x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x1, x2, x3) MAIN_IN_GG(x1, x2) = MAIN_IN_GG(x1, x2) U1_GG(x1, x2, x3) = U1_GG(x1, x2, x3) =_IN_AG(x1, x2) = =_IN_AG(x2) U2_GG(x1, x2, x3, x4) = U2_GG(x1, x2, x3, x4) U3_GG(x1, x2, x3) = U3_GG(x1, x2, x3) ISGREATER_IN_GG(x1, x2) = ISGREATER_IN_GG(x1, x2) U128_GG(x1, x2, x3) = U128_GG(x1, x2, x3) U129_GG(x1, x2, x3) = U129_GG(x1, x2, x3) U4_GG(x1, x2, x3) = U4_GG(x1, x2, x3) U5_GG(x1, x2, x3, x4) = U5_GG(x1, x2, x3, x4) U6_GG(x1, x2, x3) = U6_GG(x1, x2, x3) =_IN_GG(x1, x2) = =_IN_GG(x1, x2) U7_GG(x1, x2, x3) = U7_GG(x1, x2, x3) U8_GG(x1, x2, x3, x4) = U8_GG(x1, x2, x3, x4) U9_GG(x1, x2, x3) = U9_GG(x1, x2, x3) U10_GG(x1, x2, x3) = U10_GG(x1, x2, x3) U11_GG(x1, x2, x3, x4) = U11_GG(x1, x2, x3, x4) U12_GG(x1, x2, x3) = U12_GG(x1, x2, x3) U13_GG(x1, x2, x3) = U13_GG(x1, x2, x3) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U77_GGA(x1, x2, x3, x4) = U77_GGA(x1, x2, x4) U78_GGA(x1, x2, x3, x4, x5) = U78_GGA(x1, x2, x4, x5) U79_GGA(x1, x2, x3, x4) = U79_GGA(x1, x2, x4) U80_GGA(x1, x2, x3, x4) = U80_GGA(x1, x2, x4) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) U95_GGA(x1, x2, x3, x4) = U95_GGA(x1, x2, x4) U96_GGA(x1, x2, x3, x4) = U96_GGA(x1, x2, x4) U97_GGA(x1, x2, x3, x4) = U97_GGA(x1, x2, x4) U98_GGA(x1, x2, x3, x4) = U98_GGA(x1, x2, x4) U81_GGA(x1, x2, x3, x4) = U81_GGA(x1, x2, x4) U82_GGA(x1, x2, x3, x4) = U82_GGA(x1, x2, x4) U83_GGA(x1, x2, x3, x4, x5) = U83_GGA(x1, x2, x4, x5) U84_GGA(x1, x2, x3, x4) = U84_GGA(x1, x2, x4) U85_GGA(x1, x2, x3, x4) = U85_GGA(x1, x2, x4) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) U99_GGA(x1, x2, x3) = U99_GGA(x1, x3) U100_GGA(x1, x2, x3) = U100_GGA(x1, x3) U101_GGA(x1, x2, x3, x4) = U101_GGA(x1, x2, x4) U102_GGA(x1, x2, x3, x4) = U102_GGA(x1, x2, x4) U103_GGA(x1, x2, x3, x4) = U103_GGA(x1, x2, x4) U104_GGA(x1, x2, x3, x4) = U104_GGA(x1, x2, x4) U86_GGA(x1, x2, x3, x4) = U86_GGA(x1, x2, x4) U87_GGA(x1, x2, x3, x4) = U87_GGA(x1, x2, x4) U88_GGA(x1, x2, x3, x4) = U88_GGA(x1, x2, x4) U89_GGA(x1, x2, x3, x4, x5) = U89_GGA(x1, x2, x4, x5) U90_GGA(x1, x2, x3, x4, x5) = U90_GGA(x1, x2, x4, x5) U91_GGA(x1, x2, x3, x4, x5, x6) = U91_GGA(x1, x2, x4, x5, x6) ISMINUS_IN_GGG(x1, x2, x3) = ISMINUS_IN_GGG(x1, x2, x3) U99_GGG(x1, x2, x3) = U99_GGG(x1, x2, x3) U100_GGG(x1, x2, x3) = U100_GGG(x1, x2, x3) U101_GGG(x1, x2, x3, x4) = U101_GGG(x1, x2, x3, x4) U102_GGG(x1, x2, x3, x4) = U102_GGG(x1, x2, x3, x4) U103_GGG(x1, x2, x3, x4) = U103_GGG(x1, x2, x3, x4) U104_GGG(x1, x2, x3, x4) = U104_GGG(x1, x2, x3, x4) U92_GGA(x1, x2, x3, x4, x5) = U92_GGA(x1, x2, x4, x5) U93_GGA(x1, x2, x3, x4) = U93_GGA(x1, x2, x4) U94_GGA(x1, x2, x3, x4) = U94_GGA(x1, x2, x4) U14_GG(x1, x2, x3) = U14_GG(x1, x2, x3) ISLESS_IN_GG(x1, x2) = ISLESS_IN_GG(x1, x2) U130_GG(x1, x2, x3) = U130_GG(x1, x2, x3) U131_GG(x1, x2, x3) = U131_GG(x1, x2, x3) U15_GG(x1, x2, x3) = U15_GG(x1, x2, x3) U16_GG(x1, x2, x3) = U16_GG(x1, x2, x3) U17_GG(x1, x2, x3) = U17_GG(x1, x2, x3) U18_GG(x1, x2, x3, x4) = U18_GG(x1, x2, x3, x4) U19_GG(x1, x2, x3) = U19_GG(x1, x2, x3) U20_GG(x1, x2, x3) = U20_GG(x1, x2, x3) U21_GG(x1, x2, x3) = U21_GG(x1, x2, x3) U22_GG(x1, x2, x3) = U22_GG(x1, x2, x3) U23_GG(x1, x2, x3) = U23_GG(x1, x2, x3) U24_GG(x1, x2, x3) = U24_GG(x1, x2, x3) U25_GG(x1, x2, x3, x4) = U25_GG(x1, x2, x3, x4) U26_GG(x1, x2, x3) = U26_GG(x1, x2, x3) U27_GG(x1, x2, x3) = U27_GG(x1, x2, x3) U28_GG(x1, x2, x3, x4) = U28_GG(x1, x2, x3, x4) U29_GG(x1, x2, x3) = U29_GG(x1, x2, x3) U30_GG(x1, x2, x3) = U30_GG(x1, x2, x3) U31_GG(x1, x2, x3) = U31_GG(x1, x2, x3) U32_GG(x1, x2, x3) = U32_GG(x1, x2, x3) U33_GG(x1, x2, x3) = U33_GG(x1, x2, x3) U34_GG(x1, x2, x3) = U34_GG(x1, x2, x3) U35_GG(x1, x2, x3, x4) = U35_GG(x1, x2, x3, x4) U36_GG(x1, x2, x3) = U36_GG(x1, x2, x3) U37_GG(x1, x2, x3) = U37_GG(x1, x2, x3) U38_GG(x1, x2, x3) = U38_GG(x1, x2, x3) U39_GG(x1, x2, x3) = U39_GG(x1, x2, x3) U40_GG(x1, x2, x3) = U40_GG(x1, x2, x3) U41_GG(x1, x2, x3) = U41_GG(x1, x2, x3) U42_GG(x1, x2, x3, x4) = U42_GG(x1, x2, x3, x4) U43_GG(x1, x2, x3) = U43_GG(x1, x2, x3) U44_GG(x1, x2, x3) = U44_GG(x1, x2, x3) U45_GG(x1, x2, x3, x4) = U45_GG(x1, x2, x3, x4) U46_GG(x1, x2, x3) = U46_GG(x1, x2, x3) U47_GG(x1, x2, x3) = U47_GG(x1, x2, x3) U48_GG(x1, x2, x3, x4) = U48_GG(x1, x2, x3, x4) U49_GG(x1, x2, x3) = U49_GG(x1, x2, x3) U50_GG(x1, x2, x3) = U50_GG(x1, x2, x3) U51_GG(x1, x2, x3) = U51_GG(x1, x2, x3) U52_GG(x1, x2, x3) = U52_GG(x1, x2, x3) U53_GG(x1, x2, x3) = U53_GG(x1, x2, x3) U54_GG(x1, x2, x3) = U54_GG(x1, x2, x3) U55_GG(x1, x2, x3, x4) = U55_GG(x1, x2, x3, x4) U56_GG(x1, x2, x3) = U56_GG(x1, x2, x3) U57_GG(x1, x2, x3) = U57_GG(x1, x2, x3) U58_GG(x1, x2, x3) = U58_GG(x1, x2, x3) U59_GG(x1, x2, x3) = U59_GG(x1, x2, x3) U60_GG(x1, x2, x3) = U60_GG(x1, x2, x3) U61_GG(x1, x2, x3) = U61_GG(x1, x2, x3) U62_GG(x1, x2, x3, x4) = U62_GG(x1, x2, x3, x4) U63_GG(x1, x2, x3) = U63_GG(x1, x2, x3) U64_GG(x1, x2, x3) = U64_GG(x1, x2, x3) U65_GG(x1, x2, x3, x4) = U65_GG(x1, x2, x3, x4) U66_GG(x1, x2, x3) = U66_GG(x1, x2, x3) U67_GG(x1, x2, x3) = U67_GG(x1, x2, x3) U68_GG(x1, x2, x3) = U68_GG(x1, x2, x3) U69_GG(x1, x2, x3) = U69_GG(x1, x2, x3) U70_GG(x1, x2, x3) = U70_GG(x1, x2, x3) U71_GG(x1, x2, x3) = U71_GG(x1, x2, x3) U72_GG(x1, x2, x3, x4) = U72_GG(x1, x2, x3, x4) U73_GG(x1, x2, x3) = U73_GG(x1, x2, x3) U74_GG(x1, x2, x3) = U74_GG(x1, x2, x3) U75_GG(x1, x2, x3) = U75_GG(x1, x2, x3) U76_GG(x1, x2, x3) = U76_GG(x1, x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (59) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 8 SCCs with 195 less nodes. ---------------------------------------- (60) Complex Obligation (AND) ---------------------------------------- (61) 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: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x1, x2, x3) U129_gg(x1, x2, x3) = U129_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x1, x2, x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x1, x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x1, x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x1, x2, x4) U80_gga(x1, x2, x3, x4) = U80_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) U95_gga(x1, x2, x3, x4) = U95_gga(x1, x2, x4) U96_gga(x1, x2, x3, x4) = U96_gga(x1, x2, x4) U97_gga(x1, x2, x3, x4) = U97_gga(x1, x2, x4) U98_gga(x1, x2, x3, x4) = U98_gga(x1, x2, x4) U81_gga(x1, x2, x3, x4) = U81_gga(x1, x2, x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x2, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x2, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x2, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U99_gga(x1, x2, x3) = U99_gga(x1, x3) U100_gga(x1, x2, x3) = U100_gga(x1, x3) U101_gga(x1, x2, x3, x4) = U101_gga(x1, x2, x4) U102_gga(x1, x2, x3, x4) = U102_gga(x1, x2, x4) U103_gga(x1, x2, x3, x4) = U103_gga(x1, x2, x4) U104_gga(x1, x2, x3, x4) = U104_gga(x1, x2, x4) U86_gga(x1, x2, x3, x4) = U86_gga(x1, x2, x4) U87_gga(x1, x2, x3, x4) = U87_gga(x1, x2, x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x2, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x2, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x2, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x1, x2, x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U99_ggg(x1, x2, x3) = U99_ggg(x1, x2, x3) U100_ggg(x1, x2, x3) = U100_ggg(x1, x2, x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x1, x2, x3, x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x1, x2, x3, x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x1, x2, x3, x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x1, x2, x3, x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x1, x2, x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x1, x2, x4) U94_gga(x1, x2, x3, x4) = U94_gga(x1, x2, x4) main_out_gg(x1, x2) = main_out_gg(x1, x2) U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U130_gg(x1, x2, x3) = U130_gg(x1, x2, x3) U131_gg(x1, x2, x3) = U131_gg(x1, x2, x3) U15_gg(x1, x2, x3) = U15_gg(x1, x2, x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x1, x2, x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x1, x2, x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x1, x2, x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x1, x2, x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x1, x2, x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x1, x2, x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x1, x2, x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x1, x2, x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x1, x2, x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x1, x2, x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x1, x2, x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x1, x2, x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x1, x2, x3) ISLESS_IN_GG(x1, x2) = ISLESS_IN_GG(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (62) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (63) 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 ---------------------------------------- (64) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (65) 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. ---------------------------------------- (66) 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 ---------------------------------------- (67) YES ---------------------------------------- (68) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x1, x2, x3) U129_gg(x1, x2, x3) = U129_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x1, x2, x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x1, x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x1, x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x1, x2, x4) U80_gga(x1, x2, x3, x4) = U80_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) U95_gga(x1, x2, x3, x4) = U95_gga(x1, x2, x4) U96_gga(x1, x2, x3, x4) = U96_gga(x1, x2, x4) U97_gga(x1, x2, x3, x4) = U97_gga(x1, x2, x4) U98_gga(x1, x2, x3, x4) = U98_gga(x1, x2, x4) U81_gga(x1, x2, x3, x4) = U81_gga(x1, x2, x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x2, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x2, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x2, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U99_gga(x1, x2, x3) = U99_gga(x1, x3) U100_gga(x1, x2, x3) = U100_gga(x1, x3) U101_gga(x1, x2, x3, x4) = U101_gga(x1, x2, x4) U102_gga(x1, x2, x3, x4) = U102_gga(x1, x2, x4) U103_gga(x1, x2, x3, x4) = U103_gga(x1, x2, x4) U104_gga(x1, x2, x3, x4) = U104_gga(x1, x2, x4) U86_gga(x1, x2, x3, x4) = U86_gga(x1, x2, x4) U87_gga(x1, x2, x3, x4) = U87_gga(x1, x2, x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x2, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x2, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x2, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x1, x2, x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U99_ggg(x1, x2, x3) = U99_ggg(x1, x2, x3) U100_ggg(x1, x2, x3) = U100_ggg(x1, x2, x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x1, x2, x3, x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x1, x2, x3, x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x1, x2, x3, x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x1, x2, x3, x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x1, x2, x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x1, x2, x4) U94_gga(x1, x2, x3, x4) = U94_gga(x1, x2, x4) main_out_gg(x1, x2) = main_out_gg(x1, x2) U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U130_gg(x1, x2, x3) = U130_gg(x1, x2, x3) U131_gg(x1, x2, x3) = U131_gg(x1, x2, x3) U15_gg(x1, x2, x3) = U15_gg(x1, x2, x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x1, x2, x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x1, x2, x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x1, x2, x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x1, x2, x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x1, x2, x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x1, x2, x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x1, x2, x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x1, x2, x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x1, x2, x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x1, x2, x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x1, x2, x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x1, x2, x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x1, x2, x3) ISMINUS_IN_GGG(x1, x2, x3) = ISMINUS_IN_GGG(x1, x2, x3) 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: ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (71) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (72) Obligation: Q DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (73) 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_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3 *ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) The graph contains the following edges 1 >= 1, 2 > 2, 3 > 3 ---------------------------------------- (74) YES ---------------------------------------- (75) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x1, x2, x3) U129_gg(x1, x2, x3) = U129_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x1, x2, x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x1, x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x1, x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x1, x2, x4) U80_gga(x1, x2, x3, x4) = U80_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) U95_gga(x1, x2, x3, x4) = U95_gga(x1, x2, x4) U96_gga(x1, x2, x3, x4) = U96_gga(x1, x2, x4) U97_gga(x1, x2, x3, x4) = U97_gga(x1, x2, x4) U98_gga(x1, x2, x3, x4) = U98_gga(x1, x2, x4) U81_gga(x1, x2, x3, x4) = U81_gga(x1, x2, x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x2, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x2, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x2, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U99_gga(x1, x2, x3) = U99_gga(x1, x3) U100_gga(x1, x2, x3) = U100_gga(x1, x3) U101_gga(x1, x2, x3, x4) = U101_gga(x1, x2, x4) U102_gga(x1, x2, x3, x4) = U102_gga(x1, x2, x4) U103_gga(x1, x2, x3, x4) = U103_gga(x1, x2, x4) U104_gga(x1, x2, x3, x4) = U104_gga(x1, x2, x4) U86_gga(x1, x2, x3, x4) = U86_gga(x1, x2, x4) U87_gga(x1, x2, x3, x4) = U87_gga(x1, x2, x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x2, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x2, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x2, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x1, x2, x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U99_ggg(x1, x2, x3) = U99_ggg(x1, x2, x3) U100_ggg(x1, x2, x3) = U100_ggg(x1, x2, x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x1, x2, x3, x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x1, x2, x3, x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x1, x2, x3, x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x1, x2, x3, x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x1, x2, x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x1, x2, x4) U94_gga(x1, x2, x3, x4) = U94_gga(x1, x2, x4) main_out_gg(x1, x2) = main_out_gg(x1, x2) U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U130_gg(x1, x2, x3) = U130_gg(x1, x2, x3) U131_gg(x1, x2, x3) = U131_gg(x1, x2, x3) U15_gg(x1, x2, x3) = U15_gg(x1, x2, x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x1, x2, x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x1, x2, x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x1, x2, x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x1, x2, x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x1, x2, x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x1, x2, x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x1, x2, x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x1, x2, x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x1, x2, x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x1, x2, x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x1, x2, x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x1, x2, x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x1, x2, x3) ISMINUS_IN_GGG(x1, x2, x3) = ISMINUS_IN_GGG(x1, x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (76) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (77) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (78) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (79) Obligation: Q DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) R is empty. Q is empty. We have to consider all (P,Q,R)-chains. ---------------------------------------- (80) 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: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x1, x2, x3) U129_gg(x1, x2, x3) = U129_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x1, x2, x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x1, x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x1, x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x1, x2, x4) U80_gga(x1, x2, x3, x4) = U80_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) U95_gga(x1, x2, x3, x4) = U95_gga(x1, x2, x4) U96_gga(x1, x2, x3, x4) = U96_gga(x1, x2, x4) U97_gga(x1, x2, x3, x4) = U97_gga(x1, x2, x4) U98_gga(x1, x2, x3, x4) = U98_gga(x1, x2, x4) U81_gga(x1, x2, x3, x4) = U81_gga(x1, x2, x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x2, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x2, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x2, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U99_gga(x1, x2, x3) = U99_gga(x1, x3) U100_gga(x1, x2, x3) = U100_gga(x1, x3) U101_gga(x1, x2, x3, x4) = U101_gga(x1, x2, x4) U102_gga(x1, x2, x3, x4) = U102_gga(x1, x2, x4) U103_gga(x1, x2, x3, x4) = U103_gga(x1, x2, x4) U104_gga(x1, x2, x3, x4) = U104_gga(x1, x2, x4) U86_gga(x1, x2, x3, x4) = U86_gga(x1, x2, x4) U87_gga(x1, x2, x3, x4) = U87_gga(x1, x2, x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x2, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x2, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x2, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x1, x2, x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U99_ggg(x1, x2, x3) = U99_ggg(x1, x2, x3) U100_ggg(x1, x2, x3) = U100_ggg(x1, x2, x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x1, x2, x3, x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x1, x2, x3, x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x1, x2, x3, x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x1, x2, x3, x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x1, x2, x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x1, x2, x4) U94_gga(x1, x2, x3, x4) = U94_gga(x1, x2, x4) main_out_gg(x1, x2) = main_out_gg(x1, x2) U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U130_gg(x1, x2, x3) = U130_gg(x1, x2, x3) U131_gg(x1, x2, x3) = U131_gg(x1, x2, x3) U15_gg(x1, x2, x3) = U15_gg(x1, x2, x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x1, x2, x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x1, x2, x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x1, x2, x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x1, x2, x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x1, x2, x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x1, x2, x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x1, x2, x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x1, x2, x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x1, x2, x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x1, x2, x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x1, x2, x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x1, x2, x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x1, x2, x3) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (81) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (82) 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 ---------------------------------------- (83) 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: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x1, x2, x3) U129_gg(x1, x2, x3) = U129_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x1, x2, x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x1, x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x1, x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x1, x2, x4) U80_gga(x1, x2, x3, x4) = U80_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) U95_gga(x1, x2, x3, x4) = U95_gga(x1, x2, x4) U96_gga(x1, x2, x3, x4) = U96_gga(x1, x2, x4) U97_gga(x1, x2, x3, x4) = U97_gga(x1, x2, x4) U98_gga(x1, x2, x3, x4) = U98_gga(x1, x2, x4) U81_gga(x1, x2, x3, x4) = U81_gga(x1, x2, x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x2, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x2, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x2, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U99_gga(x1, x2, x3) = U99_gga(x1, x3) U100_gga(x1, x2, x3) = U100_gga(x1, x3) U101_gga(x1, x2, x3, x4) = U101_gga(x1, x2, x4) U102_gga(x1, x2, x3, x4) = U102_gga(x1, x2, x4) U103_gga(x1, x2, x3, x4) = U103_gga(x1, x2, x4) U104_gga(x1, x2, x3, x4) = U104_gga(x1, x2, x4) U86_gga(x1, x2, x3, x4) = U86_gga(x1, x2, x4) U87_gga(x1, x2, x3, x4) = U87_gga(x1, x2, x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x2, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x2, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x2, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x1, x2, x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U99_ggg(x1, x2, x3) = U99_ggg(x1, x2, x3) U100_ggg(x1, x2, x3) = U100_ggg(x1, x2, x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x1, x2, x3, x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x1, x2, x3, x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x1, x2, x3, x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x1, x2, x3, x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x1, x2, x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x1, x2, x4) U94_gga(x1, x2, x3, x4) = U94_gga(x1, x2, x4) main_out_gg(x1, x2) = main_out_gg(x1, x2) U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U130_gg(x1, x2, x3) = U130_gg(x1, x2, x3) U131_gg(x1, x2, x3) = U131_gg(x1, x2, x3) U15_gg(x1, x2, x3) = U15_gg(x1, x2, x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x1, x2, x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x1, x2, x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x1, x2, x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x1, x2, x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x1, x2, x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x1, x2, x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x1, x2, x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x1, x2, x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x1, x2, x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x1, x2, x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x1, x2, x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x1, x2, x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x1, x2, x3) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(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: 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 ---------------------------------------- (86) 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: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x1, x2, x3) U129_gg(x1, x2, x3) = U129_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x1, x2, x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x1, x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x1, x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x1, x2, x4) U80_gga(x1, x2, x3, x4) = U80_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) U95_gga(x1, x2, x3, x4) = U95_gga(x1, x2, x4) U96_gga(x1, x2, x3, x4) = U96_gga(x1, x2, x4) U97_gga(x1, x2, x3, x4) = U97_gga(x1, x2, x4) U98_gga(x1, x2, x3, x4) = U98_gga(x1, x2, x4) U81_gga(x1, x2, x3, x4) = U81_gga(x1, x2, x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x2, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x2, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x2, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U99_gga(x1, x2, x3) = U99_gga(x1, x3) U100_gga(x1, x2, x3) = U100_gga(x1, x3) U101_gga(x1, x2, x3, x4) = U101_gga(x1, x2, x4) U102_gga(x1, x2, x3, x4) = U102_gga(x1, x2, x4) U103_gga(x1, x2, x3, x4) = U103_gga(x1, x2, x4) U104_gga(x1, x2, x3, x4) = U104_gga(x1, x2, x4) U86_gga(x1, x2, x3, x4) = U86_gga(x1, x2, x4) U87_gga(x1, x2, x3, x4) = U87_gga(x1, x2, x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x2, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x2, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x2, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x1, x2, x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U99_ggg(x1, x2, x3) = U99_ggg(x1, x2, x3) U100_ggg(x1, x2, x3) = U100_ggg(x1, x2, x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x1, x2, x3, x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x1, x2, x3, x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x1, x2, x3, x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x1, x2, x3, x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x1, x2, x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x1, x2, x4) U94_gga(x1, x2, x3, x4) = U94_gga(x1, x2, x4) main_out_gg(x1, x2) = main_out_gg(x1, x2) U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U130_gg(x1, x2, x3) = U130_gg(x1, x2, x3) U131_gg(x1, x2, x3) = U131_gg(x1, x2, x3) U15_gg(x1, x2, x3) = U15_gg(x1, x2, x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x1, x2, x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x1, x2, x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x1, x2, x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x1, x2, x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x1, x2, x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x1, x2, x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x1, x2, x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x1, x2, x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x1, x2, x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x1, x2, x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x1, x2, x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x1, x2, x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x1, x2, x3) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (87) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (88) 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 ---------------------------------------- (89) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GGA(M, N, Ret) -> U82_GGA(M, N, Ret, =_in_ag(X, N)) U82_GGA(M, N, Ret, =_out_ag(X, N)) -> U83_GGA(M, N, Ret, X, =_in_ag(X1, zero)) U83_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_GGA(M, N, Ret, =_in_gg(X, X1)) U84_GGA(M, N, Ret, =_out_gg(X, X1)) -> U85_GGA(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) U85_GGA(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_GGA(M, N, Ret, =_in_ag(M1, U)) U86_GGA(M, N, Ret, =_out_ag(M1, U)) -> ACKERMANN_IN_GGA(M1, succ(zero), Ret) ACKERMANN_IN_GGA(M, N, Ret) -> U88_GGA(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_GGA(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_GGA(M, N, Ret, U, =_in_ag(N1, U)) U89_GGA(M, N, Ret, U, =_out_ag(N1, U)) -> U90_GGA(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_GGA(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_GGA(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) U91_GGA(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_GGA(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_GGA(M, N, Ret, Ret1, =_out_ag(M1, U)) -> ACKERMANN_IN_GGA(M1, Ret1, Ret2) U89_GGA(M, N, Ret, U, =_out_ag(N1, U)) -> ACKERMANN_IN_GGA(M, N1, Ret1) The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x1, x2, x3) U129_gg(x1, x2, x3) = U129_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x1, x2, x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x1, x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x1, x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x1, x2, x4) U80_gga(x1, x2, x3, x4) = U80_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) U95_gga(x1, x2, x3, x4) = U95_gga(x1, x2, x4) U96_gga(x1, x2, x3, x4) = U96_gga(x1, x2, x4) U97_gga(x1, x2, x3, x4) = U97_gga(x1, x2, x4) U98_gga(x1, x2, x3, x4) = U98_gga(x1, x2, x4) U81_gga(x1, x2, x3, x4) = U81_gga(x1, x2, x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x2, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x2, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x2, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U99_gga(x1, x2, x3) = U99_gga(x1, x3) U100_gga(x1, x2, x3) = U100_gga(x1, x3) U101_gga(x1, x2, x3, x4) = U101_gga(x1, x2, x4) U102_gga(x1, x2, x3, x4) = U102_gga(x1, x2, x4) U103_gga(x1, x2, x3, x4) = U103_gga(x1, x2, x4) U104_gga(x1, x2, x3, x4) = U104_gga(x1, x2, x4) U86_gga(x1, x2, x3, x4) = U86_gga(x1, x2, x4) U87_gga(x1, x2, x3, x4) = U87_gga(x1, x2, x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x2, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x2, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x2, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x1, x2, x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U99_ggg(x1, x2, x3) = U99_ggg(x1, x2, x3) U100_ggg(x1, x2, x3) = U100_ggg(x1, x2, x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x1, x2, x3, x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x1, x2, x3, x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x1, x2, x3, x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x1, x2, x3, x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x1, x2, x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x1, x2, x4) U94_gga(x1, x2, x3, x4) = U94_gga(x1, x2, x4) main_out_gg(x1, x2) = main_out_gg(x1, x2) U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U130_gg(x1, x2, x3) = U130_gg(x1, x2, x3) U131_gg(x1, x2, x3) = U131_gg(x1, x2, x3) U15_gg(x1, x2, x3) = U15_gg(x1, x2, x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x1, x2, x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x1, x2, x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x1, x2, x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x1, x2, x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x1, x2, x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x1, x2, x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x1, x2, x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x1, x2, x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x1, x2, x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x1, x2, x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x1, x2, x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x1, x2, x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x1, x2, x3) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U82_GGA(x1, x2, x3, x4) = U82_GGA(x1, x2, x4) U83_GGA(x1, x2, x3, x4, x5) = U83_GGA(x1, x2, x4, x5) U84_GGA(x1, x2, x3, x4) = U84_GGA(x1, x2, x4) U85_GGA(x1, x2, x3, x4) = U85_GGA(x1, x2, x4) U86_GGA(x1, x2, x3, x4) = U86_GGA(x1, x2, x4) U88_GGA(x1, x2, x3, x4) = U88_GGA(x1, x2, x4) U89_GGA(x1, x2, x3, x4, x5) = U89_GGA(x1, x2, x4, x5) U90_GGA(x1, x2, x3, x4, x5) = U90_GGA(x1, x2, x4, x5) U91_GGA(x1, x2, x3, x4, x5, x6) = U91_GGA(x1, x2, x4, x5, x6) U92_GGA(x1, x2, x3, x4, x5) = U92_GGA(x1, x2, x4, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (90) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (91) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GGA(M, N, Ret) -> U82_GGA(M, N, Ret, =_in_ag(X, N)) U82_GGA(M, N, Ret, =_out_ag(X, N)) -> U83_GGA(M, N, Ret, X, =_in_ag(X1, zero)) U83_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_GGA(M, N, Ret, =_in_gg(X, X1)) U84_GGA(M, N, Ret, =_out_gg(X, X1)) -> U85_GGA(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) U85_GGA(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_GGA(M, N, Ret, =_in_ag(M1, U)) U86_GGA(M, N, Ret, =_out_ag(M1, U)) -> ACKERMANN_IN_GGA(M1, succ(zero), Ret) ACKERMANN_IN_GGA(M, N, Ret) -> U88_GGA(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_GGA(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_GGA(M, N, Ret, U, =_in_ag(N1, U)) U89_GGA(M, N, Ret, U, =_out_ag(N1, U)) -> U90_GGA(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_GGA(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_GGA(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) U91_GGA(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_GGA(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_GGA(M, N, Ret, Ret1, =_out_ag(M1, U)) -> ACKERMANN_IN_GGA(M1, Ret1, Ret2) U89_GGA(M, N, Ret, U, =_out_ag(N1, U)) -> ACKERMANN_IN_GGA(M, N1, Ret1) The TRS R consists of the following rules: =_in_ag(X, X) -> =_out_ag(X, X) =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), succ(Y), Z) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) The argument filtering Pi contains the following mapping: =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) zero = zero succ(x1) = succ(x1) pred(x1) = pred(x1) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x1, x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x1, x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x1, x2, x4) U80_gga(x1, x2, x3, x4) = U80_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) U95_gga(x1, x2, x3, x4) = U95_gga(x1, x2, x4) U96_gga(x1, x2, x3, x4) = U96_gga(x1, x2, x4) U97_gga(x1, x2, x3, x4) = U97_gga(x1, x2, x4) U98_gga(x1, x2, x3, x4) = U98_gga(x1, x2, x4) U81_gga(x1, x2, x3, x4) = U81_gga(x1, x2, x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x2, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x2, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x2, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U99_gga(x1, x2, x3) = U99_gga(x1, x3) U100_gga(x1, x2, x3) = U100_gga(x1, x3) U101_gga(x1, x2, x3, x4) = U101_gga(x1, x2, x4) U102_gga(x1, x2, x3, x4) = U102_gga(x1, x2, x4) U103_gga(x1, x2, x3, x4) = U103_gga(x1, x2, x4) U104_gga(x1, x2, x3, x4) = U104_gga(x1, x2, x4) U86_gga(x1, x2, x3, x4) = U86_gga(x1, x2, x4) U87_gga(x1, x2, x3, x4) = U87_gga(x1, x2, x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x2, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x2, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x2, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x1, x2, x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U99_ggg(x1, x2, x3) = U99_ggg(x1, x2, x3) U100_ggg(x1, x2, x3) = U100_ggg(x1, x2, x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x1, x2, x3, x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x1, x2, x3, x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x1, x2, x3, x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x1, x2, x3, x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x1, x2, x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x1, x2, x4) U94_gga(x1, x2, x3, x4) = U94_gga(x1, x2, x4) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U82_GGA(x1, x2, x3, x4) = U82_GGA(x1, x2, x4) U83_GGA(x1, x2, x3, x4, x5) = U83_GGA(x1, x2, x4, x5) U84_GGA(x1, x2, x3, x4) = U84_GGA(x1, x2, x4) U85_GGA(x1, x2, x3, x4) = U85_GGA(x1, x2, x4) U86_GGA(x1, x2, x3, x4) = U86_GGA(x1, x2, x4) U88_GGA(x1, x2, x3, x4) = U88_GGA(x1, x2, x4) U89_GGA(x1, x2, x3, x4, x5) = U89_GGA(x1, x2, x4, x5) U90_GGA(x1, x2, x3, x4, x5) = U90_GGA(x1, x2, x4, x5) U91_GGA(x1, x2, x3, x4, x5, x6) = U91_GGA(x1, x2, x4, x5, x6) U92_GGA(x1, x2, x3, x4, x5) = U92_GGA(x1, x2, x4, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (92) 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: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1, x2) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x1, x2, x3) U129_gg(x1, x2, x3) = U129_gg(x1, x2, x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg(x1, x2) U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x1, x2, x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x1, x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x1, x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x1, x2, x4) U80_gga(x1, x2, x3, x4) = U80_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) U95_gga(x1, x2, x3, x4) = U95_gga(x1, x2, x4) U96_gga(x1, x2, x3, x4) = U96_gga(x1, x2, x4) U97_gga(x1, x2, x3, x4) = U97_gga(x1, x2, x4) U98_gga(x1, x2, x3, x4) = U98_gga(x1, x2, x4) U81_gga(x1, x2, x3, x4) = U81_gga(x1, x2, x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x1, x2, x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x2, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x2, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x2, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x1, x2, x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x1, x2, x3) U99_gga(x1, x2, x3) = U99_gga(x1, x3) U100_gga(x1, x2, x3) = U100_gga(x1, x3) U101_gga(x1, x2, x3, x4) = U101_gga(x1, x2, x4) U102_gga(x1, x2, x3, x4) = U102_gga(x1, x2, x4) U103_gga(x1, x2, x3, x4) = U103_gga(x1, x2, x4) U104_gga(x1, x2, x3, x4) = U104_gga(x1, x2, x4) U86_gga(x1, x2, x3, x4) = U86_gga(x1, x2, x4) U87_gga(x1, x2, x3, x4) = U87_gga(x1, x2, x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x2, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x2, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x2, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x1, x2, x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg(x1, x2, x3) U99_ggg(x1, x2, x3) = U99_ggg(x1, x2, x3) U100_ggg(x1, x2, x3) = U100_ggg(x1, x2, x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x1, x2, x3, x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x1, x2, x3, x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x1, x2, x3, x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x1, x2, x3, x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x1, x2, x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x1, x2, x4) U94_gga(x1, x2, x3, x4) = U94_gga(x1, x2, x4) main_out_gg(x1, x2) = main_out_gg(x1, x2) U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg(x1, x2) U130_gg(x1, x2, x3) = U130_gg(x1, x2, x3) U131_gg(x1, x2, x3) = U131_gg(x1, x2, x3) U15_gg(x1, x2, x3) = U15_gg(x1, x2, x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x1, x2, x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x1, x2, x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x1, x2, x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x1, x2, x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x1, x2, x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x1, x2, x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x1, x2, x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x1, x2, x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x1, x2, x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x1, x2, x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x1, x2, x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x1, x2, x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x1, x2, x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x1, x2, x3) ISGREATER_IN_GG(x1, x2) = ISGREATER_IN_GG(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (93) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (94) 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 ---------------------------------------- (95) PrologToPiTRSProof (SOUND) We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes: main_in_2: (b,b) isGreater_in_2: (b,b) ackermann_in_3: (b,b,f) isPlus_in_3: (b,b,f) isMinus_in_3: (b,b,f) (b,b,b) isLess_in_2: (b,b) Transforming Prolog into the following Term Rewriting System: Pi-finite rewrite system: The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x3) U129_gg(x1, x2, x3) = U129_gg(x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x2, x4) U80_gga(x1, x2, x3, x4) = U80_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U95_gga(x1, x2, x3, x4) = U95_gga(x4) U96_gga(x1, x2, x3, x4) = U96_gga(x4) U97_gga(x1, x2, x3, x4) = U97_gga(x4) U98_gga(x1, x2, x3, x4) = U98_gga(x4) U81_gga(x1, x2, x3, x4) = U81_gga(x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U99_gga(x1, x2, x3) = U99_gga(x3) U100_gga(x1, x2, x3) = U100_gga(x3) U101_gga(x1, x2, x3, x4) = U101_gga(x4) U102_gga(x1, x2, x3, x4) = U102_gga(x4) U103_gga(x1, x2, x3, x4) = U103_gga(x4) U104_gga(x1, x2, x3, x4) = U104_gga(x4) U86_gga(x1, x2, x3, x4) = U86_gga(x4) U87_gga(x1, x2, x3, x4) = U87_gga(x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U99_ggg(x1, x2, x3) = U99_ggg(x3) U100_ggg(x1, x2, x3) = U100_ggg(x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x4) U94_gga(x1, x2, x3, x4) = U94_gga(x4) main_out_gg(x1, x2) = main_out_gg U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U130_gg(x1, x2, x3) = U130_gg(x3) U131_gg(x1, x2, x3) = U131_gg(x3) U15_gg(x1, x2, x3) = U15_gg(x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x3) Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog ---------------------------------------- (96) Obligation: Pi-finite rewrite system: The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x3) U129_gg(x1, x2, x3) = U129_gg(x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x2, x4) U80_gga(x1, x2, x3, x4) = U80_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U95_gga(x1, x2, x3, x4) = U95_gga(x4) U96_gga(x1, x2, x3, x4) = U96_gga(x4) U97_gga(x1, x2, x3, x4) = U97_gga(x4) U98_gga(x1, x2, x3, x4) = U98_gga(x4) U81_gga(x1, x2, x3, x4) = U81_gga(x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U99_gga(x1, x2, x3) = U99_gga(x3) U100_gga(x1, x2, x3) = U100_gga(x3) U101_gga(x1, x2, x3, x4) = U101_gga(x4) U102_gga(x1, x2, x3, x4) = U102_gga(x4) U103_gga(x1, x2, x3, x4) = U103_gga(x4) U104_gga(x1, x2, x3, x4) = U104_gga(x4) U86_gga(x1, x2, x3, x4) = U86_gga(x4) U87_gga(x1, x2, x3, x4) = U87_gga(x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U99_ggg(x1, x2, x3) = U99_ggg(x3) U100_ggg(x1, x2, x3) = U100_ggg(x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x4) U94_gga(x1, x2, x3, x4) = U94_gga(x4) main_out_gg(x1, x2) = main_out_gg U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U130_gg(x1, x2, x3) = U130_gg(x3) U131_gg(x1, x2, x3) = U131_gg(x3) U15_gg(x1, x2, x3) = U15_gg(x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x3) ---------------------------------------- (97) 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: MAIN_IN_GG(M, N) -> U1_GG(M, N, =_in_ag(X, M)) MAIN_IN_GG(M, N) -> =_IN_AG(X, M) U1_GG(M, N, =_out_ag(X, M)) -> U2_GG(M, N, X, =_in_ag(X2, zero)) U1_GG(M, N, =_out_ag(X, M)) -> =_IN_AG(X2, zero) U2_GG(M, N, X, =_out_ag(X2, zero)) -> U3_GG(M, N, isGreater_in_gg(X, X2)) U2_GG(M, N, X, =_out_ag(X2, zero)) -> ISGREATER_IN_GG(X, X2) ISGREATER_IN_GG(succ(X), succ(Y)) -> U128_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)) -> U129_GG(X, Y, isGreater_in_gg(X, Y)) ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) U3_GG(M, N, isGreater_out_gg(X, X2)) -> U4_GG(M, N, =_in_ag(X5, M)) U3_GG(M, N, isGreater_out_gg(X, X2)) -> =_IN_AG(X5, M) U4_GG(M, N, =_out_ag(X5, M)) -> U5_GG(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U4_GG(M, N, =_out_ag(X5, M)) -> =_IN_AG(X6, succ(succ(succ(zero)))) U5_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_GG(M, N, =_in_gg(X5, X6)) U5_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> =_IN_GG(X5, X6) U6_GG(M, N, =_out_gg(X5, X6)) -> U7_GG(M, N, =_in_ag(X3, N)) U6_GG(M, N, =_out_gg(X5, X6)) -> =_IN_AG(X3, N) U7_GG(M, N, =_out_ag(X3, N)) -> U8_GG(M, N, X3, =_in_ag(X4, zero)) U7_GG(M, N, =_out_ag(X3, N)) -> =_IN_AG(X4, zero) U8_GG(M, N, X3, =_out_ag(X4, zero)) -> U9_GG(M, N, isGreater_in_gg(X3, X4)) U8_GG(M, N, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U9_GG(M, N, isGreater_out_gg(X3, X4)) -> U10_GG(M, N, =_in_ag(X7, N)) U9_GG(M, N, isGreater_out_gg(X3, X4)) -> =_IN_AG(X7, N) U10_GG(M, N, =_out_ag(X7, N)) -> U11_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U10_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U11_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_GG(M, N, =_in_gg(X7, X8)) U11_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U12_GG(M, N, =_out_gg(X7, X8)) -> U13_GG(M, N, ackermann_in_gga(M, N, X1)) U12_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) ACKERMANN_IN_GGA(M, N, Ret) -> U77_GGA(M, N, Ret, =_in_ag(X, M)) ACKERMANN_IN_GGA(M, N, Ret) -> =_IN_AG(X, M) U77_GGA(M, N, Ret, =_out_ag(X, M)) -> U78_GGA(M, N, Ret, X, =_in_ag(X1, zero)) U77_GGA(M, N, Ret, =_out_ag(X, M)) -> =_IN_AG(X1, zero) U78_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_GGA(M, N, Ret, =_in_gg(X, X1)) U78_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> =_IN_GG(X, X1) U79_GGA(M, N, Ret, =_out_gg(X, X1)) -> U80_GGA(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) U79_GGA(M, N, Ret, =_out_gg(X, X1)) -> ISPLUS_IN_GGA(N, succ(zero), U) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> U95_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) -> U96_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) -> U97_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))) -> U98_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) U80_GGA(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_GGA(M, N, Ret, =_in_ag(Ret, U)) U80_GGA(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> =_IN_AG(Ret, U) ACKERMANN_IN_GGA(M, N, Ret) -> U82_GGA(M, N, Ret, =_in_ag(X, N)) ACKERMANN_IN_GGA(M, N, Ret) -> =_IN_AG(X, N) U82_GGA(M, N, Ret, =_out_ag(X, N)) -> U83_GGA(M, N, Ret, X, =_in_ag(X1, zero)) U82_GGA(M, N, Ret, =_out_ag(X, N)) -> =_IN_AG(X1, zero) U83_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_GGA(M, N, Ret, =_in_gg(X, X1)) U83_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> =_IN_GG(X, X1) U84_GGA(M, N, Ret, =_out_gg(X, X1)) -> U85_GGA(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) U84_GGA(M, N, Ret, =_out_gg(X, X1)) -> ISMINUS_IN_GGA(M, succ(zero), U) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> U99_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)) -> U100_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) -> U101_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))) -> U102_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))) -> U103_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) -> U104_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) U85_GGA(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_GGA(M, N, Ret, =_in_ag(M1, U)) U85_GGA(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> =_IN_AG(M1, U) U86_GGA(M, N, Ret, =_out_ag(M1, U)) -> U87_GGA(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) U86_GGA(M, N, Ret, =_out_ag(M1, U)) -> ACKERMANN_IN_GGA(M1, succ(zero), Ret) ACKERMANN_IN_GGA(M, N, Ret) -> U88_GGA(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) ACKERMANN_IN_GGA(M, N, Ret) -> ISMINUS_IN_GGA(N, succ(zero), U) U88_GGA(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_GGA(M, N, Ret, U, =_in_ag(N1, U)) U88_GGA(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> =_IN_AG(N1, U) U89_GGA(M, N, Ret, U, =_out_ag(N1, U)) -> U90_GGA(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U89_GGA(M, N, Ret, U, =_out_ag(N1, U)) -> ACKERMANN_IN_GGA(M, N1, Ret1) U90_GGA(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_GGA(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) U90_GGA(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> ISMINUS_IN_GGG(M, succ(zero), U) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> U99_GGG(Y, Z, isMinus_in_ggg(zero, Y, Z)) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> U100_GGG(Y, Z, isMinus_in_ggg(zero, Y, Z)) ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> U101_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> U102_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> U103_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> U104_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) U91_GGA(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_GGA(M, N, Ret, Ret1, =_in_ag(M1, U)) U91_GGA(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> =_IN_AG(M1, U) U92_GGA(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_GGA(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U92_GGA(M, N, Ret, Ret1, =_out_ag(M1, U)) -> ACKERMANN_IN_GGA(M1, Ret1, Ret2) U93_GGA(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_GGA(M, N, Ret, =_in_ag(Ret, Ret2)) U93_GGA(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> =_IN_AG(Ret, Ret2) U11_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_GG(M, N, isLess_in_gg(X7, X8)) U11_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) ISLESS_IN_GG(pred(X), pred(Y)) -> U130_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)) -> U131_GG(X, Y, isLess_in_gg(X, Y)) ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) U14_GG(M, N, isLess_out_gg(X7, X8)) -> U15_GG(M, N, ackermann_in_gga(M, N, X1)) U14_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U8_GG(M, N, X3, =_out_ag(X4, zero)) -> U16_GG(M, N, =_in_gg(X3, X4)) U8_GG(M, N, X3, =_out_ag(X4, zero)) -> =_IN_GG(X3, X4) U16_GG(M, N, =_out_gg(X3, X4)) -> U17_GG(M, N, =_in_ag(X7, N)) U16_GG(M, N, =_out_gg(X3, X4)) -> =_IN_AG(X7, N) U17_GG(M, N, =_out_ag(X7, N)) -> U18_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U17_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U18_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_GG(M, N, =_in_gg(X7, X8)) U18_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U19_GG(M, N, =_out_gg(X7, X8)) -> U20_GG(M, N, ackermann_in_gga(M, N, X1)) U19_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U18_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_GG(M, N, isLess_in_gg(X7, X8)) U18_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U21_GG(M, N, isLess_out_gg(X7, X8)) -> U22_GG(M, N, ackermann_in_gga(M, N, X1)) U21_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U5_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_GG(M, N, isLess_in_gg(X5, X6)) U5_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> ISLESS_IN_GG(X5, X6) U23_GG(M, N, isLess_out_gg(X5, X6)) -> U24_GG(M, N, =_in_ag(X3, N)) U23_GG(M, N, isLess_out_gg(X5, X6)) -> =_IN_AG(X3, N) U24_GG(M, N, =_out_ag(X3, N)) -> U25_GG(M, N, X3, =_in_ag(X4, zero)) U24_GG(M, N, =_out_ag(X3, N)) -> =_IN_AG(X4, zero) U25_GG(M, N, X3, =_out_ag(X4, zero)) -> U26_GG(M, N, isGreater_in_gg(X3, X4)) U25_GG(M, N, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U26_GG(M, N, isGreater_out_gg(X3, X4)) -> U27_GG(M, N, =_in_ag(X7, N)) U26_GG(M, N, isGreater_out_gg(X3, X4)) -> =_IN_AG(X7, N) U27_GG(M, N, =_out_ag(X7, N)) -> U28_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U27_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U28_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_GG(M, N, =_in_gg(X7, X8)) U28_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U29_GG(M, N, =_out_gg(X7, X8)) -> U30_GG(M, N, ackermann_in_gga(M, N, X1)) U29_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U28_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_GG(M, N, isLess_in_gg(X7, X8)) U28_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U31_GG(M, N, isLess_out_gg(X7, X8)) -> U32_GG(M, N, ackermann_in_gga(M, N, X1)) U31_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U25_GG(M, N, X3, =_out_ag(X4, zero)) -> U33_GG(M, N, =_in_gg(X3, X4)) U25_GG(M, N, X3, =_out_ag(X4, zero)) -> =_IN_GG(X3, X4) U33_GG(M, N, =_out_gg(X3, X4)) -> U34_GG(M, N, =_in_ag(X7, N)) U33_GG(M, N, =_out_gg(X3, X4)) -> =_IN_AG(X7, N) U34_GG(M, N, =_out_ag(X7, N)) -> U35_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U34_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U35_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_GG(M, N, =_in_gg(X7, X8)) U35_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U36_GG(M, N, =_out_gg(X7, X8)) -> U37_GG(M, N, ackermann_in_gga(M, N, X1)) U36_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U35_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_GG(M, N, isLess_in_gg(X7, X8)) U35_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U38_GG(M, N, isLess_out_gg(X7, X8)) -> U39_GG(M, N, ackermann_in_gga(M, N, X1)) U38_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U2_GG(M, N, X, =_out_ag(X2, zero)) -> U40_GG(M, N, =_in_gg(X, X2)) U2_GG(M, N, X, =_out_ag(X2, zero)) -> =_IN_GG(X, X2) U40_GG(M, N, =_out_gg(X, X2)) -> U41_GG(M, N, =_in_ag(X5, M)) U40_GG(M, N, =_out_gg(X, X2)) -> =_IN_AG(X5, M) U41_GG(M, N, =_out_ag(X5, M)) -> U42_GG(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U41_GG(M, N, =_out_ag(X5, M)) -> =_IN_AG(X6, succ(succ(succ(zero)))) U42_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_GG(M, N, =_in_gg(X5, X6)) U42_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> =_IN_GG(X5, X6) U43_GG(M, N, =_out_gg(X5, X6)) -> U44_GG(M, N, =_in_ag(X3, N)) U43_GG(M, N, =_out_gg(X5, X6)) -> =_IN_AG(X3, N) U44_GG(M, N, =_out_ag(X3, N)) -> U45_GG(M, N, X3, =_in_ag(X4, zero)) U44_GG(M, N, =_out_ag(X3, N)) -> =_IN_AG(X4, zero) U45_GG(M, N, X3, =_out_ag(X4, zero)) -> U46_GG(M, N, isGreater_in_gg(X3, X4)) U45_GG(M, N, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U46_GG(M, N, isGreater_out_gg(X3, X4)) -> U47_GG(M, N, =_in_ag(X7, N)) U46_GG(M, N, isGreater_out_gg(X3, X4)) -> =_IN_AG(X7, N) U47_GG(M, N, =_out_ag(X7, N)) -> U48_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U47_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U48_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_GG(M, N, =_in_gg(X7, X8)) U48_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U49_GG(M, N, =_out_gg(X7, X8)) -> U50_GG(M, N, ackermann_in_gga(M, N, X1)) U49_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U48_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_GG(M, N, isLess_in_gg(X7, X8)) U48_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U51_GG(M, N, isLess_out_gg(X7, X8)) -> U52_GG(M, N, ackermann_in_gga(M, N, X1)) U51_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U45_GG(M, N, X3, =_out_ag(X4, zero)) -> U53_GG(M, N, =_in_gg(X3, X4)) U45_GG(M, N, X3, =_out_ag(X4, zero)) -> =_IN_GG(X3, X4) U53_GG(M, N, =_out_gg(X3, X4)) -> U54_GG(M, N, =_in_ag(X7, N)) U53_GG(M, N, =_out_gg(X3, X4)) -> =_IN_AG(X7, N) U54_GG(M, N, =_out_ag(X7, N)) -> U55_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U54_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U55_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_GG(M, N, =_in_gg(X7, X8)) U55_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U56_GG(M, N, =_out_gg(X7, X8)) -> U57_GG(M, N, ackermann_in_gga(M, N, X1)) U56_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U55_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_GG(M, N, isLess_in_gg(X7, X8)) U55_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U58_GG(M, N, isLess_out_gg(X7, X8)) -> U59_GG(M, N, ackermann_in_gga(M, N, X1)) U58_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U42_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_GG(M, N, isLess_in_gg(X5, X6)) U42_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> ISLESS_IN_GG(X5, X6) U60_GG(M, N, isLess_out_gg(X5, X6)) -> U61_GG(M, N, =_in_ag(X3, N)) U60_GG(M, N, isLess_out_gg(X5, X6)) -> =_IN_AG(X3, N) U61_GG(M, N, =_out_ag(X3, N)) -> U62_GG(M, N, X3, =_in_ag(X4, zero)) U61_GG(M, N, =_out_ag(X3, N)) -> =_IN_AG(X4, zero) U62_GG(M, N, X3, =_out_ag(X4, zero)) -> U63_GG(M, N, isGreater_in_gg(X3, X4)) U62_GG(M, N, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U63_GG(M, N, isGreater_out_gg(X3, X4)) -> U64_GG(M, N, =_in_ag(X7, N)) U63_GG(M, N, isGreater_out_gg(X3, X4)) -> =_IN_AG(X7, N) U64_GG(M, N, =_out_ag(X7, N)) -> U65_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U64_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U65_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_GG(M, N, =_in_gg(X7, X8)) U65_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U66_GG(M, N, =_out_gg(X7, X8)) -> U67_GG(M, N, ackermann_in_gga(M, N, X1)) U66_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U65_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_GG(M, N, isLess_in_gg(X7, X8)) U65_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U68_GG(M, N, isLess_out_gg(X7, X8)) -> U69_GG(M, N, ackermann_in_gga(M, N, X1)) U68_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U62_GG(M, N, X3, =_out_ag(X4, zero)) -> U70_GG(M, N, =_in_gg(X3, X4)) U62_GG(M, N, X3, =_out_ag(X4, zero)) -> =_IN_GG(X3, X4) U70_GG(M, N, =_out_gg(X3, X4)) -> U71_GG(M, N, =_in_ag(X7, N)) U70_GG(M, N, =_out_gg(X3, X4)) -> =_IN_AG(X7, N) U71_GG(M, N, =_out_ag(X7, N)) -> U72_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U71_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U72_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_GG(M, N, =_in_gg(X7, X8)) U72_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U73_GG(M, N, =_out_gg(X7, X8)) -> U74_GG(M, N, ackermann_in_gga(M, N, X1)) U73_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U72_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_GG(M, N, isLess_in_gg(X7, X8)) U72_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U75_GG(M, N, isLess_out_gg(X7, X8)) -> U76_GG(M, N, ackermann_in_gga(M, N, X1)) U75_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x3) U129_gg(x1, x2, x3) = U129_gg(x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x2, x4) U80_gga(x1, x2, x3, x4) = U80_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U95_gga(x1, x2, x3, x4) = U95_gga(x4) U96_gga(x1, x2, x3, x4) = U96_gga(x4) U97_gga(x1, x2, x3, x4) = U97_gga(x4) U98_gga(x1, x2, x3, x4) = U98_gga(x4) U81_gga(x1, x2, x3, x4) = U81_gga(x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U99_gga(x1, x2, x3) = U99_gga(x3) U100_gga(x1, x2, x3) = U100_gga(x3) U101_gga(x1, x2, x3, x4) = U101_gga(x4) U102_gga(x1, x2, x3, x4) = U102_gga(x4) U103_gga(x1, x2, x3, x4) = U103_gga(x4) U104_gga(x1, x2, x3, x4) = U104_gga(x4) U86_gga(x1, x2, x3, x4) = U86_gga(x4) U87_gga(x1, x2, x3, x4) = U87_gga(x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U99_ggg(x1, x2, x3) = U99_ggg(x3) U100_ggg(x1, x2, x3) = U100_ggg(x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x4) U94_gga(x1, x2, x3, x4) = U94_gga(x4) main_out_gg(x1, x2) = main_out_gg U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U130_gg(x1, x2, x3) = U130_gg(x3) U131_gg(x1, x2, x3) = U131_gg(x3) U15_gg(x1, x2, x3) = U15_gg(x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x3) MAIN_IN_GG(x1, x2) = MAIN_IN_GG(x1, x2) U1_GG(x1, x2, x3) = U1_GG(x1, x2, x3) =_IN_AG(x1, x2) = =_IN_AG(x2) U2_GG(x1, x2, x3, x4) = U2_GG(x1, x2, x3, x4) U3_GG(x1, x2, x3) = U3_GG(x1, x2, x3) ISGREATER_IN_GG(x1, x2) = ISGREATER_IN_GG(x1, x2) U128_GG(x1, x2, x3) = U128_GG(x3) U129_GG(x1, x2, x3) = U129_GG(x3) U4_GG(x1, x2, x3) = U4_GG(x1, x2, x3) U5_GG(x1, x2, x3, x4) = U5_GG(x1, x2, x3, x4) U6_GG(x1, x2, x3) = U6_GG(x1, x2, x3) =_IN_GG(x1, x2) = =_IN_GG(x1, x2) U7_GG(x1, x2, x3) = U7_GG(x1, x2, x3) U8_GG(x1, x2, x3, x4) = U8_GG(x1, x2, x3, x4) U9_GG(x1, x2, x3) = U9_GG(x1, x2, x3) U10_GG(x1, x2, x3) = U10_GG(x1, x2, x3) U11_GG(x1, x2, x3, x4) = U11_GG(x1, x2, x3, x4) U12_GG(x1, x2, x3) = U12_GG(x1, x2, x3) U13_GG(x1, x2, x3) = U13_GG(x3) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U77_GGA(x1, x2, x3, x4) = U77_GGA(x2, x4) U78_GGA(x1, x2, x3, x4, x5) = U78_GGA(x2, x4, x5) U79_GGA(x1, x2, x3, x4) = U79_GGA(x2, x4) U80_GGA(x1, x2, x3, x4) = U80_GGA(x4) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) U95_GGA(x1, x2, x3, x4) = U95_GGA(x4) U96_GGA(x1, x2, x3, x4) = U96_GGA(x4) U97_GGA(x1, x2, x3, x4) = U97_GGA(x4) U98_GGA(x1, x2, x3, x4) = U98_GGA(x4) U81_GGA(x1, x2, x3, x4) = U81_GGA(x4) U82_GGA(x1, x2, x3, x4) = U82_GGA(x1, x4) U83_GGA(x1, x2, x3, x4, x5) = U83_GGA(x1, x4, x5) U84_GGA(x1, x2, x3, x4) = U84_GGA(x1, x4) U85_GGA(x1, x2, x3, x4) = U85_GGA(x4) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) U99_GGA(x1, x2, x3) = U99_GGA(x3) U100_GGA(x1, x2, x3) = U100_GGA(x3) U101_GGA(x1, x2, x3, x4) = U101_GGA(x4) U102_GGA(x1, x2, x3, x4) = U102_GGA(x4) U103_GGA(x1, x2, x3, x4) = U103_GGA(x4) U104_GGA(x1, x2, x3, x4) = U104_GGA(x4) U86_GGA(x1, x2, x3, x4) = U86_GGA(x4) U87_GGA(x1, x2, x3, x4) = U87_GGA(x4) U88_GGA(x1, x2, x3, x4) = U88_GGA(x1, x4) U89_GGA(x1, x2, x3, x4, x5) = U89_GGA(x1, x4, x5) U90_GGA(x1, x2, x3, x4, x5) = U90_GGA(x1, x4, x5) U91_GGA(x1, x2, x3, x4, x5, x6) = U91_GGA(x4, x5, x6) ISMINUS_IN_GGG(x1, x2, x3) = ISMINUS_IN_GGG(x1, x2, x3) U99_GGG(x1, x2, x3) = U99_GGG(x3) U100_GGG(x1, x2, x3) = U100_GGG(x3) U101_GGG(x1, x2, x3, x4) = U101_GGG(x4) U102_GGG(x1, x2, x3, x4) = U102_GGG(x4) U103_GGG(x1, x2, x3, x4) = U103_GGG(x4) U104_GGG(x1, x2, x3, x4) = U104_GGG(x4) U92_GGA(x1, x2, x3, x4, x5) = U92_GGA(x4, x5) U93_GGA(x1, x2, x3, x4) = U93_GGA(x4) U94_GGA(x1, x2, x3, x4) = U94_GGA(x4) U14_GG(x1, x2, x3) = U14_GG(x1, x2, x3) ISLESS_IN_GG(x1, x2) = ISLESS_IN_GG(x1, x2) U130_GG(x1, x2, x3) = U130_GG(x3) U131_GG(x1, x2, x3) = U131_GG(x3) U15_GG(x1, x2, x3) = U15_GG(x3) U16_GG(x1, x2, x3) = U16_GG(x1, x2, x3) U17_GG(x1, x2, x3) = U17_GG(x1, x2, x3) U18_GG(x1, x2, x3, x4) = U18_GG(x1, x2, x3, x4) U19_GG(x1, x2, x3) = U19_GG(x1, x2, x3) U20_GG(x1, x2, x3) = U20_GG(x3) U21_GG(x1, x2, x3) = U21_GG(x1, x2, x3) U22_GG(x1, x2, x3) = U22_GG(x3) U23_GG(x1, x2, x3) = U23_GG(x1, x2, x3) U24_GG(x1, x2, x3) = U24_GG(x1, x2, x3) U25_GG(x1, x2, x3, x4) = U25_GG(x1, x2, x3, x4) U26_GG(x1, x2, x3) = U26_GG(x1, x2, x3) U27_GG(x1, x2, x3) = U27_GG(x1, x2, x3) U28_GG(x1, x2, x3, x4) = U28_GG(x1, x2, x3, x4) U29_GG(x1, x2, x3) = U29_GG(x1, x2, x3) U30_GG(x1, x2, x3) = U30_GG(x3) U31_GG(x1, x2, x3) = U31_GG(x1, x2, x3) U32_GG(x1, x2, x3) = U32_GG(x3) U33_GG(x1, x2, x3) = U33_GG(x1, x2, x3) U34_GG(x1, x2, x3) = U34_GG(x1, x2, x3) U35_GG(x1, x2, x3, x4) = U35_GG(x1, x2, x3, x4) U36_GG(x1, x2, x3) = U36_GG(x1, x2, x3) U37_GG(x1, x2, x3) = U37_GG(x3) U38_GG(x1, x2, x3) = U38_GG(x1, x2, x3) U39_GG(x1, x2, x3) = U39_GG(x3) U40_GG(x1, x2, x3) = U40_GG(x1, x2, x3) U41_GG(x1, x2, x3) = U41_GG(x1, x2, x3) U42_GG(x1, x2, x3, x4) = U42_GG(x1, x2, x3, x4) U43_GG(x1, x2, x3) = U43_GG(x1, x2, x3) U44_GG(x1, x2, x3) = U44_GG(x1, x2, x3) U45_GG(x1, x2, x3, x4) = U45_GG(x1, x2, x3, x4) U46_GG(x1, x2, x3) = U46_GG(x1, x2, x3) U47_GG(x1, x2, x3) = U47_GG(x1, x2, x3) U48_GG(x1, x2, x3, x4) = U48_GG(x1, x2, x3, x4) U49_GG(x1, x2, x3) = U49_GG(x1, x2, x3) U50_GG(x1, x2, x3) = U50_GG(x3) U51_GG(x1, x2, x3) = U51_GG(x1, x2, x3) U52_GG(x1, x2, x3) = U52_GG(x3) U53_GG(x1, x2, x3) = U53_GG(x1, x2, x3) U54_GG(x1, x2, x3) = U54_GG(x1, x2, x3) U55_GG(x1, x2, x3, x4) = U55_GG(x1, x2, x3, x4) U56_GG(x1, x2, x3) = U56_GG(x1, x2, x3) U57_GG(x1, x2, x3) = U57_GG(x3) U58_GG(x1, x2, x3) = U58_GG(x1, x2, x3) U59_GG(x1, x2, x3) = U59_GG(x3) U60_GG(x1, x2, x3) = U60_GG(x1, x2, x3) U61_GG(x1, x2, x3) = U61_GG(x1, x2, x3) U62_GG(x1, x2, x3, x4) = U62_GG(x1, x2, x3, x4) U63_GG(x1, x2, x3) = U63_GG(x1, x2, x3) U64_GG(x1, x2, x3) = U64_GG(x1, x2, x3) U65_GG(x1, x2, x3, x4) = U65_GG(x1, x2, x3, x4) U66_GG(x1, x2, x3) = U66_GG(x1, x2, x3) U67_GG(x1, x2, x3) = U67_GG(x3) U68_GG(x1, x2, x3) = U68_GG(x1, x2, x3) U69_GG(x1, x2, x3) = U69_GG(x3) U70_GG(x1, x2, x3) = U70_GG(x1, x2, x3) U71_GG(x1, x2, x3) = U71_GG(x1, x2, x3) U72_GG(x1, x2, x3, x4) = U72_GG(x1, x2, x3, x4) U73_GG(x1, x2, x3) = U73_GG(x1, x2, x3) U74_GG(x1, x2, x3) = U74_GG(x3) U75_GG(x1, x2, x3) = U75_GG(x1, x2, x3) U76_GG(x1, x2, x3) = U76_GG(x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (98) Obligation: Pi DP problem: The TRS P consists of the following rules: MAIN_IN_GG(M, N) -> U1_GG(M, N, =_in_ag(X, M)) MAIN_IN_GG(M, N) -> =_IN_AG(X, M) U1_GG(M, N, =_out_ag(X, M)) -> U2_GG(M, N, X, =_in_ag(X2, zero)) U1_GG(M, N, =_out_ag(X, M)) -> =_IN_AG(X2, zero) U2_GG(M, N, X, =_out_ag(X2, zero)) -> U3_GG(M, N, isGreater_in_gg(X, X2)) U2_GG(M, N, X, =_out_ag(X2, zero)) -> ISGREATER_IN_GG(X, X2) ISGREATER_IN_GG(succ(X), succ(Y)) -> U128_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)) -> U129_GG(X, Y, isGreater_in_gg(X, Y)) ISGREATER_IN_GG(pred(X), pred(Y)) -> ISGREATER_IN_GG(X, Y) U3_GG(M, N, isGreater_out_gg(X, X2)) -> U4_GG(M, N, =_in_ag(X5, M)) U3_GG(M, N, isGreater_out_gg(X, X2)) -> =_IN_AG(X5, M) U4_GG(M, N, =_out_ag(X5, M)) -> U5_GG(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U4_GG(M, N, =_out_ag(X5, M)) -> =_IN_AG(X6, succ(succ(succ(zero)))) U5_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_GG(M, N, =_in_gg(X5, X6)) U5_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> =_IN_GG(X5, X6) U6_GG(M, N, =_out_gg(X5, X6)) -> U7_GG(M, N, =_in_ag(X3, N)) U6_GG(M, N, =_out_gg(X5, X6)) -> =_IN_AG(X3, N) U7_GG(M, N, =_out_ag(X3, N)) -> U8_GG(M, N, X3, =_in_ag(X4, zero)) U7_GG(M, N, =_out_ag(X3, N)) -> =_IN_AG(X4, zero) U8_GG(M, N, X3, =_out_ag(X4, zero)) -> U9_GG(M, N, isGreater_in_gg(X3, X4)) U8_GG(M, N, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U9_GG(M, N, isGreater_out_gg(X3, X4)) -> U10_GG(M, N, =_in_ag(X7, N)) U9_GG(M, N, isGreater_out_gg(X3, X4)) -> =_IN_AG(X7, N) U10_GG(M, N, =_out_ag(X7, N)) -> U11_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U10_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U11_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_GG(M, N, =_in_gg(X7, X8)) U11_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U12_GG(M, N, =_out_gg(X7, X8)) -> U13_GG(M, N, ackermann_in_gga(M, N, X1)) U12_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) ACKERMANN_IN_GGA(M, N, Ret) -> U77_GGA(M, N, Ret, =_in_ag(X, M)) ACKERMANN_IN_GGA(M, N, Ret) -> =_IN_AG(X, M) U77_GGA(M, N, Ret, =_out_ag(X, M)) -> U78_GGA(M, N, Ret, X, =_in_ag(X1, zero)) U77_GGA(M, N, Ret, =_out_ag(X, M)) -> =_IN_AG(X1, zero) U78_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_GGA(M, N, Ret, =_in_gg(X, X1)) U78_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> =_IN_GG(X, X1) U79_GGA(M, N, Ret, =_out_gg(X, X1)) -> U80_GGA(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) U79_GGA(M, N, Ret, =_out_gg(X, X1)) -> ISPLUS_IN_GGA(N, succ(zero), U) ISPLUS_IN_GGA(succ(X), succ(Y), succ(succ(Z))) -> U95_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) -> U96_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) -> U97_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))) -> U98_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) U80_GGA(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_GGA(M, N, Ret, =_in_ag(Ret, U)) U80_GGA(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> =_IN_AG(Ret, U) ACKERMANN_IN_GGA(M, N, Ret) -> U82_GGA(M, N, Ret, =_in_ag(X, N)) ACKERMANN_IN_GGA(M, N, Ret) -> =_IN_AG(X, N) U82_GGA(M, N, Ret, =_out_ag(X, N)) -> U83_GGA(M, N, Ret, X, =_in_ag(X1, zero)) U82_GGA(M, N, Ret, =_out_ag(X, N)) -> =_IN_AG(X1, zero) U83_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_GGA(M, N, Ret, =_in_gg(X, X1)) U83_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> =_IN_GG(X, X1) U84_GGA(M, N, Ret, =_out_gg(X, X1)) -> U85_GGA(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) U84_GGA(M, N, Ret, =_out_gg(X, X1)) -> ISMINUS_IN_GGA(M, succ(zero), U) ISMINUS_IN_GGA(zero, succ(Y), pred(Z)) -> U99_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)) -> U100_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) -> U101_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))) -> U102_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))) -> U103_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) -> U104_GGA(X, Y, Z, isMinus_in_gga(X, Y, Z)) ISMINUS_IN_GGA(pred(X), pred(Y), Z) -> ISMINUS_IN_GGA(X, Y, Z) U85_GGA(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_GGA(M, N, Ret, =_in_ag(M1, U)) U85_GGA(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> =_IN_AG(M1, U) U86_GGA(M, N, Ret, =_out_ag(M1, U)) -> U87_GGA(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) U86_GGA(M, N, Ret, =_out_ag(M1, U)) -> ACKERMANN_IN_GGA(M1, succ(zero), Ret) ACKERMANN_IN_GGA(M, N, Ret) -> U88_GGA(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) ACKERMANN_IN_GGA(M, N, Ret) -> ISMINUS_IN_GGA(N, succ(zero), U) U88_GGA(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_GGA(M, N, Ret, U, =_in_ag(N1, U)) U88_GGA(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> =_IN_AG(N1, U) U89_GGA(M, N, Ret, U, =_out_ag(N1, U)) -> U90_GGA(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U89_GGA(M, N, Ret, U, =_out_ag(N1, U)) -> ACKERMANN_IN_GGA(M, N1, Ret1) U90_GGA(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_GGA(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) U90_GGA(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> ISMINUS_IN_GGG(M, succ(zero), U) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> U99_GGG(Y, Z, isMinus_in_ggg(zero, Y, Z)) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> U100_GGG(Y, Z, isMinus_in_ggg(zero, Y, Z)) ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> U101_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> U102_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> U103_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> U104_GGG(X, Y, Z, isMinus_in_ggg(X, Y, Z)) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) U91_GGA(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_GGA(M, N, Ret, Ret1, =_in_ag(M1, U)) U91_GGA(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> =_IN_AG(M1, U) U92_GGA(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_GGA(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U92_GGA(M, N, Ret, Ret1, =_out_ag(M1, U)) -> ACKERMANN_IN_GGA(M1, Ret1, Ret2) U93_GGA(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_GGA(M, N, Ret, =_in_ag(Ret, Ret2)) U93_GGA(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> =_IN_AG(Ret, Ret2) U11_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_GG(M, N, isLess_in_gg(X7, X8)) U11_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) ISLESS_IN_GG(pred(X), pred(Y)) -> U130_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)) -> U131_GG(X, Y, isLess_in_gg(X, Y)) ISLESS_IN_GG(succ(X), succ(Y)) -> ISLESS_IN_GG(X, Y) U14_GG(M, N, isLess_out_gg(X7, X8)) -> U15_GG(M, N, ackermann_in_gga(M, N, X1)) U14_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U8_GG(M, N, X3, =_out_ag(X4, zero)) -> U16_GG(M, N, =_in_gg(X3, X4)) U8_GG(M, N, X3, =_out_ag(X4, zero)) -> =_IN_GG(X3, X4) U16_GG(M, N, =_out_gg(X3, X4)) -> U17_GG(M, N, =_in_ag(X7, N)) U16_GG(M, N, =_out_gg(X3, X4)) -> =_IN_AG(X7, N) U17_GG(M, N, =_out_ag(X7, N)) -> U18_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U17_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U18_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_GG(M, N, =_in_gg(X7, X8)) U18_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U19_GG(M, N, =_out_gg(X7, X8)) -> U20_GG(M, N, ackermann_in_gga(M, N, X1)) U19_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U18_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_GG(M, N, isLess_in_gg(X7, X8)) U18_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U21_GG(M, N, isLess_out_gg(X7, X8)) -> U22_GG(M, N, ackermann_in_gga(M, N, X1)) U21_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U5_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_GG(M, N, isLess_in_gg(X5, X6)) U5_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> ISLESS_IN_GG(X5, X6) U23_GG(M, N, isLess_out_gg(X5, X6)) -> U24_GG(M, N, =_in_ag(X3, N)) U23_GG(M, N, isLess_out_gg(X5, X6)) -> =_IN_AG(X3, N) U24_GG(M, N, =_out_ag(X3, N)) -> U25_GG(M, N, X3, =_in_ag(X4, zero)) U24_GG(M, N, =_out_ag(X3, N)) -> =_IN_AG(X4, zero) U25_GG(M, N, X3, =_out_ag(X4, zero)) -> U26_GG(M, N, isGreater_in_gg(X3, X4)) U25_GG(M, N, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U26_GG(M, N, isGreater_out_gg(X3, X4)) -> U27_GG(M, N, =_in_ag(X7, N)) U26_GG(M, N, isGreater_out_gg(X3, X4)) -> =_IN_AG(X7, N) U27_GG(M, N, =_out_ag(X7, N)) -> U28_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U27_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U28_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_GG(M, N, =_in_gg(X7, X8)) U28_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U29_GG(M, N, =_out_gg(X7, X8)) -> U30_GG(M, N, ackermann_in_gga(M, N, X1)) U29_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U28_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_GG(M, N, isLess_in_gg(X7, X8)) U28_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U31_GG(M, N, isLess_out_gg(X7, X8)) -> U32_GG(M, N, ackermann_in_gga(M, N, X1)) U31_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U25_GG(M, N, X3, =_out_ag(X4, zero)) -> U33_GG(M, N, =_in_gg(X3, X4)) U25_GG(M, N, X3, =_out_ag(X4, zero)) -> =_IN_GG(X3, X4) U33_GG(M, N, =_out_gg(X3, X4)) -> U34_GG(M, N, =_in_ag(X7, N)) U33_GG(M, N, =_out_gg(X3, X4)) -> =_IN_AG(X7, N) U34_GG(M, N, =_out_ag(X7, N)) -> U35_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U34_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U35_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_GG(M, N, =_in_gg(X7, X8)) U35_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U36_GG(M, N, =_out_gg(X7, X8)) -> U37_GG(M, N, ackermann_in_gga(M, N, X1)) U36_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U35_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_GG(M, N, isLess_in_gg(X7, X8)) U35_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U38_GG(M, N, isLess_out_gg(X7, X8)) -> U39_GG(M, N, ackermann_in_gga(M, N, X1)) U38_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U2_GG(M, N, X, =_out_ag(X2, zero)) -> U40_GG(M, N, =_in_gg(X, X2)) U2_GG(M, N, X, =_out_ag(X2, zero)) -> =_IN_GG(X, X2) U40_GG(M, N, =_out_gg(X, X2)) -> U41_GG(M, N, =_in_ag(X5, M)) U40_GG(M, N, =_out_gg(X, X2)) -> =_IN_AG(X5, M) U41_GG(M, N, =_out_ag(X5, M)) -> U42_GG(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U41_GG(M, N, =_out_ag(X5, M)) -> =_IN_AG(X6, succ(succ(succ(zero)))) U42_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_GG(M, N, =_in_gg(X5, X6)) U42_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> =_IN_GG(X5, X6) U43_GG(M, N, =_out_gg(X5, X6)) -> U44_GG(M, N, =_in_ag(X3, N)) U43_GG(M, N, =_out_gg(X5, X6)) -> =_IN_AG(X3, N) U44_GG(M, N, =_out_ag(X3, N)) -> U45_GG(M, N, X3, =_in_ag(X4, zero)) U44_GG(M, N, =_out_ag(X3, N)) -> =_IN_AG(X4, zero) U45_GG(M, N, X3, =_out_ag(X4, zero)) -> U46_GG(M, N, isGreater_in_gg(X3, X4)) U45_GG(M, N, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U46_GG(M, N, isGreater_out_gg(X3, X4)) -> U47_GG(M, N, =_in_ag(X7, N)) U46_GG(M, N, isGreater_out_gg(X3, X4)) -> =_IN_AG(X7, N) U47_GG(M, N, =_out_ag(X7, N)) -> U48_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U47_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U48_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_GG(M, N, =_in_gg(X7, X8)) U48_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U49_GG(M, N, =_out_gg(X7, X8)) -> U50_GG(M, N, ackermann_in_gga(M, N, X1)) U49_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U48_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_GG(M, N, isLess_in_gg(X7, X8)) U48_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U51_GG(M, N, isLess_out_gg(X7, X8)) -> U52_GG(M, N, ackermann_in_gga(M, N, X1)) U51_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U45_GG(M, N, X3, =_out_ag(X4, zero)) -> U53_GG(M, N, =_in_gg(X3, X4)) U45_GG(M, N, X3, =_out_ag(X4, zero)) -> =_IN_GG(X3, X4) U53_GG(M, N, =_out_gg(X3, X4)) -> U54_GG(M, N, =_in_ag(X7, N)) U53_GG(M, N, =_out_gg(X3, X4)) -> =_IN_AG(X7, N) U54_GG(M, N, =_out_ag(X7, N)) -> U55_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U54_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U55_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_GG(M, N, =_in_gg(X7, X8)) U55_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U56_GG(M, N, =_out_gg(X7, X8)) -> U57_GG(M, N, ackermann_in_gga(M, N, X1)) U56_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U55_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_GG(M, N, isLess_in_gg(X7, X8)) U55_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U58_GG(M, N, isLess_out_gg(X7, X8)) -> U59_GG(M, N, ackermann_in_gga(M, N, X1)) U58_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U42_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_GG(M, N, isLess_in_gg(X5, X6)) U42_GG(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> ISLESS_IN_GG(X5, X6) U60_GG(M, N, isLess_out_gg(X5, X6)) -> U61_GG(M, N, =_in_ag(X3, N)) U60_GG(M, N, isLess_out_gg(X5, X6)) -> =_IN_AG(X3, N) U61_GG(M, N, =_out_ag(X3, N)) -> U62_GG(M, N, X3, =_in_ag(X4, zero)) U61_GG(M, N, =_out_ag(X3, N)) -> =_IN_AG(X4, zero) U62_GG(M, N, X3, =_out_ag(X4, zero)) -> U63_GG(M, N, isGreater_in_gg(X3, X4)) U62_GG(M, N, X3, =_out_ag(X4, zero)) -> ISGREATER_IN_GG(X3, X4) U63_GG(M, N, isGreater_out_gg(X3, X4)) -> U64_GG(M, N, =_in_ag(X7, N)) U63_GG(M, N, isGreater_out_gg(X3, X4)) -> =_IN_AG(X7, N) U64_GG(M, N, =_out_ag(X7, N)) -> U65_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U64_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U65_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_GG(M, N, =_in_gg(X7, X8)) U65_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U66_GG(M, N, =_out_gg(X7, X8)) -> U67_GG(M, N, ackermann_in_gga(M, N, X1)) U66_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U65_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_GG(M, N, isLess_in_gg(X7, X8)) U65_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U68_GG(M, N, isLess_out_gg(X7, X8)) -> U69_GG(M, N, ackermann_in_gga(M, N, X1)) U68_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U62_GG(M, N, X3, =_out_ag(X4, zero)) -> U70_GG(M, N, =_in_gg(X3, X4)) U62_GG(M, N, X3, =_out_ag(X4, zero)) -> =_IN_GG(X3, X4) U70_GG(M, N, =_out_gg(X3, X4)) -> U71_GG(M, N, =_in_ag(X7, N)) U70_GG(M, N, =_out_gg(X3, X4)) -> =_IN_AG(X7, N) U71_GG(M, N, =_out_ag(X7, N)) -> U72_GG(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U71_GG(M, N, =_out_ag(X7, N)) -> =_IN_AG(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero)))))))))))))))))))))))) U72_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_GG(M, N, =_in_gg(X7, X8)) U72_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> =_IN_GG(X7, X8) U73_GG(M, N, =_out_gg(X7, X8)) -> U74_GG(M, N, ackermann_in_gga(M, N, X1)) U73_GG(M, N, =_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) U72_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_GG(M, N, isLess_in_gg(X7, X8)) U72_GG(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> ISLESS_IN_GG(X7, X8) U75_GG(M, N, isLess_out_gg(X7, X8)) -> U76_GG(M, N, ackermann_in_gga(M, N, X1)) U75_GG(M, N, isLess_out_gg(X7, X8)) -> ACKERMANN_IN_GGA(M, N, X1) The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x3) U129_gg(x1, x2, x3) = U129_gg(x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x2, x4) U80_gga(x1, x2, x3, x4) = U80_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U95_gga(x1, x2, x3, x4) = U95_gga(x4) U96_gga(x1, x2, x3, x4) = U96_gga(x4) U97_gga(x1, x2, x3, x4) = U97_gga(x4) U98_gga(x1, x2, x3, x4) = U98_gga(x4) U81_gga(x1, x2, x3, x4) = U81_gga(x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U99_gga(x1, x2, x3) = U99_gga(x3) U100_gga(x1, x2, x3) = U100_gga(x3) U101_gga(x1, x2, x3, x4) = U101_gga(x4) U102_gga(x1, x2, x3, x4) = U102_gga(x4) U103_gga(x1, x2, x3, x4) = U103_gga(x4) U104_gga(x1, x2, x3, x4) = U104_gga(x4) U86_gga(x1, x2, x3, x4) = U86_gga(x4) U87_gga(x1, x2, x3, x4) = U87_gga(x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U99_ggg(x1, x2, x3) = U99_ggg(x3) U100_ggg(x1, x2, x3) = U100_ggg(x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x4) U94_gga(x1, x2, x3, x4) = U94_gga(x4) main_out_gg(x1, x2) = main_out_gg U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U130_gg(x1, x2, x3) = U130_gg(x3) U131_gg(x1, x2, x3) = U131_gg(x3) U15_gg(x1, x2, x3) = U15_gg(x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x3) MAIN_IN_GG(x1, x2) = MAIN_IN_GG(x1, x2) U1_GG(x1, x2, x3) = U1_GG(x1, x2, x3) =_IN_AG(x1, x2) = =_IN_AG(x2) U2_GG(x1, x2, x3, x4) = U2_GG(x1, x2, x3, x4) U3_GG(x1, x2, x3) = U3_GG(x1, x2, x3) ISGREATER_IN_GG(x1, x2) = ISGREATER_IN_GG(x1, x2) U128_GG(x1, x2, x3) = U128_GG(x3) U129_GG(x1, x2, x3) = U129_GG(x3) U4_GG(x1, x2, x3) = U4_GG(x1, x2, x3) U5_GG(x1, x2, x3, x4) = U5_GG(x1, x2, x3, x4) U6_GG(x1, x2, x3) = U6_GG(x1, x2, x3) =_IN_GG(x1, x2) = =_IN_GG(x1, x2) U7_GG(x1, x2, x3) = U7_GG(x1, x2, x3) U8_GG(x1, x2, x3, x4) = U8_GG(x1, x2, x3, x4) U9_GG(x1, x2, x3) = U9_GG(x1, x2, x3) U10_GG(x1, x2, x3) = U10_GG(x1, x2, x3) U11_GG(x1, x2, x3, x4) = U11_GG(x1, x2, x3, x4) U12_GG(x1, x2, x3) = U12_GG(x1, x2, x3) U13_GG(x1, x2, x3) = U13_GG(x3) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U77_GGA(x1, x2, x3, x4) = U77_GGA(x2, x4) U78_GGA(x1, x2, x3, x4, x5) = U78_GGA(x2, x4, x5) U79_GGA(x1, x2, x3, x4) = U79_GGA(x2, x4) U80_GGA(x1, x2, x3, x4) = U80_GGA(x4) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_IN_GGA(x1, x2) U95_GGA(x1, x2, x3, x4) = U95_GGA(x4) U96_GGA(x1, x2, x3, x4) = U96_GGA(x4) U97_GGA(x1, x2, x3, x4) = U97_GGA(x4) U98_GGA(x1, x2, x3, x4) = U98_GGA(x4) U81_GGA(x1, x2, x3, x4) = U81_GGA(x4) U82_GGA(x1, x2, x3, x4) = U82_GGA(x1, x4) U83_GGA(x1, x2, x3, x4, x5) = U83_GGA(x1, x4, x5) U84_GGA(x1, x2, x3, x4) = U84_GGA(x1, x4) U85_GGA(x1, x2, x3, x4) = U85_GGA(x4) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) U99_GGA(x1, x2, x3) = U99_GGA(x3) U100_GGA(x1, x2, x3) = U100_GGA(x3) U101_GGA(x1, x2, x3, x4) = U101_GGA(x4) U102_GGA(x1, x2, x3, x4) = U102_GGA(x4) U103_GGA(x1, x2, x3, x4) = U103_GGA(x4) U104_GGA(x1, x2, x3, x4) = U104_GGA(x4) U86_GGA(x1, x2, x3, x4) = U86_GGA(x4) U87_GGA(x1, x2, x3, x4) = U87_GGA(x4) U88_GGA(x1, x2, x3, x4) = U88_GGA(x1, x4) U89_GGA(x1, x2, x3, x4, x5) = U89_GGA(x1, x4, x5) U90_GGA(x1, x2, x3, x4, x5) = U90_GGA(x1, x4, x5) U91_GGA(x1, x2, x3, x4, x5, x6) = U91_GGA(x4, x5, x6) ISMINUS_IN_GGG(x1, x2, x3) = ISMINUS_IN_GGG(x1, x2, x3) U99_GGG(x1, x2, x3) = U99_GGG(x3) U100_GGG(x1, x2, x3) = U100_GGG(x3) U101_GGG(x1, x2, x3, x4) = U101_GGG(x4) U102_GGG(x1, x2, x3, x4) = U102_GGG(x4) U103_GGG(x1, x2, x3, x4) = U103_GGG(x4) U104_GGG(x1, x2, x3, x4) = U104_GGG(x4) U92_GGA(x1, x2, x3, x4, x5) = U92_GGA(x4, x5) U93_GGA(x1, x2, x3, x4) = U93_GGA(x4) U94_GGA(x1, x2, x3, x4) = U94_GGA(x4) U14_GG(x1, x2, x3) = U14_GG(x1, x2, x3) ISLESS_IN_GG(x1, x2) = ISLESS_IN_GG(x1, x2) U130_GG(x1, x2, x3) = U130_GG(x3) U131_GG(x1, x2, x3) = U131_GG(x3) U15_GG(x1, x2, x3) = U15_GG(x3) U16_GG(x1, x2, x3) = U16_GG(x1, x2, x3) U17_GG(x1, x2, x3) = U17_GG(x1, x2, x3) U18_GG(x1, x2, x3, x4) = U18_GG(x1, x2, x3, x4) U19_GG(x1, x2, x3) = U19_GG(x1, x2, x3) U20_GG(x1, x2, x3) = U20_GG(x3) U21_GG(x1, x2, x3) = U21_GG(x1, x2, x3) U22_GG(x1, x2, x3) = U22_GG(x3) U23_GG(x1, x2, x3) = U23_GG(x1, x2, x3) U24_GG(x1, x2, x3) = U24_GG(x1, x2, x3) U25_GG(x1, x2, x3, x4) = U25_GG(x1, x2, x3, x4) U26_GG(x1, x2, x3) = U26_GG(x1, x2, x3) U27_GG(x1, x2, x3) = U27_GG(x1, x2, x3) U28_GG(x1, x2, x3, x4) = U28_GG(x1, x2, x3, x4) U29_GG(x1, x2, x3) = U29_GG(x1, x2, x3) U30_GG(x1, x2, x3) = U30_GG(x3) U31_GG(x1, x2, x3) = U31_GG(x1, x2, x3) U32_GG(x1, x2, x3) = U32_GG(x3) U33_GG(x1, x2, x3) = U33_GG(x1, x2, x3) U34_GG(x1, x2, x3) = U34_GG(x1, x2, x3) U35_GG(x1, x2, x3, x4) = U35_GG(x1, x2, x3, x4) U36_GG(x1, x2, x3) = U36_GG(x1, x2, x3) U37_GG(x1, x2, x3) = U37_GG(x3) U38_GG(x1, x2, x3) = U38_GG(x1, x2, x3) U39_GG(x1, x2, x3) = U39_GG(x3) U40_GG(x1, x2, x3) = U40_GG(x1, x2, x3) U41_GG(x1, x2, x3) = U41_GG(x1, x2, x3) U42_GG(x1, x2, x3, x4) = U42_GG(x1, x2, x3, x4) U43_GG(x1, x2, x3) = U43_GG(x1, x2, x3) U44_GG(x1, x2, x3) = U44_GG(x1, x2, x3) U45_GG(x1, x2, x3, x4) = U45_GG(x1, x2, x3, x4) U46_GG(x1, x2, x3) = U46_GG(x1, x2, x3) U47_GG(x1, x2, x3) = U47_GG(x1, x2, x3) U48_GG(x1, x2, x3, x4) = U48_GG(x1, x2, x3, x4) U49_GG(x1, x2, x3) = U49_GG(x1, x2, x3) U50_GG(x1, x2, x3) = U50_GG(x3) U51_GG(x1, x2, x3) = U51_GG(x1, x2, x3) U52_GG(x1, x2, x3) = U52_GG(x3) U53_GG(x1, x2, x3) = U53_GG(x1, x2, x3) U54_GG(x1, x2, x3) = U54_GG(x1, x2, x3) U55_GG(x1, x2, x3, x4) = U55_GG(x1, x2, x3, x4) U56_GG(x1, x2, x3) = U56_GG(x1, x2, x3) U57_GG(x1, x2, x3) = U57_GG(x3) U58_GG(x1, x2, x3) = U58_GG(x1, x2, x3) U59_GG(x1, x2, x3) = U59_GG(x3) U60_GG(x1, x2, x3) = U60_GG(x1, x2, x3) U61_GG(x1, x2, x3) = U61_GG(x1, x2, x3) U62_GG(x1, x2, x3, x4) = U62_GG(x1, x2, x3, x4) U63_GG(x1, x2, x3) = U63_GG(x1, x2, x3) U64_GG(x1, x2, x3) = U64_GG(x1, x2, x3) U65_GG(x1, x2, x3, x4) = U65_GG(x1, x2, x3, x4) U66_GG(x1, x2, x3) = U66_GG(x1, x2, x3) U67_GG(x1, x2, x3) = U67_GG(x3) U68_GG(x1, x2, x3) = U68_GG(x1, x2, x3) U69_GG(x1, x2, x3) = U69_GG(x3) U70_GG(x1, x2, x3) = U70_GG(x1, x2, x3) U71_GG(x1, x2, x3) = U71_GG(x1, x2, x3) U72_GG(x1, x2, x3, x4) = U72_GG(x1, x2, x3, x4) U73_GG(x1, x2, x3) = U73_GG(x1, x2, x3) U74_GG(x1, x2, x3) = U74_GG(x3) U75_GG(x1, x2, x3) = U75_GG(x1, x2, x3) U76_GG(x1, x2, x3) = U76_GG(x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (99) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 8 SCCs with 195 less nodes. ---------------------------------------- (100) Complex Obligation (AND) ---------------------------------------- (101) 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: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x3) U129_gg(x1, x2, x3) = U129_gg(x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x2, x4) U80_gga(x1, x2, x3, x4) = U80_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U95_gga(x1, x2, x3, x4) = U95_gga(x4) U96_gga(x1, x2, x3, x4) = U96_gga(x4) U97_gga(x1, x2, x3, x4) = U97_gga(x4) U98_gga(x1, x2, x3, x4) = U98_gga(x4) U81_gga(x1, x2, x3, x4) = U81_gga(x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U99_gga(x1, x2, x3) = U99_gga(x3) U100_gga(x1, x2, x3) = U100_gga(x3) U101_gga(x1, x2, x3, x4) = U101_gga(x4) U102_gga(x1, x2, x3, x4) = U102_gga(x4) U103_gga(x1, x2, x3, x4) = U103_gga(x4) U104_gga(x1, x2, x3, x4) = U104_gga(x4) U86_gga(x1, x2, x3, x4) = U86_gga(x4) U87_gga(x1, x2, x3, x4) = U87_gga(x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U99_ggg(x1, x2, x3) = U99_ggg(x3) U100_ggg(x1, x2, x3) = U100_ggg(x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x4) U94_gga(x1, x2, x3, x4) = U94_gga(x4) main_out_gg(x1, x2) = main_out_gg U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U130_gg(x1, x2, x3) = U130_gg(x3) U131_gg(x1, x2, x3) = U131_gg(x3) U15_gg(x1, x2, x3) = U15_gg(x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x3) ISLESS_IN_GG(x1, x2) = ISLESS_IN_GG(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (102) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (103) 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 ---------------------------------------- (104) PiDPToQDPProof (EQUIVALENT) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (105) 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. ---------------------------------------- (106) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x3) U129_gg(x1, x2, x3) = U129_gg(x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x2, x4) U80_gga(x1, x2, x3, x4) = U80_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U95_gga(x1, x2, x3, x4) = U95_gga(x4) U96_gga(x1, x2, x3, x4) = U96_gga(x4) U97_gga(x1, x2, x3, x4) = U97_gga(x4) U98_gga(x1, x2, x3, x4) = U98_gga(x4) U81_gga(x1, x2, x3, x4) = U81_gga(x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U99_gga(x1, x2, x3) = U99_gga(x3) U100_gga(x1, x2, x3) = U100_gga(x3) U101_gga(x1, x2, x3, x4) = U101_gga(x4) U102_gga(x1, x2, x3, x4) = U102_gga(x4) U103_gga(x1, x2, x3, x4) = U103_gga(x4) U104_gga(x1, x2, x3, x4) = U104_gga(x4) U86_gga(x1, x2, x3, x4) = U86_gga(x4) U87_gga(x1, x2, x3, x4) = U87_gga(x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U99_ggg(x1, x2, x3) = U99_ggg(x3) U100_ggg(x1, x2, x3) = U100_ggg(x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x4) U94_gga(x1, x2, x3, x4) = U94_gga(x4) main_out_gg(x1, x2) = main_out_gg U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U130_gg(x1, x2, x3) = U130_gg(x3) U131_gg(x1, x2, x3) = U131_gg(x3) U15_gg(x1, x2, x3) = U15_gg(x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x3) ISMINUS_IN_GGG(x1, x2, x3) = ISMINUS_IN_GGG(x1, x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (107) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (108) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(zero, pred(Y), succ(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) ISMINUS_IN_GGG(zero, succ(Y), pred(Z)) -> ISMINUS_IN_GGG(zero, Y, Z) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (109) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x3) U129_gg(x1, x2, x3) = U129_gg(x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x2, x4) U80_gga(x1, x2, x3, x4) = U80_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U95_gga(x1, x2, x3, x4) = U95_gga(x4) U96_gga(x1, x2, x3, x4) = U96_gga(x4) U97_gga(x1, x2, x3, x4) = U97_gga(x4) U98_gga(x1, x2, x3, x4) = U98_gga(x4) U81_gga(x1, x2, x3, x4) = U81_gga(x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U99_gga(x1, x2, x3) = U99_gga(x3) U100_gga(x1, x2, x3) = U100_gga(x3) U101_gga(x1, x2, x3, x4) = U101_gga(x4) U102_gga(x1, x2, x3, x4) = U102_gga(x4) U103_gga(x1, x2, x3, x4) = U103_gga(x4) U104_gga(x1, x2, x3, x4) = U104_gga(x4) U86_gga(x1, x2, x3, x4) = U86_gga(x4) U87_gga(x1, x2, x3, x4) = U87_gga(x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U99_ggg(x1, x2, x3) = U99_ggg(x3) U100_ggg(x1, x2, x3) = U100_ggg(x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x4) U94_gga(x1, x2, x3, x4) = U94_gga(x4) main_out_gg(x1, x2) = main_out_gg U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U130_gg(x1, x2, x3) = U130_gg(x3) U131_gg(x1, x2, x3) = U131_gg(x3) U15_gg(x1, x2, x3) = U15_gg(x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x3) ISMINUS_IN_GGG(x1, x2, x3) = ISMINUS_IN_GGG(x1, x2, x3) We have to consider all (P,R,Pi)-chains ---------------------------------------- (110) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (111) Obligation: Pi DP problem: The TRS P consists of the following rules: ISMINUS_IN_GGG(succ(X), pred(Y), succ(succ(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(succ(X), succ(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), succ(Y), pred(pred(Z))) -> ISMINUS_IN_GGG(X, Y, Z) ISMINUS_IN_GGG(pred(X), pred(Y), Z) -> ISMINUS_IN_GGG(X, Y, Z) R is empty. Pi is empty. We have to consider all (P,R,Pi)-chains ---------------------------------------- (112) 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: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x3) U129_gg(x1, x2, x3) = U129_gg(x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x2, x4) U80_gga(x1, x2, x3, x4) = U80_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U95_gga(x1, x2, x3, x4) = U95_gga(x4) U96_gga(x1, x2, x3, x4) = U96_gga(x4) U97_gga(x1, x2, x3, x4) = U97_gga(x4) U98_gga(x1, x2, x3, x4) = U98_gga(x4) U81_gga(x1, x2, x3, x4) = U81_gga(x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U99_gga(x1, x2, x3) = U99_gga(x3) U100_gga(x1, x2, x3) = U100_gga(x3) U101_gga(x1, x2, x3, x4) = U101_gga(x4) U102_gga(x1, x2, x3, x4) = U102_gga(x4) U103_gga(x1, x2, x3, x4) = U103_gga(x4) U104_gga(x1, x2, x3, x4) = U104_gga(x4) U86_gga(x1, x2, x3, x4) = U86_gga(x4) U87_gga(x1, x2, x3, x4) = U87_gga(x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U99_ggg(x1, x2, x3) = U99_ggg(x3) U100_ggg(x1, x2, x3) = U100_ggg(x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x4) U94_gga(x1, x2, x3, x4) = U94_gga(x4) main_out_gg(x1, x2) = main_out_gg U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U130_gg(x1, x2, x3) = U130_gg(x3) U131_gg(x1, x2, x3) = U131_gg(x3) U15_gg(x1, x2, x3) = U15_gg(x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x3) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (113) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (114) 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 ---------------------------------------- (115) 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: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x3) U129_gg(x1, x2, x3) = U129_gg(x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x2, x4) U80_gga(x1, x2, x3, x4) = U80_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U95_gga(x1, x2, x3, x4) = U95_gga(x4) U96_gga(x1, x2, x3, x4) = U96_gga(x4) U97_gga(x1, x2, x3, x4) = U97_gga(x4) U98_gga(x1, x2, x3, x4) = U98_gga(x4) U81_gga(x1, x2, x3, x4) = U81_gga(x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U99_gga(x1, x2, x3) = U99_gga(x3) U100_gga(x1, x2, x3) = U100_gga(x3) U101_gga(x1, x2, x3, x4) = U101_gga(x4) U102_gga(x1, x2, x3, x4) = U102_gga(x4) U103_gga(x1, x2, x3, x4) = U103_gga(x4) U104_gga(x1, x2, x3, x4) = U104_gga(x4) U86_gga(x1, x2, x3, x4) = U86_gga(x4) U87_gga(x1, x2, x3, x4) = U87_gga(x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U99_ggg(x1, x2, x3) = U99_ggg(x3) U100_ggg(x1, x2, x3) = U100_ggg(x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x4) U94_gga(x1, x2, x3, x4) = U94_gga(x4) main_out_gg(x1, x2) = main_out_gg U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U130_gg(x1, x2, x3) = U130_gg(x3) U131_gg(x1, x2, x3) = U131_gg(x3) U15_gg(x1, x2, x3) = U15_gg(x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x3) ISMINUS_IN_GGA(x1, x2, x3) = ISMINUS_IN_GGA(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (116) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (117) 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 ---------------------------------------- (118) 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: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x3) U129_gg(x1, x2, x3) = U129_gg(x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x2, x4) U80_gga(x1, x2, x3, x4) = U80_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U95_gga(x1, x2, x3, x4) = U95_gga(x4) U96_gga(x1, x2, x3, x4) = U96_gga(x4) U97_gga(x1, x2, x3, x4) = U97_gga(x4) U98_gga(x1, x2, x3, x4) = U98_gga(x4) U81_gga(x1, x2, x3, x4) = U81_gga(x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U99_gga(x1, x2, x3) = U99_gga(x3) U100_gga(x1, x2, x3) = U100_gga(x3) U101_gga(x1, x2, x3, x4) = U101_gga(x4) U102_gga(x1, x2, x3, x4) = U102_gga(x4) U103_gga(x1, x2, x3, x4) = U103_gga(x4) U104_gga(x1, x2, x3, x4) = U104_gga(x4) U86_gga(x1, x2, x3, x4) = U86_gga(x4) U87_gga(x1, x2, x3, x4) = U87_gga(x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U99_ggg(x1, x2, x3) = U99_ggg(x3) U100_ggg(x1, x2, x3) = U100_ggg(x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x4) U94_gga(x1, x2, x3, x4) = U94_gga(x4) main_out_gg(x1, x2) = main_out_gg U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U130_gg(x1, x2, x3) = U130_gg(x3) U131_gg(x1, x2, x3) = U131_gg(x3) U15_gg(x1, x2, x3) = U15_gg(x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x3) ISPLUS_IN_GGA(x1, x2, x3) = ISPLUS_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: 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 ---------------------------------------- (121) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GGA(M, N, Ret) -> U82_GGA(M, N, Ret, =_in_ag(X, N)) U82_GGA(M, N, Ret, =_out_ag(X, N)) -> U83_GGA(M, N, Ret, X, =_in_ag(X1, zero)) U83_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_GGA(M, N, Ret, =_in_gg(X, X1)) U84_GGA(M, N, Ret, =_out_gg(X, X1)) -> U85_GGA(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) U85_GGA(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_GGA(M, N, Ret, =_in_ag(M1, U)) U86_GGA(M, N, Ret, =_out_ag(M1, U)) -> ACKERMANN_IN_GGA(M1, succ(zero), Ret) ACKERMANN_IN_GGA(M, N, Ret) -> U88_GGA(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_GGA(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_GGA(M, N, Ret, U, =_in_ag(N1, U)) U89_GGA(M, N, Ret, U, =_out_ag(N1, U)) -> U90_GGA(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_GGA(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_GGA(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) U91_GGA(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_GGA(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_GGA(M, N, Ret, Ret1, =_out_ag(M1, U)) -> ACKERMANN_IN_GGA(M1, Ret1, Ret2) U89_GGA(M, N, Ret, U, =_out_ag(N1, U)) -> ACKERMANN_IN_GGA(M, N1, Ret1) The TRS R consists of the following rules: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x3) U129_gg(x1, x2, x3) = U129_gg(x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x2, x4) U80_gga(x1, x2, x3, x4) = U80_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U95_gga(x1, x2, x3, x4) = U95_gga(x4) U96_gga(x1, x2, x3, x4) = U96_gga(x4) U97_gga(x1, x2, x3, x4) = U97_gga(x4) U98_gga(x1, x2, x3, x4) = U98_gga(x4) U81_gga(x1, x2, x3, x4) = U81_gga(x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U99_gga(x1, x2, x3) = U99_gga(x3) U100_gga(x1, x2, x3) = U100_gga(x3) U101_gga(x1, x2, x3, x4) = U101_gga(x4) U102_gga(x1, x2, x3, x4) = U102_gga(x4) U103_gga(x1, x2, x3, x4) = U103_gga(x4) U104_gga(x1, x2, x3, x4) = U104_gga(x4) U86_gga(x1, x2, x3, x4) = U86_gga(x4) U87_gga(x1, x2, x3, x4) = U87_gga(x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U99_ggg(x1, x2, x3) = U99_ggg(x3) U100_ggg(x1, x2, x3) = U100_ggg(x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x4) U94_gga(x1, x2, x3, x4) = U94_gga(x4) main_out_gg(x1, x2) = main_out_gg U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U130_gg(x1, x2, x3) = U130_gg(x3) U131_gg(x1, x2, x3) = U131_gg(x3) U15_gg(x1, x2, x3) = U15_gg(x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x3) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U82_GGA(x1, x2, x3, x4) = U82_GGA(x1, x4) U83_GGA(x1, x2, x3, x4, x5) = U83_GGA(x1, x4, x5) U84_GGA(x1, x2, x3, x4) = U84_GGA(x1, x4) U85_GGA(x1, x2, x3, x4) = U85_GGA(x4) U86_GGA(x1, x2, x3, x4) = U86_GGA(x4) U88_GGA(x1, x2, x3, x4) = U88_GGA(x1, x4) U89_GGA(x1, x2, x3, x4, x5) = U89_GGA(x1, x4, x5) U90_GGA(x1, x2, x3, x4, x5) = U90_GGA(x1, x4, x5) U91_GGA(x1, x2, x3, x4, x5, x6) = U91_GGA(x4, x5, x6) U92_GGA(x1, x2, x3, x4, x5) = U92_GGA(x4, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (122) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (123) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANN_IN_GGA(M, N, Ret) -> U82_GGA(M, N, Ret, =_in_ag(X, N)) U82_GGA(M, N, Ret, =_out_ag(X, N)) -> U83_GGA(M, N, Ret, X, =_in_ag(X1, zero)) U83_GGA(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_GGA(M, N, Ret, =_in_gg(X, X1)) U84_GGA(M, N, Ret, =_out_gg(X, X1)) -> U85_GGA(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) U85_GGA(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_GGA(M, N, Ret, =_in_ag(M1, U)) U86_GGA(M, N, Ret, =_out_ag(M1, U)) -> ACKERMANN_IN_GGA(M1, succ(zero), Ret) ACKERMANN_IN_GGA(M, N, Ret) -> U88_GGA(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_GGA(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_GGA(M, N, Ret, U, =_in_ag(N1, U)) U89_GGA(M, N, Ret, U, =_out_ag(N1, U)) -> U90_GGA(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_GGA(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_GGA(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) U91_GGA(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_GGA(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_GGA(M, N, Ret, Ret1, =_out_ag(M1, U)) -> ACKERMANN_IN_GGA(M1, Ret1, Ret2) U89_GGA(M, N, Ret, U, =_out_ag(N1, U)) -> ACKERMANN_IN_GGA(M, N1, Ret1) The TRS R consists of the following rules: =_in_ag(X, X) -> =_out_ag(X, X) =_in_gg(X, X) -> =_out_gg(X, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) isPlus_in_gga(zero, X, X) -> isPlus_out_gga(zero, X, X) isPlus_in_gga(succ(X), succ(Y), succ(succ(Z))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), succ(Y), Z) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) isPlus_in_gga(succ(X), zero, succ(X)) -> isPlus_out_gga(succ(X), zero, succ(X)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), zero, pred(X)) -> isPlus_out_gga(pred(X), zero, pred(X)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) The argument filtering Pi contains the following mapping: =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) zero = zero succ(x1) = succ(x1) pred(x1) = pred(x1) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x2, x4) U80_gga(x1, x2, x3, x4) = U80_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U95_gga(x1, x2, x3, x4) = U95_gga(x4) U96_gga(x1, x2, x3, x4) = U96_gga(x4) U97_gga(x1, x2, x3, x4) = U97_gga(x4) U98_gga(x1, x2, x3, x4) = U98_gga(x4) U81_gga(x1, x2, x3, x4) = U81_gga(x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U99_gga(x1, x2, x3) = U99_gga(x3) U100_gga(x1, x2, x3) = U100_gga(x3) U101_gga(x1, x2, x3, x4) = U101_gga(x4) U102_gga(x1, x2, x3, x4) = U102_gga(x4) U103_gga(x1, x2, x3, x4) = U103_gga(x4) U104_gga(x1, x2, x3, x4) = U104_gga(x4) U86_gga(x1, x2, x3, x4) = U86_gga(x4) U87_gga(x1, x2, x3, x4) = U87_gga(x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U99_ggg(x1, x2, x3) = U99_ggg(x3) U100_ggg(x1, x2, x3) = U100_ggg(x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x4) U94_gga(x1, x2, x3, x4) = U94_gga(x4) ACKERMANN_IN_GGA(x1, x2, x3) = ACKERMANN_IN_GGA(x1, x2) U82_GGA(x1, x2, x3, x4) = U82_GGA(x1, x4) U83_GGA(x1, x2, x3, x4, x5) = U83_GGA(x1, x4, x5) U84_GGA(x1, x2, x3, x4) = U84_GGA(x1, x4) U85_GGA(x1, x2, x3, x4) = U85_GGA(x4) U86_GGA(x1, x2, x3, x4) = U86_GGA(x4) U88_GGA(x1, x2, x3, x4) = U88_GGA(x1, x4) U89_GGA(x1, x2, x3, x4, x5) = U89_GGA(x1, x4, x5) U90_GGA(x1, x2, x3, x4, x5) = U90_GGA(x1, x4, x5) U91_GGA(x1, x2, x3, x4, x5, x6) = U91_GGA(x4, x5, x6) U92_GGA(x1, x2, x3, x4, x5) = U92_GGA(x4, x5) We have to consider all (P,R,Pi)-chains ---------------------------------------- (124) 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: main_in_gg(M, N) -> U1_gg(M, N, =_in_ag(X, M)) =_in_ag(X, X) -> =_out_ag(X, X) U1_gg(M, N, =_out_ag(X, M)) -> U2_gg(M, N, X, =_in_ag(X2, zero)) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U3_gg(M, N, isGreater_in_gg(X, 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)) -> U128_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)) -> U129_gg(X, Y, isGreater_in_gg(X, Y)) U129_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(pred(X), pred(Y)) U128_gg(X, Y, isGreater_out_gg(X, Y)) -> isGreater_out_gg(succ(X), succ(Y)) U3_gg(M, N, isGreater_out_gg(X, X2)) -> U4_gg(M, N, =_in_ag(X5, M)) U4_gg(M, N, =_out_ag(X5, M)) -> U5_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U6_gg(M, N, =_in_gg(X5, X6)) =_in_gg(X, X) -> =_out_gg(X, X) U6_gg(M, N, =_out_gg(X5, X6)) -> U7_gg(M, N, =_in_ag(X3, N)) U7_gg(M, N, =_out_ag(X3, N)) -> U8_gg(M, N, X3, =_in_ag(X4, zero)) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U9_gg(M, N, isGreater_in_gg(X3, X4)) U9_gg(M, N, isGreater_out_gg(X3, X4)) -> U10_gg(M, N, =_in_ag(X7, N)) U10_gg(M, N, =_out_ag(X7, N)) -> U11_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U12_gg(M, N, =_in_gg(X7, X8)) U12_gg(M, N, =_out_gg(X7, X8)) -> U13_gg(M, N, ackermann_in_gga(M, N, X1)) ackermann_in_gga(M, N, Ret) -> U77_gga(M, N, Ret, =_in_ag(X, M)) U77_gga(M, N, Ret, =_out_ag(X, M)) -> U78_gga(M, N, Ret, X, =_in_ag(X1, zero)) U78_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U79_gga(M, N, Ret, =_in_gg(X, X1)) U79_gga(M, N, Ret, =_out_gg(X, X1)) -> U80_gga(M, N, Ret, isPlus_in_gga(N, succ(zero), U)) 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))) -> U95_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(succ(X), pred(Y), Z) -> U96_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) -> U97_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) isPlus_in_gga(pred(X), pred(Y), pred(pred(Z))) -> U98_gga(X, Y, Z, isPlus_in_gga(X, Y, Z)) U98_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), pred(Y), pred(pred(Z))) U97_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(pred(X), succ(Y), Z) U96_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), pred(Y), Z) U95_gga(X, Y, Z, isPlus_out_gga(X, Y, Z)) -> isPlus_out_gga(succ(X), succ(Y), succ(succ(Z))) U80_gga(M, N, Ret, isPlus_out_gga(N, succ(zero), U)) -> U81_gga(M, N, Ret, =_in_ag(Ret, U)) U81_gga(M, N, Ret, =_out_ag(Ret, U)) -> ackermann_out_gga(M, N, Ret) ackermann_in_gga(M, N, Ret) -> U82_gga(M, N, Ret, =_in_ag(X, N)) U82_gga(M, N, Ret, =_out_ag(X, N)) -> U83_gga(M, N, Ret, X, =_in_ag(X1, zero)) U83_gga(M, N, Ret, X, =_out_ag(X1, zero)) -> U84_gga(M, N, Ret, =_in_gg(X, X1)) U84_gga(M, N, Ret, =_out_gg(X, X1)) -> U85_gga(M, N, Ret, isMinus_in_gga(M, succ(zero), U)) isMinus_in_gga(X, zero, X) -> isMinus_out_gga(X, zero, X) isMinus_in_gga(zero, succ(Y), pred(Z)) -> U99_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(zero, pred(Y), succ(Z)) -> U100_gga(Y, Z, isMinus_in_gga(zero, Y, Z)) isMinus_in_gga(succ(X), succ(Y), Z) -> U101_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(succ(X), pred(Y), succ(succ(Z))) -> U102_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), succ(Y), pred(pred(Z))) -> U103_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) isMinus_in_gga(pred(X), pred(Y), Z) -> U104_gga(X, Y, Z, isMinus_in_gga(X, Y, Z)) U104_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), pred(Y), Z) U103_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(pred(X), succ(Y), pred(pred(Z))) U102_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), pred(Y), succ(succ(Z))) U101_gga(X, Y, Z, isMinus_out_gga(X, Y, Z)) -> isMinus_out_gga(succ(X), succ(Y), Z) U100_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, pred(Y), succ(Z)) U99_gga(Y, Z, isMinus_out_gga(zero, Y, Z)) -> isMinus_out_gga(zero, succ(Y), pred(Z)) U85_gga(M, N, Ret, isMinus_out_gga(M, succ(zero), U)) -> U86_gga(M, N, Ret, =_in_ag(M1, U)) U86_gga(M, N, Ret, =_out_ag(M1, U)) -> U87_gga(M, N, Ret, ackermann_in_gga(M1, succ(zero), Ret)) ackermann_in_gga(M, N, Ret) -> U88_gga(M, N, Ret, isMinus_in_gga(N, succ(zero), U)) U88_gga(M, N, Ret, isMinus_out_gga(N, succ(zero), U)) -> U89_gga(M, N, Ret, U, =_in_ag(N1, U)) U89_gga(M, N, Ret, U, =_out_ag(N1, U)) -> U90_gga(M, N, Ret, U, ackermann_in_gga(M, N1, Ret1)) U90_gga(M, N, Ret, U, ackermann_out_gga(M, N1, Ret1)) -> U91_gga(M, N, Ret, U, Ret1, isMinus_in_ggg(M, succ(zero), U)) isMinus_in_ggg(X, zero, X) -> isMinus_out_ggg(X, zero, X) isMinus_in_ggg(zero, succ(Y), pred(Z)) -> U99_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(zero, pred(Y), succ(Z)) -> U100_ggg(Y, Z, isMinus_in_ggg(zero, Y, Z)) isMinus_in_ggg(succ(X), succ(Y), Z) -> U101_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(succ(X), pred(Y), succ(succ(Z))) -> U102_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), succ(Y), pred(pred(Z))) -> U103_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) isMinus_in_ggg(pred(X), pred(Y), Z) -> U104_ggg(X, Y, Z, isMinus_in_ggg(X, Y, Z)) U104_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), pred(Y), Z) U103_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(pred(X), succ(Y), pred(pred(Z))) U102_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), pred(Y), succ(succ(Z))) U101_ggg(X, Y, Z, isMinus_out_ggg(X, Y, Z)) -> isMinus_out_ggg(succ(X), succ(Y), Z) U100_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, pred(Y), succ(Z)) U99_ggg(Y, Z, isMinus_out_ggg(zero, Y, Z)) -> isMinus_out_ggg(zero, succ(Y), pred(Z)) U91_gga(M, N, Ret, U, Ret1, isMinus_out_ggg(M, succ(zero), U)) -> U92_gga(M, N, Ret, Ret1, =_in_ag(M1, U)) U92_gga(M, N, Ret, Ret1, =_out_ag(M1, U)) -> U93_gga(M, N, Ret, ackermann_in_gga(M1, Ret1, Ret2)) U93_gga(M, N, Ret, ackermann_out_gga(M1, Ret1, Ret2)) -> U94_gga(M, N, Ret, =_in_ag(Ret, Ret2)) U94_gga(M, N, Ret, =_out_ag(Ret, Ret2)) -> ackermann_out_gga(M, N, Ret) U87_gga(M, N, Ret, ackermann_out_gga(M1, succ(zero), Ret)) -> ackermann_out_gga(M, N, Ret) U13_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U11_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U14_gg(M, N, isLess_in_gg(X7, X8)) 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)) -> U130_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)) -> U131_gg(X, Y, isLess_in_gg(X, Y)) U131_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(succ(X), succ(Y)) U130_gg(X, Y, isLess_out_gg(X, Y)) -> isLess_out_gg(pred(X), pred(Y)) U14_gg(M, N, isLess_out_gg(X7, X8)) -> U15_gg(M, N, ackermann_in_gga(M, N, X1)) U15_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U8_gg(M, N, X3, =_out_ag(X4, zero)) -> U16_gg(M, N, =_in_gg(X3, X4)) U16_gg(M, N, =_out_gg(X3, X4)) -> U17_gg(M, N, =_in_ag(X7, N)) U17_gg(M, N, =_out_ag(X7, N)) -> U18_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U19_gg(M, N, =_in_gg(X7, X8)) U19_gg(M, N, =_out_gg(X7, X8)) -> U20_gg(M, N, ackermann_in_gga(M, N, X1)) U20_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U18_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U21_gg(M, N, isLess_in_gg(X7, X8)) U21_gg(M, N, isLess_out_gg(X7, X8)) -> U22_gg(M, N, ackermann_in_gga(M, N, X1)) U22_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U5_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U23_gg(M, N, isLess_in_gg(X5, X6)) U23_gg(M, N, isLess_out_gg(X5, X6)) -> U24_gg(M, N, =_in_ag(X3, N)) U24_gg(M, N, =_out_ag(X3, N)) -> U25_gg(M, N, X3, =_in_ag(X4, zero)) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U26_gg(M, N, isGreater_in_gg(X3, X4)) U26_gg(M, N, isGreater_out_gg(X3, X4)) -> U27_gg(M, N, =_in_ag(X7, N)) U27_gg(M, N, =_out_ag(X7, N)) -> U28_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U29_gg(M, N, =_in_gg(X7, X8)) U29_gg(M, N, =_out_gg(X7, X8)) -> U30_gg(M, N, ackermann_in_gga(M, N, X1)) U30_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U28_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U31_gg(M, N, isLess_in_gg(X7, X8)) U31_gg(M, N, isLess_out_gg(X7, X8)) -> U32_gg(M, N, ackermann_in_gga(M, N, X1)) U32_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U25_gg(M, N, X3, =_out_ag(X4, zero)) -> U33_gg(M, N, =_in_gg(X3, X4)) U33_gg(M, N, =_out_gg(X3, X4)) -> U34_gg(M, N, =_in_ag(X7, N)) U34_gg(M, N, =_out_ag(X7, N)) -> U35_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U36_gg(M, N, =_in_gg(X7, X8)) U36_gg(M, N, =_out_gg(X7, X8)) -> U37_gg(M, N, ackermann_in_gga(M, N, X1)) U37_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U35_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U38_gg(M, N, isLess_in_gg(X7, X8)) U38_gg(M, N, isLess_out_gg(X7, X8)) -> U39_gg(M, N, ackermann_in_gga(M, N, X1)) U39_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U2_gg(M, N, X, =_out_ag(X2, zero)) -> U40_gg(M, N, =_in_gg(X, X2)) U40_gg(M, N, =_out_gg(X, X2)) -> U41_gg(M, N, =_in_ag(X5, M)) U41_gg(M, N, =_out_ag(X5, M)) -> U42_gg(M, N, X5, =_in_ag(X6, succ(succ(succ(zero))))) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U43_gg(M, N, =_in_gg(X5, X6)) U43_gg(M, N, =_out_gg(X5, X6)) -> U44_gg(M, N, =_in_ag(X3, N)) U44_gg(M, N, =_out_ag(X3, N)) -> U45_gg(M, N, X3, =_in_ag(X4, zero)) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U46_gg(M, N, isGreater_in_gg(X3, X4)) U46_gg(M, N, isGreater_out_gg(X3, X4)) -> U47_gg(M, N, =_in_ag(X7, N)) U47_gg(M, N, =_out_ag(X7, N)) -> U48_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U49_gg(M, N, =_in_gg(X7, X8)) U49_gg(M, N, =_out_gg(X7, X8)) -> U50_gg(M, N, ackermann_in_gga(M, N, X1)) U50_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U48_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U51_gg(M, N, isLess_in_gg(X7, X8)) U51_gg(M, N, isLess_out_gg(X7, X8)) -> U52_gg(M, N, ackermann_in_gga(M, N, X1)) U52_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U45_gg(M, N, X3, =_out_ag(X4, zero)) -> U53_gg(M, N, =_in_gg(X3, X4)) U53_gg(M, N, =_out_gg(X3, X4)) -> U54_gg(M, N, =_in_ag(X7, N)) U54_gg(M, N, =_out_ag(X7, N)) -> U55_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U56_gg(M, N, =_in_gg(X7, X8)) U56_gg(M, N, =_out_gg(X7, X8)) -> U57_gg(M, N, ackermann_in_gga(M, N, X1)) U57_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U55_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U58_gg(M, N, isLess_in_gg(X7, X8)) U58_gg(M, N, isLess_out_gg(X7, X8)) -> U59_gg(M, N, ackermann_in_gga(M, N, X1)) U59_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U42_gg(M, N, X5, =_out_ag(X6, succ(succ(succ(zero))))) -> U60_gg(M, N, isLess_in_gg(X5, X6)) U60_gg(M, N, isLess_out_gg(X5, X6)) -> U61_gg(M, N, =_in_ag(X3, N)) U61_gg(M, N, =_out_ag(X3, N)) -> U62_gg(M, N, X3, =_in_ag(X4, zero)) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U63_gg(M, N, isGreater_in_gg(X3, X4)) U63_gg(M, N, isGreater_out_gg(X3, X4)) -> U64_gg(M, N, =_in_ag(X7, N)) U64_gg(M, N, =_out_ag(X7, N)) -> U65_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U66_gg(M, N, =_in_gg(X7, X8)) U66_gg(M, N, =_out_gg(X7, X8)) -> U67_gg(M, N, ackermann_in_gga(M, N, X1)) U67_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U65_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U68_gg(M, N, isLess_in_gg(X7, X8)) U68_gg(M, N, isLess_out_gg(X7, X8)) -> U69_gg(M, N, ackermann_in_gga(M, N, X1)) U69_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U62_gg(M, N, X3, =_out_ag(X4, zero)) -> U70_gg(M, N, =_in_gg(X3, X4)) U70_gg(M, N, =_out_gg(X3, X4)) -> U71_gg(M, N, =_in_ag(X7, N)) U71_gg(M, N, =_out_ag(X7, N)) -> U72_gg(M, N, X7, =_in_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U73_gg(M, N, =_in_gg(X7, X8)) U73_gg(M, N, =_out_gg(X7, X8)) -> U74_gg(M, N, ackermann_in_gga(M, N, X1)) U74_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) U72_gg(M, N, X7, =_out_ag(X8, succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(succ(zero))))))))))))))))))))))))) -> U75_gg(M, N, isLess_in_gg(X7, X8)) U75_gg(M, N, isLess_out_gg(X7, X8)) -> U76_gg(M, N, ackermann_in_gga(M, N, X1)) U76_gg(M, N, ackermann_out_gga(M, N, X1)) -> main_out_gg(M, N) The argument filtering Pi contains the following mapping: main_in_gg(x1, x2) = main_in_gg(x1, x2) U1_gg(x1, x2, x3) = U1_gg(x1, x2, x3) =_in_ag(x1, x2) = =_in_ag(x2) =_out_ag(x1, x2) = =_out_ag(x1) U2_gg(x1, x2, x3, x4) = U2_gg(x1, x2, x3, x4) zero = zero U3_gg(x1, x2, x3) = U3_gg(x1, x2, x3) 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) U128_gg(x1, x2, x3) = U128_gg(x3) U129_gg(x1, x2, x3) = U129_gg(x3) U4_gg(x1, x2, x3) = U4_gg(x1, x2, x3) U5_gg(x1, x2, x3, x4) = U5_gg(x1, x2, x3, x4) U6_gg(x1, x2, x3) = U6_gg(x1, x2, x3) =_in_gg(x1, x2) = =_in_gg(x1, x2) =_out_gg(x1, x2) = =_out_gg U7_gg(x1, x2, x3) = U7_gg(x1, x2, x3) U8_gg(x1, x2, x3, x4) = U8_gg(x1, x2, x3, x4) U9_gg(x1, x2, x3) = U9_gg(x1, x2, x3) U10_gg(x1, x2, x3) = U10_gg(x1, x2, x3) U11_gg(x1, x2, x3, x4) = U11_gg(x1, x2, x3, x4) U12_gg(x1, x2, x3) = U12_gg(x1, x2, x3) U13_gg(x1, x2, x3) = U13_gg(x3) ackermann_in_gga(x1, x2, x3) = ackermann_in_gga(x1, x2) U77_gga(x1, x2, x3, x4) = U77_gga(x2, x4) U78_gga(x1, x2, x3, x4, x5) = U78_gga(x2, x4, x5) U79_gga(x1, x2, x3, x4) = U79_gga(x2, x4) U80_gga(x1, x2, x3, x4) = U80_gga(x4) isPlus_in_gga(x1, x2, x3) = isPlus_in_gga(x1, x2) isPlus_out_gga(x1, x2, x3) = isPlus_out_gga(x3) U95_gga(x1, x2, x3, x4) = U95_gga(x4) U96_gga(x1, x2, x3, x4) = U96_gga(x4) U97_gga(x1, x2, x3, x4) = U97_gga(x4) U98_gga(x1, x2, x3, x4) = U98_gga(x4) U81_gga(x1, x2, x3, x4) = U81_gga(x4) ackermann_out_gga(x1, x2, x3) = ackermann_out_gga(x3) U82_gga(x1, x2, x3, x4) = U82_gga(x1, x4) U83_gga(x1, x2, x3, x4, x5) = U83_gga(x1, x4, x5) U84_gga(x1, x2, x3, x4) = U84_gga(x1, x4) U85_gga(x1, x2, x3, x4) = U85_gga(x4) isMinus_in_gga(x1, x2, x3) = isMinus_in_gga(x1, x2) isMinus_out_gga(x1, x2, x3) = isMinus_out_gga(x3) U99_gga(x1, x2, x3) = U99_gga(x3) U100_gga(x1, x2, x3) = U100_gga(x3) U101_gga(x1, x2, x3, x4) = U101_gga(x4) U102_gga(x1, x2, x3, x4) = U102_gga(x4) U103_gga(x1, x2, x3, x4) = U103_gga(x4) U104_gga(x1, x2, x3, x4) = U104_gga(x4) U86_gga(x1, x2, x3, x4) = U86_gga(x4) U87_gga(x1, x2, x3, x4) = U87_gga(x4) U88_gga(x1, x2, x3, x4) = U88_gga(x1, x4) U89_gga(x1, x2, x3, x4, x5) = U89_gga(x1, x4, x5) U90_gga(x1, x2, x3, x4, x5) = U90_gga(x1, x4, x5) U91_gga(x1, x2, x3, x4, x5, x6) = U91_gga(x4, x5, x6) isMinus_in_ggg(x1, x2, x3) = isMinus_in_ggg(x1, x2, x3) isMinus_out_ggg(x1, x2, x3) = isMinus_out_ggg U99_ggg(x1, x2, x3) = U99_ggg(x3) U100_ggg(x1, x2, x3) = U100_ggg(x3) U101_ggg(x1, x2, x3, x4) = U101_ggg(x4) U102_ggg(x1, x2, x3, x4) = U102_ggg(x4) U103_ggg(x1, x2, x3, x4) = U103_ggg(x4) U104_ggg(x1, x2, x3, x4) = U104_ggg(x4) U92_gga(x1, x2, x3, x4, x5) = U92_gga(x4, x5) U93_gga(x1, x2, x3, x4) = U93_gga(x4) U94_gga(x1, x2, x3, x4) = U94_gga(x4) main_out_gg(x1, x2) = main_out_gg U14_gg(x1, x2, x3) = U14_gg(x1, x2, x3) isLess_in_gg(x1, x2) = isLess_in_gg(x1, x2) isLess_out_gg(x1, x2) = isLess_out_gg U130_gg(x1, x2, x3) = U130_gg(x3) U131_gg(x1, x2, x3) = U131_gg(x3) U15_gg(x1, x2, x3) = U15_gg(x3) U16_gg(x1, x2, x3) = U16_gg(x1, x2, x3) U17_gg(x1, x2, x3) = U17_gg(x1, x2, x3) U18_gg(x1, x2, x3, x4) = U18_gg(x1, x2, x3, x4) U19_gg(x1, x2, x3) = U19_gg(x1, x2, x3) U20_gg(x1, x2, x3) = U20_gg(x3) U21_gg(x1, x2, x3) = U21_gg(x1, x2, x3) U22_gg(x1, x2, x3) = U22_gg(x3) U23_gg(x1, x2, x3) = U23_gg(x1, x2, x3) U24_gg(x1, x2, x3) = U24_gg(x1, x2, x3) U25_gg(x1, x2, x3, x4) = U25_gg(x1, x2, x3, x4) U26_gg(x1, x2, x3) = U26_gg(x1, x2, x3) U27_gg(x1, x2, x3) = U27_gg(x1, x2, x3) U28_gg(x1, x2, x3, x4) = U28_gg(x1, x2, x3, x4) U29_gg(x1, x2, x3) = U29_gg(x1, x2, x3) U30_gg(x1, x2, x3) = U30_gg(x3) U31_gg(x1, x2, x3) = U31_gg(x1, x2, x3) U32_gg(x1, x2, x3) = U32_gg(x3) U33_gg(x1, x2, x3) = U33_gg(x1, x2, x3) U34_gg(x1, x2, x3) = U34_gg(x1, x2, x3) U35_gg(x1, x2, x3, x4) = U35_gg(x1, x2, x3, x4) U36_gg(x1, x2, x3) = U36_gg(x1, x2, x3) U37_gg(x1, x2, x3) = U37_gg(x3) U38_gg(x1, x2, x3) = U38_gg(x1, x2, x3) U39_gg(x1, x2, x3) = U39_gg(x3) U40_gg(x1, x2, x3) = U40_gg(x1, x2, x3) U41_gg(x1, x2, x3) = U41_gg(x1, x2, x3) U42_gg(x1, x2, x3, x4) = U42_gg(x1, x2, x3, x4) U43_gg(x1, x2, x3) = U43_gg(x1, x2, x3) U44_gg(x1, x2, x3) = U44_gg(x1, x2, x3) U45_gg(x1, x2, x3, x4) = U45_gg(x1, x2, x3, x4) U46_gg(x1, x2, x3) = U46_gg(x1, x2, x3) U47_gg(x1, x2, x3) = U47_gg(x1, x2, x3) U48_gg(x1, x2, x3, x4) = U48_gg(x1, x2, x3, x4) U49_gg(x1, x2, x3) = U49_gg(x1, x2, x3) U50_gg(x1, x2, x3) = U50_gg(x3) U51_gg(x1, x2, x3) = U51_gg(x1, x2, x3) U52_gg(x1, x2, x3) = U52_gg(x3) U53_gg(x1, x2, x3) = U53_gg(x1, x2, x3) U54_gg(x1, x2, x3) = U54_gg(x1, x2, x3) U55_gg(x1, x2, x3, x4) = U55_gg(x1, x2, x3, x4) U56_gg(x1, x2, x3) = U56_gg(x1, x2, x3) U57_gg(x1, x2, x3) = U57_gg(x3) U58_gg(x1, x2, x3) = U58_gg(x1, x2, x3) U59_gg(x1, x2, x3) = U59_gg(x3) U60_gg(x1, x2, x3) = U60_gg(x1, x2, x3) U61_gg(x1, x2, x3) = U61_gg(x1, x2, x3) U62_gg(x1, x2, x3, x4) = U62_gg(x1, x2, x3, x4) U63_gg(x1, x2, x3) = U63_gg(x1, x2, x3) U64_gg(x1, x2, x3) = U64_gg(x1, x2, x3) U65_gg(x1, x2, x3, x4) = U65_gg(x1, x2, x3, x4) U66_gg(x1, x2, x3) = U66_gg(x1, x2, x3) U67_gg(x1, x2, x3) = U67_gg(x3) U68_gg(x1, x2, x3) = U68_gg(x1, x2, x3) U69_gg(x1, x2, x3) = U69_gg(x3) U70_gg(x1, x2, x3) = U70_gg(x1, x2, x3) U71_gg(x1, x2, x3) = U71_gg(x1, x2, x3) U72_gg(x1, x2, x3, x4) = U72_gg(x1, x2, x3, x4) U73_gg(x1, x2, x3) = U73_gg(x1, x2, x3) U74_gg(x1, x2, x3) = U74_gg(x3) U75_gg(x1, x2, x3) = U75_gg(x1, x2, x3) U76_gg(x1, x2, x3) = U76_gg(x3) ISGREATER_IN_GG(x1, x2) = ISGREATER_IN_GG(x1, x2) We have to consider all (P,R,Pi)-chains ---------------------------------------- (125) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (126) 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 ---------------------------------------- (127) PrologToDTProblemTransformerProof (SOUND) Built DT problem from termination graph DT10. { "root": 3, "program": { "directives": [], "clauses": [ [ "(main M N)", "(',' (>= M (0)) (',' (=< M (3)) (',' (>= N (0)) (',' (=< N (23)) (ackermann M N X1)))))" ], [ "(ackermann M N Ret)", "(',' (=:= M (0)) (',' (!) (is Ret (+ N (1)))))" ], [ "(ackermann M N Ret)", "(',' (=:= N (0)) (',' (!) (',' (is M1 (- M (1))) (ackermann M1 (1) Ret))))" ], [ "(ackermann M N Ret)", "(',' (!) (',' (is N1 (- N (1))) (',' (ackermann M N1 Ret1) (',' (is M1 (- M (1))) (',' (ackermann M1 Ret1 Ret2) (is Ret Ret2))))))" ] ] }, "graph": { "nodes": { "66": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": ">" }] }, "ground": [ "T5", "T6" ], "free": ["X6"], "exprvars": ["T5"] } }, "67": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (>= T6 (0)) (',' (=< T6 (23)) (ackermann T5 T6 X6)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" } ] }, "ground": [ "T5", "T6" ], "free": ["X6"], "exprvars": ["T5"] } }, "68": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": ">" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T5", "T6" ], "free": ["X6"], "exprvars": ["T5"] } }, "69": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "type": "Nodes", "4707": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "4708": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann T36 T33 X60) (is X61 X60))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T28", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }] }, "ground": [ "T36", "T28", "T33" ], "free": [ "X61", "X59", "X60" ], "exprvars": [ "T36", "T28" ] } }, "2764": { "goal": [ { "clause": 2, "scope": 2, "term": "(ackermann T11 T12 X6)" }, { "clause": 3, "scope": 2, "term": "(ackermann T11 T12 X6)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T12", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T12", "T11" ], "free": [ "X6", "X18" ], "exprvars": [ "T5", "T6", "T12", "T11" ] } }, "4709": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T36 T33 X60)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T36", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T28", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }] }, "ground": [ "T36", "T33" ], "free": ["X60"], "exprvars": [ "T36", "T28" ] } }, "4224": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (!_2) (',' (is X57 (- T29 (1))) (',' (ackermann T28 X57 X58) (',' (is X59 (- T28 (1))) (',' (ackermann X59 X58 X60) (is X61 X60))))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T12", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T28", "T29" ], "free": [ "X61", "X57", "X58", "X59", "X60" ], "exprvars": [ "T5", "T6", "T29", "T12", "T28", "T11" ] } }, "757": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T5 T6 X6)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T5", "T6" ], "free": ["X6"], "exprvars": [ "T5", "T6" ] } }, "4225": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X57 (- T29 (1))) (',' (ackermann T28 X57 X58) (',' (is X59 (- T28 (1))) (',' (ackermann X59 X58 X60) (is X61 X60)))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T12", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T28", "T29" ], "free": [ "X61", "X57", "X58", "X59", "X60" ], "exprvars": [ "T5", "T6", "T29", "T12", "T28", "T11" ] } }, "4720": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T42", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T39", "type": "PlainIntegerVariable" }, "operation": "=" }] }, "ground": [], "free": [], "exprvars": [ "T42", "T39" ] } }, "758": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": ">" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T5", "T6" ], "free": ["X6"], "exprvars": [ "T5", "T6" ] } }, "4226": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann T28 T30 X58) (',' (is X59 (- T28 (1))) (',' (ackermann X59 X58 X60) (is X61 X60))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T29", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T12", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T30", "T29", "T28" ], "free": [ "X61", "X57", "X58", "X59", "X60" ], "exprvars": [ "T5", "T30", "T6", "T29", "T12", "T28", "T11" ] } }, "759": { "goal": [ { "clause": 1, "scope": 2, "term": "(ackermann T5 T6 X6)" }, { "clause": 2, "scope": 2, "term": "(ackermann T5 T6 X6)" }, { "clause": 3, "scope": 2, "term": "(ackermann T5 T6 X6)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T5", "T6" ], "free": ["X6"], "exprvars": [ "T5", "T6" ] } }, "4227": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T28 T30 X58)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T30", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T29", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T12", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T30", "T28" ], "free": ["X58"], "exprvars": [ "T5", "T30", "T6", "T29", "T12", "T28", "T11" ] } }, "4228": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X59 (- T28 (1))) (',' (ackermann X59 T33 X60) (is X61 X60)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T28", "T33" ], "free": [ "X61", "X59", "X60" ], "exprvars": [] } }, "10": { "goal": [{ "clause": 0, "scope": 1, "term": "(main T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "11": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (>= T5 (0)) (',' (=< T5 (3)) (',' (>= T6 (0)) (',' (=< T6 (23)) (ackermann T5 T6 X6)))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T5", "T6" ], "free": ["X6"], "exprvars": [] } }, "12": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3705": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "=" }, { "lhs": { "name": "T13", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T12", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T12", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T13", "T12" ], "free": ["X18"], "exprvars": [ "T5", "T13", "T6", "T12", "T11" ] } }, "3706": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "=" }, { "lhs": { "name": "T13", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T12", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T12", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [], "free": [], "exprvars": [ "T5", "T13", "T6", "T12", "T11" ] } }, "4718": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "3": { "goal": [{ "clause": -1, "scope": -1, "term": "(main T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "3707": { "goal": [{ "clause": 2, "scope": 2, "term": "(ackermann T11 T12 X6)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T12", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T12", "T11" ], "free": ["X6"], "exprvars": [ "T5", "T6", "T12", "T11" ] } }, "4719": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T42", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T39", "type": "PlainIntegerVariable" }, "operation": "=" }] }, "ground": [ "T42", "T39" ], "free": ["X61"], "exprvars": [ "T42", "T39" ] } }, "3708": { "goal": [{ "clause": 3, "scope": 2, "term": "(ackermann T11 T12 X6)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T12", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T12", "T11" ], "free": ["X6"], "exprvars": [ "T5", "T6", "T12", "T11" ] } }, "1025": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (=:= T11 (0)) (',' (!_2) (is X18 (+ T12 (1)))))" }, { "clause": 2, "scope": 2, "term": "(ackermann T11 T12 X6)" }, { "clause": 3, "scope": 2, "term": "(ackermann T11 T12 X6)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T12", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T11", "T12" ], "free": [ "X6", "X18" ], "exprvars": [ "T5", "T6", "T12", "T11" ] } }, "2752": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_2) (is X18 (+ T12 (1))))" }, { "clause": 2, "scope": 2, "term": "(ackermann T11 T12 X6)" }, { "clause": 3, "scope": 2, "term": "(ackermann T11 T12 X6)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T12", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T12", "T11" ], "free": [ "X6", "X18" ], "exprvars": [ "T5", "T6", "T12", "T11" ] } }, "3709": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (=:= T23 (0)) (',' (!_2) (',' (is X40 (- T22 (1))) (ackermann X40 (1) X41))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T12", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T22", "T23" ], "free": [ "X41", "X40" ], "exprvars": [ "T5", "T6", "T12", "T23", "T11", "T22" ] } }, "2773": { "goal": [{ "clause": -1, "scope": -1, "term": "(is X18 (+ T12 (1)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T6", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T11", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T12", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": ["T12"], "free": ["X18"], "exprvars": [ "T5", "T6", "T12", "T11" ] } }, "4710": { "goal": [{ "clause": -1, "scope": -1, "term": "(is X61 T39)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T39"], "free": ["X61"], "exprvars": [] } }, "628": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (=< T6 (23)) (ackermann T5 T6 X6))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T5", "T6" ], "free": ["X6"], "exprvars": [ "T5", "T6" ] } }, "629": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T6", "type": "PlainIntegerVariable" }, "operation": ">" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T5", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" } ] }, "ground": [ "T5", "T6" ], "free": ["X6"], "exprvars": [ "T5", "T6" ] } }, "65": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (=< T5 (3)) (',' (>= T6 (0)) (',' (=< T6 (23)) (ackermann T5 T6 X6))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T5", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": [ "T5", "T6" ], "free": ["X6"], "exprvars": ["T5"] } } }, "edges": [ { "from": 3, "to": 10, "label": "CASE" }, { "from": 10, "to": 11, "label": "ONLY EVAL with clause\nmain(X4, X5) :- ','(>=(X4, 0), ','(=<(X4, 3), ','(>=(X5, 0), ','(=<(X5, 23), ackermann(X4, X5, X6))))).\nand substitutionT1 -> T5,\nX4 -> T5,\nT2 -> T6,\nX5 -> T6" }, { "from": 11, "to": 12, "label": "IS ERROR" }, { "from": 11, "to": 65, "label": "ARITHCOMP SUCCESS" }, { "from": 11, "to": 66, "label": "ARITHCOMP FAIL" }, { "from": 65, "to": 67, "label": "ARITHCOMP SUCCESS" }, { "from": 65, "to": 68, "label": "ARITHCOMP FAIL" }, { "from": 67, "to": 69, "label": "IS ERROR" }, { "from": 67, "to": 628, "label": "ARITHCOMP SUCCESS" }, { "from": 67, "to": 629, "label": "ARITHCOMP FAIL" }, { "from": 628, "to": 757, "label": "ARITHCOMP SUCCESS" }, { "from": 628, "to": 758, "label": "ARITHCOMP FAIL" }, { "from": 757, "to": 759, "label": "CASE" }, { "from": 759, "to": 1025, "label": "ONLY EVAL with clause\nackermann(X15, X16, X17) :- ','(=:=(X15, 0), ','(!_2, is(X17, +(X16, 1)))).\nand substitutionT5 -> T11,\nX15 -> T11,\nT6 -> T12,\nX16 -> T12,\nX6 -> X18,\nX17 -> X18" }, { "from": 1025, "to": 2752, "label": "ARITHCOMP SUCCESS" }, { "from": 1025, "to": 2764, "label": "ARITHCOMP FAIL" }, { "from": 2752, "to": 2773, "label": "CUT" }, { "from": 2764, "to": 3707, "label": "PARALLEL" }, { "from": 2764, "to": 3708, "label": "PARALLEL" }, { "from": 2773, "to": 3705, "label": "\nX18 -> T13" }, { "from": 3705, "to": 3706, "label": "SUCCESS" }, { "from": 3707, "to": 3709, "label": "ONLY EVAL with clause\nackermann(X37, X38, X39) :- ','(=:=(X38, 0), ','(!_2, ','(is(X40, -(X37, 1)), ackermann(X40, 1, X39)))).\nand substitutionT11 -> T22,\nX37 -> T22,\nT12 -> T23,\nX38 -> T23,\nX6 -> X41,\nX39 -> X41" }, { "from": 3708, "to": 4224, "label": "ONLY EVAL with clause\nackermann(X54, X55, X56) :- ','(!_2, ','(is(X57, -(X55, 1)), ','(ackermann(X54, X57, X58), ','(is(X59, -(X54, 1)), ','(ackermann(X59, X58, X60), is(X56, X60)))))).\nand substitutionT11 -> T28,\nX54 -> T28,\nT12 -> T29,\nX55 -> T29,\nX6 -> X61,\nX56 -> X61" }, { "from": 4224, "to": 4225, "label": "CUT" }, { "from": 4225, "to": 4226, "label": "\nX57 -> T30" }, { "from": 4226, "to": 4227, "label": "SPLIT 1" }, { "from": 4226, "to": 4228, "label": "SPLIT 2\nnew knowledge:\nT28 is ground\nT30 is ground\nT33 is ground\nreplacements:X58 -> T33" }, { "from": 4227, "to": 757, "label": "INSTANCE with matching:\nT5 -> T28\nT6 -> T30\nX6 -> X58" }, { "from": 4228, "to": 4707, "label": "IS ERROR" }, { "from": 4228, "to": 4708, "label": "\nX59 -> T36" }, { "from": 4708, "to": 4709, "label": "SPLIT 1" }, { "from": 4708, "to": 4710, "label": "SPLIT 2\nnew knowledge:\nT36 is ground\nT33 is ground\nT39 is ground\nreplacements:X60 -> T39" }, { "from": 4709, "to": 757, "label": "INSTANCE with matching:\nT5 -> T36\nT6 -> T33\nX6 -> X60" }, { "from": 4710, "to": 4718, "label": "IS ERROR" }, { "from": 4710, "to": 4719, "label": "\nX61 -> T42" }, { "from": 4719, "to": 4720, "label": "SUCCESS" } ], "type": "Graph" } } ---------------------------------------- (128) Obligation: Triples: ackermannA(X1, X2, X3) :- ackermannA(X1, X4, X5). ackermannA(X1, X2, X3) :- ','(ackermanncA(X1, X4, X5), ackermannA(X6, X5, X7)). mainB(X1, X2) :- ackermannA(X1, X2, X3). Clauses: ackermanncA(X1, X2, X3). ackermanncA(X1, X2, X3) :- ','(ackermanncA(X1, X4, X5), ackermanncA(X6, X5, X7)). Afs: mainB(x1, x2) = mainB(x1, x2) ---------------------------------------- (129) TriplesToPiDPProof (SOUND) We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes: mainB_in_2: (b,b) ackermannA_in_3: (b,b,f) (b,f,f) (f,f,f) ackermanncA_in_3: (b,f,f) (f,f,f) Transforming TRIPLES into the following Term Rewriting System: Pi DP problem: The TRS P consists of the following rules: MAINB_IN_GG(X1, X2) -> U4_GG(X1, X2, ackermannA_in_gga(X1, X2, X3)) MAINB_IN_GG(X1, X2) -> ACKERMANNA_IN_GGA(X1, X2, X3) ACKERMANNA_IN_GGA(X1, X2, X3) -> U1_GGA(X1, X2, X3, ackermannA_in_gaa(X1, X4, X5)) ACKERMANNA_IN_GGA(X1, X2, X3) -> ACKERMANNA_IN_GAA(X1, X4, X5) ACKERMANNA_IN_GAA(X1, X2, X3) -> U1_GAA(X1, X2, X3, ackermannA_in_gaa(X1, X4, X5)) ACKERMANNA_IN_GAA(X1, X2, X3) -> ACKERMANNA_IN_GAA(X1, X4, X5) ACKERMANNA_IN_GAA(X1, X2, X3) -> U2_GAA(X1, X2, X3, ackermanncA_in_gaa(X1, X4, X5)) U2_GAA(X1, X2, X3, ackermanncA_out_gaa(X1, X4, X5)) -> U3_GAA(X1, X2, X3, ackermannA_in_aaa(X6, X5, X7)) U2_GAA(X1, X2, X3, ackermanncA_out_gaa(X1, X4, X5)) -> ACKERMANNA_IN_AAA(X6, X5, X7) ACKERMANNA_IN_AAA(X1, X2, X3) -> U1_AAA(X1, X2, X3, ackermannA_in_aaa(X1, X4, X5)) ACKERMANNA_IN_AAA(X1, X2, X3) -> ACKERMANNA_IN_AAA(X1, X4, X5) ACKERMANNA_IN_AAA(X1, X2, X3) -> U2_AAA(X1, X2, X3, ackermanncA_in_aaa(X1, X4, X5)) U2_AAA(X1, X2, X3, ackermanncA_out_aaa(X1, X4, X5)) -> U3_AAA(X1, X2, X3, ackermannA_in_aaa(X6, X5, X7)) U2_AAA(X1, X2, X3, ackermanncA_out_aaa(X1, X4, X5)) -> ACKERMANNA_IN_AAA(X6, X5, X7) ACKERMANNA_IN_GGA(X1, X2, X3) -> U2_GGA(X1, X2, X3, ackermanncA_in_gaa(X1, X4, X5)) U2_GGA(X1, X2, X3, ackermanncA_out_gaa(X1, X4, X5)) -> U3_GGA(X1, X2, X3, ackermannA_in_aaa(X6, X5, X7)) U2_GGA(X1, X2, X3, ackermanncA_out_gaa(X1, X4, X5)) -> ACKERMANNA_IN_AAA(X6, X5, X7) The TRS R consists of the following rules: ackermanncA_in_gaa(X1, X2, X3) -> ackermanncA_out_gaa(X1, X2, X3) ackermanncA_in_gaa(X1, X2, X3) -> U6_gaa(X1, X2, X3, ackermanncA_in_gaa(X1, X4, X5)) U6_gaa(X1, X2, X3, ackermanncA_out_gaa(X1, X4, X5)) -> U7_gaa(X1, X2, X3, X4, X5, ackermanncA_in_aaa(X6, X5, X7)) ackermanncA_in_aaa(X1, X2, X3) -> ackermanncA_out_aaa(X1, X2, X3) ackermanncA_in_aaa(X1, X2, X3) -> U6_aaa(X1, X2, X3, ackermanncA_in_aaa(X1, X4, X5)) U6_aaa(X1, X2, X3, ackermanncA_out_aaa(X1, X4, X5)) -> U7_aaa(X1, X2, X3, X4, X5, ackermanncA_in_aaa(X6, X5, X7)) U7_aaa(X1, X2, X3, X4, X5, ackermanncA_out_aaa(X6, X5, X7)) -> ackermanncA_out_aaa(X1, X2, X3) U7_gaa(X1, X2, X3, X4, X5, ackermanncA_out_aaa(X6, X5, X7)) -> ackermanncA_out_gaa(X1, X2, X3) The argument filtering Pi contains the following mapping: ackermannA_in_gga(x1, x2, x3) = ackermannA_in_gga(x1, x2) ackermannA_in_gaa(x1, x2, x3) = ackermannA_in_gaa(x1) ackermanncA_in_gaa(x1, x2, x3) = ackermanncA_in_gaa(x1) ackermanncA_out_gaa(x1, x2, x3) = ackermanncA_out_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4, x5, x6) = U7_gaa(x1, x6) ackermanncA_in_aaa(x1, x2, x3) = ackermanncA_in_aaa ackermanncA_out_aaa(x1, x2, x3) = ackermanncA_out_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) U7_aaa(x1, x2, x3, x4, x5, x6) = U7_aaa(x6) ackermannA_in_aaa(x1, x2, x3) = ackermannA_in_aaa MAINB_IN_GG(x1, x2) = MAINB_IN_GG(x1, x2) U4_GG(x1, x2, x3) = U4_GG(x1, x2, x3) ACKERMANNA_IN_GGA(x1, x2, x3) = ACKERMANNA_IN_GGA(x1, x2) U1_GGA(x1, x2, x3, x4) = U1_GGA(x1, x2, x4) ACKERMANNA_IN_GAA(x1, x2, x3) = ACKERMANNA_IN_GAA(x1) U1_GAA(x1, x2, x3, x4) = U1_GAA(x1, x4) U2_GAA(x1, x2, x3, x4) = U2_GAA(x1, x4) U3_GAA(x1, x2, x3, x4) = U3_GAA(x1, x4) ACKERMANNA_IN_AAA(x1, x2, x3) = ACKERMANNA_IN_AAA U1_AAA(x1, x2, x3, x4) = U1_AAA(x4) U2_AAA(x1, x2, x3, x4) = U2_AAA(x4) U3_AAA(x1, x2, x3, x4) = U3_AAA(x4) U2_GGA(x1, x2, x3, x4) = U2_GGA(x1, x2, x4) U3_GGA(x1, x2, x3, x4) = U3_GGA(x1, x2, x4) We have to consider all (P,R,Pi)-chains Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES ---------------------------------------- (130) Obligation: Pi DP problem: The TRS P consists of the following rules: MAINB_IN_GG(X1, X2) -> U4_GG(X1, X2, ackermannA_in_gga(X1, X2, X3)) MAINB_IN_GG(X1, X2) -> ACKERMANNA_IN_GGA(X1, X2, X3) ACKERMANNA_IN_GGA(X1, X2, X3) -> U1_GGA(X1, X2, X3, ackermannA_in_gaa(X1, X4, X5)) ACKERMANNA_IN_GGA(X1, X2, X3) -> ACKERMANNA_IN_GAA(X1, X4, X5) ACKERMANNA_IN_GAA(X1, X2, X3) -> U1_GAA(X1, X2, X3, ackermannA_in_gaa(X1, X4, X5)) ACKERMANNA_IN_GAA(X1, X2, X3) -> ACKERMANNA_IN_GAA(X1, X4, X5) ACKERMANNA_IN_GAA(X1, X2, X3) -> U2_GAA(X1, X2, X3, ackermanncA_in_gaa(X1, X4, X5)) U2_GAA(X1, X2, X3, ackermanncA_out_gaa(X1, X4, X5)) -> U3_GAA(X1, X2, X3, ackermannA_in_aaa(X6, X5, X7)) U2_GAA(X1, X2, X3, ackermanncA_out_gaa(X1, X4, X5)) -> ACKERMANNA_IN_AAA(X6, X5, X7) ACKERMANNA_IN_AAA(X1, X2, X3) -> U1_AAA(X1, X2, X3, ackermannA_in_aaa(X1, X4, X5)) ACKERMANNA_IN_AAA(X1, X2, X3) -> ACKERMANNA_IN_AAA(X1, X4, X5) ACKERMANNA_IN_AAA(X1, X2, X3) -> U2_AAA(X1, X2, X3, ackermanncA_in_aaa(X1, X4, X5)) U2_AAA(X1, X2, X3, ackermanncA_out_aaa(X1, X4, X5)) -> U3_AAA(X1, X2, X3, ackermannA_in_aaa(X6, X5, X7)) U2_AAA(X1, X2, X3, ackermanncA_out_aaa(X1, X4, X5)) -> ACKERMANNA_IN_AAA(X6, X5, X7) ACKERMANNA_IN_GGA(X1, X2, X3) -> U2_GGA(X1, X2, X3, ackermanncA_in_gaa(X1, X4, X5)) U2_GGA(X1, X2, X3, ackermanncA_out_gaa(X1, X4, X5)) -> U3_GGA(X1, X2, X3, ackermannA_in_aaa(X6, X5, X7)) U2_GGA(X1, X2, X3, ackermanncA_out_gaa(X1, X4, X5)) -> ACKERMANNA_IN_AAA(X6, X5, X7) The TRS R consists of the following rules: ackermanncA_in_gaa(X1, X2, X3) -> ackermanncA_out_gaa(X1, X2, X3) ackermanncA_in_gaa(X1, X2, X3) -> U6_gaa(X1, X2, X3, ackermanncA_in_gaa(X1, X4, X5)) U6_gaa(X1, X2, X3, ackermanncA_out_gaa(X1, X4, X5)) -> U7_gaa(X1, X2, X3, X4, X5, ackermanncA_in_aaa(X6, X5, X7)) ackermanncA_in_aaa(X1, X2, X3) -> ackermanncA_out_aaa(X1, X2, X3) ackermanncA_in_aaa(X1, X2, X3) -> U6_aaa(X1, X2, X3, ackermanncA_in_aaa(X1, X4, X5)) U6_aaa(X1, X2, X3, ackermanncA_out_aaa(X1, X4, X5)) -> U7_aaa(X1, X2, X3, X4, X5, ackermanncA_in_aaa(X6, X5, X7)) U7_aaa(X1, X2, X3, X4, X5, ackermanncA_out_aaa(X6, X5, X7)) -> ackermanncA_out_aaa(X1, X2, X3) U7_gaa(X1, X2, X3, X4, X5, ackermanncA_out_aaa(X6, X5, X7)) -> ackermanncA_out_gaa(X1, X2, X3) The argument filtering Pi contains the following mapping: ackermannA_in_gga(x1, x2, x3) = ackermannA_in_gga(x1, x2) ackermannA_in_gaa(x1, x2, x3) = ackermannA_in_gaa(x1) ackermanncA_in_gaa(x1, x2, x3) = ackermanncA_in_gaa(x1) ackermanncA_out_gaa(x1, x2, x3) = ackermanncA_out_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4, x5, x6) = U7_gaa(x1, x6) ackermanncA_in_aaa(x1, x2, x3) = ackermanncA_in_aaa ackermanncA_out_aaa(x1, x2, x3) = ackermanncA_out_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) U7_aaa(x1, x2, x3, x4, x5, x6) = U7_aaa(x6) ackermannA_in_aaa(x1, x2, x3) = ackermannA_in_aaa MAINB_IN_GG(x1, x2) = MAINB_IN_GG(x1, x2) U4_GG(x1, x2, x3) = U4_GG(x1, x2, x3) ACKERMANNA_IN_GGA(x1, x2, x3) = ACKERMANNA_IN_GGA(x1, x2) U1_GGA(x1, x2, x3, x4) = U1_GGA(x1, x2, x4) ACKERMANNA_IN_GAA(x1, x2, x3) = ACKERMANNA_IN_GAA(x1) U1_GAA(x1, x2, x3, x4) = U1_GAA(x1, x4) U2_GAA(x1, x2, x3, x4) = U2_GAA(x1, x4) U3_GAA(x1, x2, x3, x4) = U3_GAA(x1, x4) ACKERMANNA_IN_AAA(x1, x2, x3) = ACKERMANNA_IN_AAA U1_AAA(x1, x2, x3, x4) = U1_AAA(x4) U2_AAA(x1, x2, x3, x4) = U2_AAA(x4) U3_AAA(x1, x2, x3, x4) = U3_AAA(x4) U2_GGA(x1, x2, x3, x4) = U2_GGA(x1, x2, x4) U3_GGA(x1, x2, x3, x4) = U3_GGA(x1, x2, x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (131) DependencyGraphProof (EQUIVALENT) The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 13 less nodes. ---------------------------------------- (132) Complex Obligation (AND) ---------------------------------------- (133) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANNA_IN_AAA(X1, X2, X3) -> U2_AAA(X1, X2, X3, ackermanncA_in_aaa(X1, X4, X5)) U2_AAA(X1, X2, X3, ackermanncA_out_aaa(X1, X4, X5)) -> ACKERMANNA_IN_AAA(X6, X5, X7) ACKERMANNA_IN_AAA(X1, X2, X3) -> ACKERMANNA_IN_AAA(X1, X4, X5) The TRS R consists of the following rules: ackermanncA_in_gaa(X1, X2, X3) -> ackermanncA_out_gaa(X1, X2, X3) ackermanncA_in_gaa(X1, X2, X3) -> U6_gaa(X1, X2, X3, ackermanncA_in_gaa(X1, X4, X5)) U6_gaa(X1, X2, X3, ackermanncA_out_gaa(X1, X4, X5)) -> U7_gaa(X1, X2, X3, X4, X5, ackermanncA_in_aaa(X6, X5, X7)) ackermanncA_in_aaa(X1, X2, X3) -> ackermanncA_out_aaa(X1, X2, X3) ackermanncA_in_aaa(X1, X2, X3) -> U6_aaa(X1, X2, X3, ackermanncA_in_aaa(X1, X4, X5)) U6_aaa(X1, X2, X3, ackermanncA_out_aaa(X1, X4, X5)) -> U7_aaa(X1, X2, X3, X4, X5, ackermanncA_in_aaa(X6, X5, X7)) U7_aaa(X1, X2, X3, X4, X5, ackermanncA_out_aaa(X6, X5, X7)) -> ackermanncA_out_aaa(X1, X2, X3) U7_gaa(X1, X2, X3, X4, X5, ackermanncA_out_aaa(X6, X5, X7)) -> ackermanncA_out_gaa(X1, X2, X3) The argument filtering Pi contains the following mapping: ackermanncA_in_gaa(x1, x2, x3) = ackermanncA_in_gaa(x1) ackermanncA_out_gaa(x1, x2, x3) = ackermanncA_out_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4, x5, x6) = U7_gaa(x1, x6) ackermanncA_in_aaa(x1, x2, x3) = ackermanncA_in_aaa ackermanncA_out_aaa(x1, x2, x3) = ackermanncA_out_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) U7_aaa(x1, x2, x3, x4, x5, x6) = U7_aaa(x6) ACKERMANNA_IN_AAA(x1, x2, x3) = ACKERMANNA_IN_AAA U2_AAA(x1, x2, x3, x4) = U2_AAA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (134) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (135) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANNA_IN_AAA(X1, X2, X3) -> U2_AAA(X1, X2, X3, ackermanncA_in_aaa(X1, X4, X5)) U2_AAA(X1, X2, X3, ackermanncA_out_aaa(X1, X4, X5)) -> ACKERMANNA_IN_AAA(X6, X5, X7) ACKERMANNA_IN_AAA(X1, X2, X3) -> ACKERMANNA_IN_AAA(X1, X4, X5) The TRS R consists of the following rules: ackermanncA_in_aaa(X1, X2, X3) -> ackermanncA_out_aaa(X1, X2, X3) ackermanncA_in_aaa(X1, X2, X3) -> U6_aaa(X1, X2, X3, ackermanncA_in_aaa(X1, X4, X5)) U6_aaa(X1, X2, X3, ackermanncA_out_aaa(X1, X4, X5)) -> U7_aaa(X1, X2, X3, X4, X5, ackermanncA_in_aaa(X6, X5, X7)) U7_aaa(X1, X2, X3, X4, X5, ackermanncA_out_aaa(X6, X5, X7)) -> ackermanncA_out_aaa(X1, X2, X3) The argument filtering Pi contains the following mapping: ackermanncA_in_aaa(x1, x2, x3) = ackermanncA_in_aaa ackermanncA_out_aaa(x1, x2, x3) = ackermanncA_out_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) U7_aaa(x1, x2, x3, x4, x5, x6) = U7_aaa(x6) ACKERMANNA_IN_AAA(x1, x2, x3) = ACKERMANNA_IN_AAA U2_AAA(x1, x2, x3, x4) = U2_AAA(x4) We have to consider all (P,R,Pi)-chains ---------------------------------------- (136) PiDPToQDPProof (SOUND) Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi. ---------------------------------------- (137) Obligation: Q DP problem: The TRS P consists of the following rules: ACKERMANNA_IN_AAA -> U2_AAA(ackermanncA_in_aaa) U2_AAA(ackermanncA_out_aaa) -> ACKERMANNA_IN_AAA ACKERMANNA_IN_AAA -> ACKERMANNA_IN_AAA The TRS R consists of the following rules: ackermanncA_in_aaa -> ackermanncA_out_aaa ackermanncA_in_aaa -> U6_aaa(ackermanncA_in_aaa) U6_aaa(ackermanncA_out_aaa) -> U7_aaa(ackermanncA_in_aaa) U7_aaa(ackermanncA_out_aaa) -> ackermanncA_out_aaa The set Q consists of the following terms: ackermanncA_in_aaa U6_aaa(x0) U7_aaa(x0) We have to consider all (P,Q,R)-chains. ---------------------------------------- (138) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANNA_IN_GAA(X1, X2, X3) -> ACKERMANNA_IN_GAA(X1, X4, X5) The TRS R consists of the following rules: ackermanncA_in_gaa(X1, X2, X3) -> ackermanncA_out_gaa(X1, X2, X3) ackermanncA_in_gaa(X1, X2, X3) -> U6_gaa(X1, X2, X3, ackermanncA_in_gaa(X1, X4, X5)) U6_gaa(X1, X2, X3, ackermanncA_out_gaa(X1, X4, X5)) -> U7_gaa(X1, X2, X3, X4, X5, ackermanncA_in_aaa(X6, X5, X7)) ackermanncA_in_aaa(X1, X2, X3) -> ackermanncA_out_aaa(X1, X2, X3) ackermanncA_in_aaa(X1, X2, X3) -> U6_aaa(X1, X2, X3, ackermanncA_in_aaa(X1, X4, X5)) U6_aaa(X1, X2, X3, ackermanncA_out_aaa(X1, X4, X5)) -> U7_aaa(X1, X2, X3, X4, X5, ackermanncA_in_aaa(X6, X5, X7)) U7_aaa(X1, X2, X3, X4, X5, ackermanncA_out_aaa(X6, X5, X7)) -> ackermanncA_out_aaa(X1, X2, X3) U7_gaa(X1, X2, X3, X4, X5, ackermanncA_out_aaa(X6, X5, X7)) -> ackermanncA_out_gaa(X1, X2, X3) The argument filtering Pi contains the following mapping: ackermanncA_in_gaa(x1, x2, x3) = ackermanncA_in_gaa(x1) ackermanncA_out_gaa(x1, x2, x3) = ackermanncA_out_gaa(x1) U6_gaa(x1, x2, x3, x4) = U6_gaa(x1, x4) U7_gaa(x1, x2, x3, x4, x5, x6) = U7_gaa(x1, x6) ackermanncA_in_aaa(x1, x2, x3) = ackermanncA_in_aaa ackermanncA_out_aaa(x1, x2, x3) = ackermanncA_out_aaa U6_aaa(x1, x2, x3, x4) = U6_aaa(x4) U7_aaa(x1, x2, x3, x4, x5, x6) = U7_aaa(x6) ACKERMANNA_IN_GAA(x1, x2, x3) = ACKERMANNA_IN_GAA(x1) We have to consider all (P,R,Pi)-chains ---------------------------------------- (139) UsableRulesProof (EQUIVALENT) For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R. ---------------------------------------- (140) Obligation: Pi DP problem: The TRS P consists of the following rules: ACKERMANNA_IN_GAA(X1, X2, X3) -> ACKERMANNA_IN_GAA(X1, X4, X5) R is empty. The argument filtering Pi contains the following mapping: ACKERMANNA_IN_GAA(x1, x2, x3) = ACKERMANNA_IN_GAA(x1) We have to consider all (P,R,Pi)-chains ---------------------------------------- (141) PrologToIRSwTTransformerProof (SOUND) Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert { "root": 1, "program": { "directives": [], "clauses": [ [ "(main M N)", "(',' (>= M (0)) (',' (=< M (3)) (',' (>= N (0)) (',' (=< N (23)) (ackermann M N X1)))))" ], [ "(ackermann M N Ret)", "(',' (=:= M (0)) (',' (!) (is Ret (+ N (1)))))" ], [ "(ackermann M N Ret)", "(',' (=:= N (0)) (',' (!) (',' (is M1 (- M (1))) (ackermann M1 (1) Ret))))" ], [ "(ackermann M N Ret)", "(',' (!) (',' (is N1 (- N (1))) (',' (ackermann M N1 Ret1) (',' (is M1 (- M (1))) (',' (ackermann M1 Ret1 Ret2) (is Ret Ret2))))))" ] ] }, "graph": { "nodes": { "type": "Nodes", "755": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (=< T8 (23)) (ackermann T7 T8 X9))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T7", "T8" ], "free": ["X9"], "exprvars": [ "T7", "T8" ] } }, "1210": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": ">" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T7", "T8" ], "free": ["X9"], "exprvars": [ "T7", "T8" ] } }, "756": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": ">" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" } ] }, "ground": [ "T7", "T8" ], "free": ["X9"], "exprvars": [ "T7", "T8" ] } }, "4721": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "4700": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann T32 T34 X65) (',' (is X66 (- T32 (1))) (',' (ackermann X66 X65 X67) (is X68 X67))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T33", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T16", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T34", "T33", "T32" ], "free": [ "X68", "X64", "X65", "X66", "X67" ], "exprvars": [ "T34", "T7", "T33", "T8", "T16", "T32", "T15" ] } }, "4722": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T46", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T43", "type": "PlainIntegerVariable" }, "operation": "=" }] }, "ground": [ "T46", "T43" ], "free": ["X68"], "exprvars": [ "T46", "T43" ] } }, "4701": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T32 T34 X65)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T34", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T33", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T16", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T34", "T32" ], "free": ["X65"], "exprvars": [ "T34", "T7", "T33", "T8", "T16", "T32", "T15" ] } }, "4723": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T46", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T43", "type": "PlainIntegerVariable" }, "operation": "=" }] }, "ground": [], "free": [], "exprvars": [ "T46", "T43" ] } }, "4702": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X66 (- T32 (1))) (',' (ackermann X66 T37 X67) (is X68 X67)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T32", "T37" ], "free": [ "X68", "X66", "X67" ], "exprvars": [] } }, "13": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (=< T7 (3)) (',' (>= T8 (0)) (',' (=< T8 (23)) (ackermann T7 T8 X9))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }] }, "ground": [ "T7", "T8" ], "free": ["X9"], "exprvars": ["T7"] } }, "4460": { "goal": [{ "clause": -1, "scope": -1, "term": "(true)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "=" }, { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T16", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T16", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T17", "T16" ], "free": ["X25"], "exprvars": [ "T7", "T17", "T8", "T16", "T15" ] } }, "14": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": ">" }] }, "ground": [ "T7", "T8" ], "free": ["X9"], "exprvars": ["T7"] } }, "4461": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "=" }, { "lhs": { "name": "T17", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T16", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "+" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T16", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [], "free": [], "exprvars": [ "T7", "T17", "T8", "T16", "T15" ] } }, "4462": { "goal": [{ "clause": 2, "scope": 2, "term": "(ackermann T15 T16 X9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T16", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T16", "T15" ], "free": ["X9"], "exprvars": [ "T7", "T8", "T16", "T15" ] } }, "4463": { "goal": [{ "clause": 3, "scope": 2, "term": "(ackermann T15 T16 X9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T16", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T16", "T15" ], "free": ["X9"], "exprvars": [ "T7", "T8", "T16", "T15" ] } }, "4464": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (=:= T27 (0)) (',' (!_2) (',' (is X47 (- T26 (1))) (ackermann X47 (1) X48))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T16", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T26", "T27" ], "free": [ "X48", "X47" ], "exprvars": [ "T7", "T8", "T16", "T27", "T15", "T26" ] } }, "1": { "goal": [{ "clause": -1, "scope": -1, "term": "(main T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "2558": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (=:= T15 (0)) (',' (!_2) (is X25 (+ T16 (1)))))" }, { "clause": 2, "scope": 2, "term": "(ackermann T15 T16 X9)" }, { "clause": 3, "scope": 2, "term": "(ackermann T15 T16 X9)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T16", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T15", "T16" ], "free": [ "X9", "X25" ], "exprvars": [ "T7", "T8", "T16", "T15" ] } }, "2557": { "goal": [ { "clause": 1, "scope": 2, "term": "(ackermann T7 T8 X9)" }, { "clause": 2, "scope": 2, "term": "(ackermann T7 T8 X9)" }, { "clause": 3, "scope": 2, "term": "(ackermann T7 T8 X9)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T7", "T8" ], "free": ["X9"], "exprvars": [ "T7", "T8" ] } }, "5": { "goal": [{ "clause": 0, "scope": 1, "term": "(main T1 T2)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T1", "T2" ], "free": [], "exprvars": [] } }, "6": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (>= T7 (0)) (',' (=< T7 (3)) (',' (>= T8 (0)) (',' (=< T8 (23)) (ackermann T7 T8 X9)))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [ "T7", "T8" ], "free": ["X9"], "exprvars": [] } }, "7": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "602": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (>= T8 (0)) (',' (=< T8 (23)) (ackermann T7 T8 X9)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" } ] }, "ground": [ "T7", "T8" ], "free": ["X9"], "exprvars": ["T7"] } }, "4698": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (!_2) (',' (is X64 (- T33 (1))) (',' (ackermann T32 X64 X65) (',' (is X66 (- T32 (1))) (',' (ackermann X66 X65 X67) (is X68 X67))))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T16", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T32", "T33" ], "free": [ "X68", "X64", "X65", "X66", "X67" ], "exprvars": [ "T7", "T33", "T8", "T16", "T32", "T15" ] } }, "604": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": ">" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" } ] }, "ground": [ "T7", "T8" ], "free": ["X9"], "exprvars": ["T7"] } }, "4457": { "goal": [ { "clause": -1, "scope": -1, "term": "(',' (!_2) (is X25 (+ T16 (1))))" }, { "clause": 2, "scope": 2, "term": "(ackermann T15 T16 X9)" }, { "clause": 3, "scope": 2, "term": "(ackermann T15 T16 X9)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T16", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T16", "T15" ], "free": [ "X9", "X25" ], "exprvars": [ "T7", "T8", "T16", "T15" ] } }, "4699": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (is X64 (- T33 (1))) (',' (ackermann T32 X64 X65) (',' (is X66 (- T32 (1))) (',' (ackermann X66 X65 X67) (is X68 X67)))))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T16", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T32", "T33" ], "free": [ "X68", "X64", "X65", "X66", "X67" ], "exprvars": [ "T7", "T33", "T8", "T16", "T32", "T15" ] } }, "4458": { "goal": [ { "clause": 2, "scope": 2, "term": "(ackermann T15 T16 X9)" }, { "clause": 3, "scope": 2, "term": "(ackermann T15 T16 X9)" } ], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "!=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T16", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T16", "T15" ], "free": [ "X9", "X25" ], "exprvars": [ "T7", "T8", "T16", "T15" ] } }, "4711": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "4459": { "goal": [{ "clause": -1, "scope": -1, "term": "(is X25 (+ T16 (1)))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "0" }, "operation": "=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" }, { "lhs": { "name": "T15", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "3" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "name": "T16", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "23" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": ["T16"], "free": ["X25"], "exprvars": [ "T7", "T8", "T16", "T15" ] } }, "4712": { "goal": [{ "clause": -1, "scope": -1, "term": "(',' (ackermann T40 T37 X67) (is X68 X67))" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T40", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T32", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }] }, "ground": [ "T40", "T32", "T37" ], "free": [ "X68", "X66", "X67" ], "exprvars": [ "T40", "T32" ] } }, "607": { "goal": [], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": [], "free": [], "exprvars": [] } }, "1209": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T7 T8 X9)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [ { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T7", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T7", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "3" }, "operation": "<=" }, { "lhs": { "type": "PlainIntegerConstant", "value": "0" }, "type": "PlainIntegerRelation", "rhs": { "name": "T8", "type": "PlainIntegerVariable" }, "operation": "<=" }, { "lhs": { "name": "T8", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "type": "PlainIntegerConstant", "value": "23" }, "operation": "<=" } ] }, "ground": [ "T7", "T8" ], "free": ["X9"], "exprvars": [ "T7", "T8" ] } }, "4713": { "goal": [{ "clause": -1, "scope": -1, "term": "(ackermann T40 T37 X67)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [{ "lhs": { "name": "T40", "type": "PlainIntegerVariable" }, "type": "PlainIntegerRelation", "rhs": { "arguments": [ { "name": "T32", "type": "PlainIntegerVariable" }, { "type": "PlainIntegerConstant", "value": "1" } ], "type": "PlainIntegerOperation", "operation": "-" }, "operation": "=" }] }, "ground": [ "T40", "T37" ], "free": ["X67"], "exprvars": [ "T40", "T32" ] } }, "4714": { "goal": [{ "clause": -1, "scope": -1, "term": "(is X68 T43)" }], "kb": { "nonunifying": [], "intvars": {}, "arithmetic": { "type": "PlainIntegerRelationState", "relations": [] }, "ground": ["T43"], "free": ["X68"], "exprvars": [] } } }, "edges": [ { "from": 1, "to": 5, "label": "CASE" }, { "from": 5, "to": 6, "label": "ONLY EVAL with clause\nmain(X7, X8) :- ','(>=(X7, 0), ','(=<(X7, 3), ','(>=(X8, 0), ','(=<(X8, 23), ackermann(X7, X8, X9))))).\nand substitutionT1 -> T7,\nX7 -> T7,\nT2 -> T8,\nX8 -> T8" }, { "from": 6, "to": 7, "label": "IS ERROR" }, { "from": 6, "to": 13, "label": "ARITHCOMP SUCCESS" }, { "from": 6, "to": 14, "label": "ARITHCOMP FAIL" }, { "from": 13, "to": 602, "label": "ARITHCOMP SUCCESS" }, { "from": 13, "to": 604, "label": "ARITHCOMP FAIL" }, { "from": 602, "to": 607, "label": "IS ERROR" }, { "from": 602, "to": 755, "label": "ARITHCOMP SUCCESS" }, { "from": 602, "to": 756, "label": "ARITHCOMP FAIL" }, { "from": 755, "to": 1209, "label": "ARITHCOMP SUCCESS" }, { "from": 755, "to": 1210, "label": "ARITHCOMP FAIL" }, { "from": 1209, "to": 2557, "label": "CASE" }, { "from": 2557, "to": 2558, "label": "ONLY EVAL with clause\nackermann(X22, X23, X24) :- ','(=:=(X22, 0), ','(!_2, is(X24, +(X23, 1)))).\nand substitutionT7 -> T15,\nX22 -> T15,\nT8 -> T16,\nX23 -> T16,\nX9 -> X25,\nX24 -> X25" }, { "from": 2558, "to": 4457, "label": "ARITHCOMP SUCCESS" }, { "from": 2558, "to": 4458, "label": "ARITHCOMP FAIL" }, { "from": 4457, "to": 4459, "label": "CUT" }, { "from": 4458, "to": 4462, "label": "PARALLEL" }, { "from": 4458, "to": 4463, "label": "PARALLEL" }, { "from": 4459, "to": 4460, "label": "\nX25 -> T17" }, { "from": 4460, "to": 4461, "label": "SUCCESS" }, { "from": 4462, "to": 4464, "label": "ONLY EVAL with clause\nackermann(X44, X45, X46) :- ','(=:=(X45, 0), ','(!_2, ','(is(X47, -(X44, 1)), ackermann(X47, 1, X46)))).\nand substitutionT15 -> T26,\nX44 -> T26,\nT16 -> T27,\nX45 -> T27,\nX9 -> X48,\nX46 -> X48" }, { "from": 4463, "to": 4698, "label": "ONLY EVAL with clause\nackermann(X61, X62, X63) :- ','(!_2, ','(is(X64, -(X62, 1)), ','(ackermann(X61, X64, X65), ','(is(X66, -(X61, 1)), ','(ackermann(X66, X65, X67), is(X63, X67)))))).\nand substitutionT15 -> T32,\nX61 -> T32,\nT16 -> T33,\nX62 -> T33,\nX9 -> X68,\nX63 -> X68" }, { "from": 4698, "to": 4699, "label": "CUT" }, { "from": 4699, "to": 4700, "label": "\nX64 -> T34" }, { "from": 4700, "to": 4701, "label": "SPLIT 1" }, { "from": 4700, "to": 4702, "label": "SPLIT 2\nnew knowledge:\nT32 is ground\nT34 is ground\nT37 is ground\nreplacements:X65 -> T37" }, { "from": 4701, "to": 1209, "label": "INSTANCE with matching:\nT7 -> T32\nT8 -> T34\nX9 -> X65" }, { "from": 4702, "to": 4711, "label": "IS ERROR" }, { "from": 4702, "to": 4712, "label": "\nX66 -> T40" }, { "from": 4712, "to": 4713, "label": "SPLIT 1" }, { "from": 4712, "to": 4714, "label": "SPLIT 2\nnew knowledge:\nT40 is ground\nT37 is ground\nT43 is ground\nreplacements:X67 -> T43" }, { "from": 4713, "to": 1209, "label": "INSTANCE with matching:\nT7 -> T40\nT8 -> T37\nX9 -> X67" }, { "from": 4714, "to": 4721, "label": "IS ERROR" }, { "from": 4714, "to": 4722, "label": "\nX68 -> T46" }, { "from": 4722, "to": 4723, "label": "SUCCESS" } ], "type": "Graph" } } ---------------------------------------- (142) Obligation: Rules: f4714_in(T43) -> f4722_in(T46, T43) :|: T46 = T43 f4722_out(x, x1) -> f4714_out(x1) :|: TRUE f4714_in(x2) -> f4721_in :|: TRUE f4721_out -> f4714_out(x3) :|: TRUE f2558_in(T15, T16) -> f4458_in(T15, T16) :|: !(T15 = 0) f4458_out(x4, x5) -> f2558_out(x4, x5) :|: !(x4 = 0) f2558_in(x6, x7) -> f4457_in(x7, x6) :|: x6 = 0 f4457_out(x8, x9) -> f2558_out(x9, x8) :|: x9 = 0 f1209_out(T32, T34) -> f4701_out(T32, T34) :|: TRUE f4701_in(x10, x11) -> f1209_in(x10, x11) :|: TRUE f1209_out(T40, T37) -> f4713_out(T40, T37) :|: TRUE f4713_in(x12, x13) -> f1209_in(x12, x13) :|: TRUE f4700_out(x14, x15, x16) -> f4699_out(x16, x14) :|: TRUE f4699_in(x17, x18) -> f4700_in(x18, x19, x17) :|: x19 = x17 - 1 f2557_in(x20, x21) -> f2558_in(x20, x21) :|: TRUE f2558_out(x22, x23) -> f2557_out(x22, x23) :|: TRUE f4698_in(x24, x25) -> f4699_in(x24, x25) :|: TRUE f4699_out(x26, x27) -> f4698_out(x26, x27) :|: TRUE f4712_in(x28, x29, x30) -> f4713_in(x28, x29) :|: TRUE f4713_out(x31, x32) -> f4714_in(x33) :|: TRUE f4714_out(x34) -> f4712_out(x35, x36, x37) :|: TRUE f4722_in(x38, x39) -> f4722_out(x38, x39) :|: TRUE f4463_in(x40, x41) -> f4698_in(x41, x40) :|: TRUE f4698_out(x42, x43) -> f4463_out(x43, x42) :|: TRUE f4702_out(x44, x45) -> f4700_out(x44, x46, x47) :|: TRUE f4701_out(x48, x49) -> f4702_in(x48, x50) :|: TRUE f4700_in(x51, x52, x53) -> f4701_in(x51, x52) :|: TRUE f1209_in(T7, T8) -> f2557_in(T7, T8) :|: TRUE f2557_out(x54, x55) -> f1209_out(x54, x55) :|: TRUE f4712_out(x56, x57, x58) -> f4702_out(x58, x57) :|: TRUE f4711_out -> f4702_out(x59, x60) :|: TRUE f4702_in(x61, x62) -> f4712_in(x63, x62, x61) :|: x63 = x61 - 1 f4702_in(x64, x65) -> f4711_in :|: TRUE f4458_in(x66, x67) -> f4463_in(x66, x67) :|: TRUE f4462_out(x68, x69) -> f4458_out(x68, x69) :|: TRUE f4458_in(x70, x71) -> f4462_in(x70, x71) :|: TRUE f4463_out(x72, x73) -> f4458_out(x72, x73) :|: TRUE f5_out(T1, T2) -> f1_out(T1, T2) :|: TRUE f1_in(x74, x75) -> f5_in(x74, x75) :|: TRUE f5_in(x76, x77) -> f6_in(x76, x77) :|: TRUE f6_out(x78, x79) -> f5_out(x78, x79) :|: TRUE f6_in(x80, x81) -> f14_in(x80, x81) :|: x80 < 0 f6_in(x82, x83) -> f7_in :|: TRUE f7_out -> f6_out(x84, x85) :|: TRUE f6_in(x86, x87) -> f13_in(x86, x87) :|: x86 >= 0 f14_out(x88, x89) -> f6_out(x88, x89) :|: x88 < 0 f13_out(x90, x91) -> f6_out(x90, x91) :|: x90 >= 0 f602_out(x92, x93) -> f13_out(x93, x92) :|: x93 <= 3 f604_out(x94, x95) -> f13_out(x94, x95) :|: x94 > 3 f13_in(x96, x97) -> f602_in(x97, x96) :|: x96 <= 3 f13_in(x98, x99) -> f604_in(x98, x99) :|: x98 > 3 f602_in(x100, x101) -> f755_in(x100, x101) :|: x100 >= 0 f602_in(x102, x103) -> f607_in :|: TRUE f602_in(x104, x105) -> f756_in(x105, x104) :|: x104 < 0 f756_out(x106, x107) -> f602_out(x107, x106) :|: x107 < 0 f607_out -> f602_out(x108, x109) :|: TRUE f755_out(x110, x111) -> f602_out(x110, x111) :|: x110 >= 0 f755_in(x112, x113) -> f1210_in(x113, x112) :|: x112 > 23 f1209_out(x114, x115) -> f755_out(x115, x114) :|: x115 <= 23 f755_in(x116, x117) -> f1209_in(x117, x116) :|: x116 <= 23 f1210_out(x118, x119) -> f755_out(x119, x118) :|: x119 > 23 Start term: f1_in(T1, T2) ---------------------------------------- (143) IRSwTSimpleDependencyGraphProof (EQUIVALENT) Constructed simple dependency graph. Simplified to the following IRSwTs: intTRSProblem: f2558_in(T15, T16) -> f4458_in(T15, T16) :|: !(T15 = 0) f4701_in(x10, x11) -> f1209_in(x10, x11) :|: TRUE f4699_in(x17, x18) -> f4700_in(x18, x19, x17) :|: x19 = x17 - 1 f2557_in(x20, x21) -> f2558_in(x20, x21) :|: TRUE f4698_in(x24, x25) -> f4699_in(x24, x25) :|: TRUE f4463_in(x40, x41) -> f4698_in(x41, x40) :|: TRUE f4700_in(x51, x52, x53) -> f4701_in(x51, x52) :|: TRUE f1209_in(T7, T8) -> f2557_in(T7, T8) :|: TRUE f4458_in(x66, x67) -> f4463_in(x66, x67) :|: TRUE ---------------------------------------- (144) Obligation: Rules: f2558_in(T15, T16) -> f4458_in(T15, T16) :|: !(T15 = 0) f4701_in(x10, x11) -> f1209_in(x10, x11) :|: TRUE f4699_in(x17, x18) -> f4700_in(x18, x19, x17) :|: x19 = x17 - 1 f2557_in(x20, x21) -> f2558_in(x20, x21) :|: TRUE f4698_in(x24, x25) -> f4699_in(x24, x25) :|: TRUE f4463_in(x40, x41) -> f4698_in(x41, x40) :|: TRUE f4700_in(x51, x52, x53) -> f4701_in(x51, x52) :|: TRUE f1209_in(T7, T8) -> f2557_in(T7, T8) :|: TRUE f4458_in(x66, x67) -> f4463_in(x66, x67) :|: TRUE ---------------------------------------- (145) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (146) Obligation: Rules: f4463_in(x40:0, x41:0) -> f4463_in(x40:0, x41:0 - 1) :|: x40:0 < 0 f4463_in(x, x1) -> f4463_in(x, x1 - 1) :|: x > 0 ---------------------------------------- (147) IRSFormatTransformerProof (EQUIVALENT) Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %). ---------------------------------------- (148) Obligation: Rules: f4463_in(x40:0, x41:0) -> f4463_in(x40:0, arith) :|: x40:0 < 0 && arith = x41:0 - 1 f4463_in(x2, x3) -> f4463_in(x2, x4) :|: x2 > 0 && x4 = x3 - 1 ---------------------------------------- (149) IRSwTTerminationDigraphProof (EQUIVALENT) Constructed termination digraph! Nodes: (1) f4463_in(x40:0, x41:0) -> f4463_in(x40:0, arith) :|: x40:0 < 0 && arith = x41:0 - 1 (2) f4463_in(x2, x3) -> f4463_in(x2, x4) :|: x2 > 0 && x4 = x3 - 1 Arcs: (1) -> (1) (2) -> (2) This digraph is fully evaluated! ---------------------------------------- (150) Complex Obligation (AND) ---------------------------------------- (151) Obligation: Termination digraph: Nodes: (1) f4463_in(x2, x3) -> f4463_in(x2, x4) :|: x2 > 0 && x4 = x3 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (152) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (153) Obligation: Rules: f4463_in(x2:0, x3:0) -> f4463_in(x2:0, x3:0 - 1) :|: x2:0 > 0 ---------------------------------------- (154) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f4463_in(x1, x2) -> f4463_in(x1) ---------------------------------------- (155) Obligation: Rules: f4463_in(x2:0) -> f4463_in(x2:0) :|: x2:0 > 0 ---------------------------------------- (156) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f4463_in(INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (157) Obligation: Rules: f4463_in(x2:0) -> f4463_in(x2:0) :|: x2:0 > 0 ---------------------------------------- (158) IntTRSNonPeriodicNontermProof (COMPLETE) Normalized system to the following form: f(pc, x2:0) -> f(1, x2:0) :|: pc = 1 && x2:0 > 0 Proved unsatisfiability of the following formula, indicating that the system is never left after entering: (((run2_0 = ((1 * 1)) and run2_1 = ((run1_1 * 1))) and (((run1_0 * 1)) = ((1 * 1)) and ((run1_1 * 1)) > 0)) and !(((run2_0 * 1)) = ((1 * 1)) and ((run2_1 * 1)) > 0)) Proved satisfiability of the following formula, indicating that the system is entered at least once: ((run2_0 = ((1 * 1)) and run2_1 = ((run1_1 * 1))) and (((run1_0 * 1)) = ((1 * 1)) and ((run1_1 * 1)) > 0)) ---------------------------------------- (159) NO ---------------------------------------- (160) Obligation: Termination digraph: Nodes: (1) f4463_in(x40:0, x41:0) -> f4463_in(x40:0, arith) :|: x40:0 < 0 && arith = x41:0 - 1 Arcs: (1) -> (1) This digraph is fully evaluated! ---------------------------------------- (161) IntTRSCompressionProof (EQUIVALENT) Compressed rules. ---------------------------------------- (162) Obligation: Rules: f4463_in(x40:0:0, x41:0:0) -> f4463_in(x40:0:0, x41:0:0 - 1) :|: x40:0:0 < 0 ---------------------------------------- (163) IntTRSUnneededArgumentFilterProof (EQUIVALENT) Some arguments are removed because they cannot influence termination. We removed arguments according to the following replacements: f4463_in(x1, x2) -> f4463_in(x1) ---------------------------------------- (164) Obligation: Rules: f4463_in(x40:0:0) -> f4463_in(x40:0:0) :|: x40:0:0 < 0 ---------------------------------------- (165) FilterProof (EQUIVALENT) Used the following sort dictionary for filtering: f4463_in(INTEGER) Replaced non-predefined constructor symbols by 0. ---------------------------------------- (166) Obligation: Rules: f4463_in(x40:0:0) -> f4463_in(x40:0:0) :|: x40:0:0 < 0 ---------------------------------------- (167) IntTRSPeriodicNontermProof (COMPLETE) Normalized system to the following form: f(pc, x40:0:0) -> f(1, x40:0:0) :|: pc = 1 && x40:0:0 < 0 Witness term starting non-terminating reduction: f(1, -1) ---------------------------------------- (168) NO