MAYBE

Found an example we currently can't prove?
-> Consider contributing it to the benchmark set: https://mysolvertimesout.org/

proof of /hpcwork/ff862203/termcomp26/benchmarks/1yTlE.pl
# AProVE Commit ID: 23a904c96b029b0a549cde0d0d17dbccf967db59 jckassing 20260626 unpublished dirty


Left Termination of the query pattern

ackermann(g,a,g)

w.r.t. the given Prolog program could not be shown:

(0) Prolog
(1) PrologToPiTRSProof [SOUND, 0 ms]
(2) PiTRS
    (3) DependencyPairsProof [EQUIVALENT, 0 ms]
    (4) PiDP
    (5) DependencyGraphProof [EQUIVALENT, 0 ms]
    (6) AND
        (7) PiDP
            (8) UsableRulesProof [EQUIVALENT, 0 ms]
            (9) PiDP
            (10) PiDPToQDPProof [SOUND, 2 ms]
            (11) QDP
            (12) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (13) YES
        (14) PiDP
            (15) UsableRulesProof [EQUIVALENT, 0 ms]
            (16) PiDP
            (17) PiDPToQDPProof [SOUND, 0 ms]
            (18) QDP
            (19) QDPQMonotonicMRRProof [EQUIVALENT, 15 ms]
            (20) QDP
            (21) UsableRulesProof [EQUIVALENT, 0 ms]
            (22) QDP
            (23) QReductionProof [EQUIVALENT, 0 ms]
            (24) QDP
            (25) NonTerminationLoopProof [COMPLETE, 1 ms]
            (26) NO
        (27) PiDP
            (28) UsableRulesProof [EQUIVALENT, 0 ms]
            (29) PiDP
            (30) PiDPToQDPProof [SOUND, 0 ms]
            (31) QDP
            (32) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (33) YES
        (34) PiDP
            (35) UsableRulesProof [EQUIVALENT, 0 ms]
            (36) PiDP
            (37) PiDPToQDPProof [SOUND, 0 ms]
            (38) QDP
            (39) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (40) YES
(41) PrologToPiTRSProof [SOUND, 0 ms]
(42) PiTRS
    (43) DependencyPairsProof [EQUIVALENT, 0 ms]
    (44) PiDP
    (45) DependencyGraphProof [EQUIVALENT, 0 ms]
    (46) AND
        (47) PiDP
            (48) UsableRulesProof [EQUIVALENT, 0 ms]
            (49) PiDP
            (50) PiDPToQDPProof [SOUND, 3 ms]
            (51) QDP
            (52) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (53) YES
        (54) PiDP
            (55) UsableRulesProof [EQUIVALENT, 0 ms]
            (56) PiDP
            (57) PiDPToQDPProof [SOUND, 0 ms]
            (58) QDP
            (59) QDPQMonotonicMRRProof [EQUIVALENT, 12 ms]
            (60) QDP
            (61) UsableRulesProof [EQUIVALENT, 0 ms]
            (62) QDP
            (63) QReductionProof [EQUIVALENT, 0 ms]
            (64) QDP
            (65) NonTerminationLoopProof [COMPLETE, 0 ms]
            (66) NO
        (67) PiDP
            (68) UsableRulesProof [EQUIVALENT, 0 ms]
            (69) PiDP
            (70) PiDPToQDPProof [SOUND, 0 ms]
            (71) QDP
            (72) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (73) YES
        (74) PiDP
            (75) UsableRulesProof [EQUIVALENT, 0 ms]
            (76) PiDP
            (77) PiDPToQDPProof [SOUND, 0 ms]
            (78) QDP
            (79) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (80) YES
(81) PrologToDTProblemTransformerProof [SOUND, 0 ms]
(82) TRIPLES
    (83) TriplesToPiDPProof [SOUND, 22 ms]
    (84) PiDP
    (85) DependencyGraphProof [EQUIVALENT, 0 ms]
    (86) AND
        (87) PiDP
            (88) UsableRulesProof [EQUIVALENT, 0 ms]
            (89) PiDP
            (90) PiDPToQDPProof [SOUND, 0 ms]
            (91) QDP
            (92) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (93) YES
        (94) PiDP
            (95) UsableRulesProof [EQUIVALENT, 0 ms]
            (96) PiDP
            (97) PiDPToQDPProof [SOUND, 0 ms]
            (98) QDP
            (99) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (100) YES
        (101) PiDP
            (102) UsableRulesProof [EQUIVALENT, 0 ms]
            (103) PiDP
            (104) PiDPToQDPProof [SOUND, 0 ms]
            (105) QDP
            (106) NonTerminationLoopProof [COMPLETE, 0 ms]
            (107) NO
        (108) PiDP
            (109) UsableRulesProof [EQUIVALENT, 0 ms]
            (110) PiDP
            (111) PiDPToQDPProof [SOUND, 0 ms]
            (112) QDP
            (113) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (114) YES
(115) PrologToIRSwTTransformerProof [SOUND, 0 ms]
(116) AND
    (117) IRSwT
        (118) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
        (119) IRSwT
        (120) IntTRSCompressionProof [EQUIVALENT, 20 ms]
        (121) IRSwT
        (122) IRSFormatTransformerProof [EQUIVALENT, 0 ms]
        (123) IRSwT
        (124) IRSwTTerminationDigraphProof [EQUIVALENT, 2 ms]
        (125) IRSwT
        (126) TempFilterProof [SOUND, 2 ms]
        (127) IRSwT
        (128) IRSwTToQDPProof [SOUND, 0 ms]
        (129) QDP
        (130) QDPSizeChangeProof [EQUIVALENT, 0 ms]
        (131) YES
    (132) IRSwT
        (133) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
        (134) IRSwT
        (135) IntTRSCompressionProof [EQUIVALENT, 1 ms]
        (136) IRSwT
        (137) IRSFormatTransformerProof [EQUIVALENT, 0 ms]
        (138) IRSwT
        (139) IRSwTTerminationDigraphProof [EQUIVALENT, 0 ms]
        (140) IRSwT
        (141) FilterProof [EQUIVALENT, 0 ms]
        (142) IntTRS
        (143) IntTRSPeriodicNontermProof [COMPLETE, 2 ms]
        (144) NO
    (145) IRSwT
        (146) IRSwTSimpleDependencyGraphProof [EQUIVALENT, 0 ms]
        (147) IRSwT
    (148) IRSwT
(149) PrologToTRSTransformerProof [SOUND, 30 ms]
(150) QTRS
    (151) DependencyPairsProof [EQUIVALENT, 0 ms]
    (152) QDP
    (153) DependencyGraphProof [EQUIVALENT, 0 ms]
    (154) AND
        (155) QDP
            (156) QDPOrderProof [EQUIVALENT, 37 ms]
            (157) QDP
            (158) DependencyGraphProof [EQUIVALENT, 0 ms]
            (159) QDP
            (160) QDPOrderProof [EQUIVALENT, 10 ms]
            (161) QDP
            (162) DependencyGraphProof [EQUIVALENT, 0 ms]
            (163) QDP
            (164) UsableRulesProof [EQUIVALENT, 0 ms]
            (165) QDP
            (166) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (167) YES
        (168) QDP
            (169) QDPOrderProof [EQUIVALENT, 9 ms]
            (170) QDP
            (171) DependencyGraphProof [EQUIVALENT, 0 ms]
            (172) QDP
            (173) UsableRulesProof [EQUIVALENT, 0 ms]
            (174) QDP
            (175) NonTerminationLoopProof [COMPLETE, 0 ms]
            (176) NO
        (177) QDP
            (178) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (179) YES
        (180) QDP
            (181) QDPSizeChangeProof [EQUIVALENT, 0 ms]
            (182) YES


----------------------------------------

(0)
Obligation:
Clauses:

ackermann(0, N, s(N)).
ackermann(s(M), 0, Val) :- ackermann(M, s(0), Val).
ackermann(s(M), s(N), Val) :- ','(ackermann(s(M), N, Val1), ackermann(M, Val1, Val)).


Query: ackermann(g,a,g)
----------------------------------------

(1) PrologToPiTRSProof (SOUND)
We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes:

ackermann_in_3: (b,f,b) (b,b,b) (b,b,f) (b,f,f)

Transforming Prolog into the following Term Rewriting System:

Pi-finite rewrite system:
The TRS R consists of the following rules:

   ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N))
   ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N))
   ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val)
   U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val)
   U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val)
   ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
ackermann_in_gag(x1, x2, x3)  =  ackermann_in_gag(x1, x3)

0  =  0

s(x1)  =  s(x1)

ackermann_out_gag(x1, x2, x3)  =  ackermann_out_gag(x1, x3)

U1_gag(x1, x2, x3)  =  U1_gag(x1, x2, x3)

ackermann_in_ggg(x1, x2, x3)  =  ackermann_in_ggg(x1, x2, x3)

ackermann_out_ggg(x1, x2, x3)  =  ackermann_out_ggg(x1, x2, x3)

U1_ggg(x1, x2, x3)  =  U1_ggg(x1, x2, x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x2, x3, x4)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x1, x2, x3)

U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x1, x2, x3, x4)

U2_gag(x1, x2, x3, x4)  =  U2_gag(x1, x3, x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa(x1)

U1_gaa(x1, x2, x3)  =  U1_gaa(x1, x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x1, x4)

U3_gag(x1, x2, x3, x4)  =  U3_gag(x1, x3, x4)





Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog



----------------------------------------

(2)
Obligation:
Pi-finite rewrite system:
The TRS R consists of the following rules:

   ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N))
   ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N))
   ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val)
   U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val)
   U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val)
   ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
ackermann_in_gag(x1, x2, x3)  =  ackermann_in_gag(x1, x3)

0  =  0

s(x1)  =  s(x1)

ackermann_out_gag(x1, x2, x3)  =  ackermann_out_gag(x1, x3)

U1_gag(x1, x2, x3)  =  U1_gag(x1, x2, x3)

ackermann_in_ggg(x1, x2, x3)  =  ackermann_in_ggg(x1, x2, x3)

ackermann_out_ggg(x1, x2, x3)  =  ackermann_out_ggg(x1, x2, x3)

U1_ggg(x1, x2, x3)  =  U1_ggg(x1, x2, x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x2, x3, x4)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x1, x2, x3)

U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x1, x2, x3, x4)

U2_gag(x1, x2, x3, x4)  =  U2_gag(x1, x3, x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa(x1)

U1_gaa(x1, x2, x3)  =  U1_gaa(x1, x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x1, x4)

U3_gag(x1, x2, x3, x4)  =  U3_gag(x1, x3, x4)



----------------------------------------

(3) 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:

   ACKERMANN_IN_GAG(s(M), 0, Val) -> U1_GAG(M, Val, ackermann_in_ggg(M, s(0), Val))
   ACKERMANN_IN_GAG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val)
   ACKERMANN_IN_GGG(s(M), 0, Val) -> U1_GGG(M, Val, ackermann_in_ggg(M, s(0), Val))
   ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val)
   ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ACKERMANN_IN_GGG(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1)
   ACKERMANN_IN_GGA(s(M), 0, Val) -> U1_GGA(M, Val, ackermann_in_gga(M, s(0), Val))
   ACKERMANN_IN_GGA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val)
   ACKERMANN_IN_GGA(s(M), s(N), Val) -> U2_GGA(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ACKERMANN_IN_GGA(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1)
   U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_GGA(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1, Val)
   U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_GGG(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val)
   ACKERMANN_IN_GAG(s(M), s(N), Val) -> U2_GAG(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ACKERMANN_IN_GAG(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1)
   ACKERMANN_IN_GAA(s(M), 0, Val) -> U1_GAA(M, Val, ackermann_in_gga(M, s(0), Val))
   ACKERMANN_IN_GAA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val)
   ACKERMANN_IN_GAA(s(M), s(N), Val) -> U2_GAA(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ACKERMANN_IN_GAA(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1)
   U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_GAA(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAA(M, Val1, Val)
   U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_GAG(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAG(M, Val1, Val)

The TRS R consists of the following rules:

   ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N))
   ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N))
   ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val)
   U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val)
   U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val)
   ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
ackermann_in_gag(x1, x2, x3)  =  ackermann_in_gag(x1, x3)

0  =  0

s(x1)  =  s(x1)

ackermann_out_gag(x1, x2, x3)  =  ackermann_out_gag(x1, x3)

U1_gag(x1, x2, x3)  =  U1_gag(x1, x2, x3)

ackermann_in_ggg(x1, x2, x3)  =  ackermann_in_ggg(x1, x2, x3)

ackermann_out_ggg(x1, x2, x3)  =  ackermann_out_ggg(x1, x2, x3)

U1_ggg(x1, x2, x3)  =  U1_ggg(x1, x2, x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x2, x3, x4)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x1, x2, x3)

U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x1, x2, x3, x4)

U2_gag(x1, x2, x3, x4)  =  U2_gag(x1, x3, x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa(x1)

U1_gaa(x1, x2, x3)  =  U1_gaa(x1, x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x1, x4)

U3_gag(x1, x2, x3, x4)  =  U3_gag(x1, x3, x4)

ACKERMANN_IN_GAG(x1, x2, x3)  =  ACKERMANN_IN_GAG(x1, x3)

U1_GAG(x1, x2, x3)  =  U1_GAG(x1, x2, x3)

ACKERMANN_IN_GGG(x1, x2, x3)  =  ACKERMANN_IN_GGG(x1, x2, x3)

U1_GGG(x1, x2, x3)  =  U1_GGG(x1, x2, x3)

U2_GGG(x1, x2, x3, x4)  =  U2_GGG(x1, x2, x3, x4)

ACKERMANN_IN_GGA(x1, x2, x3)  =  ACKERMANN_IN_GGA(x1, x2)

U1_GGA(x1, x2, x3)  =  U1_GGA(x1, x3)

U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x2, x4)

U3_GGA(x1, x2, x3, x4)  =  U3_GGA(x1, x2, x4)

U3_GGG(x1, x2, x3, x4)  =  U3_GGG(x1, x2, x3, x4)

U2_GAG(x1, x2, x3, x4)  =  U2_GAG(x1, x3, x4)

ACKERMANN_IN_GAA(x1, x2, x3)  =  ACKERMANN_IN_GAA(x1)

U1_GAA(x1, x2, x3)  =  U1_GAA(x1, x3)

U2_GAA(x1, x2, x3, x4)  =  U2_GAA(x1, x4)

U3_GAA(x1, x2, x3, x4)  =  U3_GAA(x1, x4)

U3_GAG(x1, x2, x3, x4)  =  U3_GAG(x1, x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(4)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAG(s(M), 0, Val) -> U1_GAG(M, Val, ackermann_in_ggg(M, s(0), Val))
   ACKERMANN_IN_GAG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val)
   ACKERMANN_IN_GGG(s(M), 0, Val) -> U1_GGG(M, Val, ackermann_in_ggg(M, s(0), Val))
   ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val)
   ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ACKERMANN_IN_GGG(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1)
   ACKERMANN_IN_GGA(s(M), 0, Val) -> U1_GGA(M, Val, ackermann_in_gga(M, s(0), Val))
   ACKERMANN_IN_GGA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val)
   ACKERMANN_IN_GGA(s(M), s(N), Val) -> U2_GGA(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ACKERMANN_IN_GGA(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1)
   U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_GGA(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1, Val)
   U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_GGG(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val)
   ACKERMANN_IN_GAG(s(M), s(N), Val) -> U2_GAG(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ACKERMANN_IN_GAG(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1)
   ACKERMANN_IN_GAA(s(M), 0, Val) -> U1_GAA(M, Val, ackermann_in_gga(M, s(0), Val))
   ACKERMANN_IN_GAA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val)
   ACKERMANN_IN_GAA(s(M), s(N), Val) -> U2_GAA(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ACKERMANN_IN_GAA(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1)
   U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_GAA(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAA(M, Val1, Val)
   U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_GAG(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAG(M, Val1, Val)

The TRS R consists of the following rules:

   ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N))
   ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N))
   ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val)
   U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val)
   U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val)
   ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
ackermann_in_gag(x1, x2, x3)  =  ackermann_in_gag(x1, x3)

0  =  0

s(x1)  =  s(x1)

ackermann_out_gag(x1, x2, x3)  =  ackermann_out_gag(x1, x3)

U1_gag(x1, x2, x3)  =  U1_gag(x1, x2, x3)

ackermann_in_ggg(x1, x2, x3)  =  ackermann_in_ggg(x1, x2, x3)

ackermann_out_ggg(x1, x2, x3)  =  ackermann_out_ggg(x1, x2, x3)

U1_ggg(x1, x2, x3)  =  U1_ggg(x1, x2, x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x2, x3, x4)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x1, x2, x3)

U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x1, x2, x3, x4)

U2_gag(x1, x2, x3, x4)  =  U2_gag(x1, x3, x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa(x1)

U1_gaa(x1, x2, x3)  =  U1_gaa(x1, x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x1, x4)

U3_gag(x1, x2, x3, x4)  =  U3_gag(x1, x3, x4)

ACKERMANN_IN_GAG(x1, x2, x3)  =  ACKERMANN_IN_GAG(x1, x3)

U1_GAG(x1, x2, x3)  =  U1_GAG(x1, x2, x3)

ACKERMANN_IN_GGG(x1, x2, x3)  =  ACKERMANN_IN_GGG(x1, x2, x3)

U1_GGG(x1, x2, x3)  =  U1_GGG(x1, x2, x3)

U2_GGG(x1, x2, x3, x4)  =  U2_GGG(x1, x2, x3, x4)

ACKERMANN_IN_GGA(x1, x2, x3)  =  ACKERMANN_IN_GGA(x1, x2)

U1_GGA(x1, x2, x3)  =  U1_GGA(x1, x3)

U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x2, x4)

U3_GGA(x1, x2, x3, x4)  =  U3_GGA(x1, x2, x4)

U3_GGG(x1, x2, x3, x4)  =  U3_GGG(x1, x2, x3, x4)

U2_GAG(x1, x2, x3, x4)  =  U2_GAG(x1, x3, x4)

ACKERMANN_IN_GAA(x1, x2, x3)  =  ACKERMANN_IN_GAA(x1)

U1_GAA(x1, x2, x3)  =  U1_GAA(x1, x3)

U2_GAA(x1, x2, x3, x4)  =  U2_GAA(x1, x4)

U3_GAA(x1, x2, x3, x4)  =  U3_GAA(x1, x4)

U3_GAG(x1, x2, x3, x4)  =  U3_GAG(x1, x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(5) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 12 less nodes.
----------------------------------------

(6)
Complex Obligation (AND)

----------------------------------------

(7)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GGA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val)
   ACKERMANN_IN_GGA(s(M), s(N), Val) -> U2_GGA(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1, Val)
   ACKERMANN_IN_GGA(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1)

The TRS R consists of the following rules:

   ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N))
   ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N))
   ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val)
   U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val)
   U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val)
   ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
ackermann_in_gag(x1, x2, x3)  =  ackermann_in_gag(x1, x3)

0  =  0

s(x1)  =  s(x1)

ackermann_out_gag(x1, x2, x3)  =  ackermann_out_gag(x1, x3)

U1_gag(x1, x2, x3)  =  U1_gag(x1, x2, x3)

ackermann_in_ggg(x1, x2, x3)  =  ackermann_in_ggg(x1, x2, x3)

ackermann_out_ggg(x1, x2, x3)  =  ackermann_out_ggg(x1, x2, x3)

U1_ggg(x1, x2, x3)  =  U1_ggg(x1, x2, x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x2, x3, x4)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x1, x2, x3)

U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x1, x2, x3, x4)

U2_gag(x1, x2, x3, x4)  =  U2_gag(x1, x3, x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa(x1)

U1_gaa(x1, x2, x3)  =  U1_gaa(x1, x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x1, x4)

U3_gag(x1, x2, x3, x4)  =  U3_gag(x1, x3, x4)

ACKERMANN_IN_GGA(x1, x2, x3)  =  ACKERMANN_IN_GGA(x1, x2)

U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x2, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(8) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(9)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GGA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val)
   ACKERMANN_IN_GGA(s(M), s(N), Val) -> U2_GGA(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1, Val)
   ACKERMANN_IN_GGA(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1)

The TRS R consists of the following rules:

   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
0  =  0

s(x1)  =  s(x1)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x1, x2, x3)

U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)

ACKERMANN_IN_GGA(x1, x2, x3)  =  ACKERMANN_IN_GGA(x1, x2)

U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x2, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(10) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(11)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GGA(s(M), 0) -> ACKERMANN_IN_GGA(M, s(0))
   ACKERMANN_IN_GGA(s(M), s(N)) -> U2_GGA(M, N, ackermann_in_gga(s(M), N))
   U2_GGA(M, N, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1)
   ACKERMANN_IN_GGA(s(M), s(N)) -> ACKERMANN_IN_GGA(s(M), N)

The TRS R consists of the following rules:

   ackermann_in_gga(s(M), 0) -> U1_gga(M, ackermann_in_gga(M, s(0)))
   ackermann_in_gga(s(M), s(N)) -> U2_gga(M, N, ackermann_in_gga(s(M), N))
   U1_gga(M, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_gga(M, N, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, ackermann_in_gga(M, Val1))
   ackermann_in_gga(0, N) -> ackermann_out_gga(0, N, s(N))
   U3_gga(M, N, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)

The set Q consists of the following terms:

   ackermann_in_gga(x0, x1)
   U1_gga(x0, x1)
   U2_gga(x0, x1, x2)
   U3_gga(x0, x1, x2)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(12) 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:
*ACKERMANN_IN_GGA(s(M), s(N)) -> ACKERMANN_IN_GGA(s(M), N)
The graph contains the following edges 1 >= 1, 2 > 2


*ACKERMANN_IN_GGA(s(M), s(N)) -> U2_GGA(M, N, ackermann_in_gga(s(M), N))
The graph contains the following edges 1 > 1, 2 > 2


*U2_GGA(M, N, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1)
The graph contains the following edges 1 >= 1, 3 > 1, 3 > 2


*ACKERMANN_IN_GGA(s(M), 0) -> ACKERMANN_IN_GGA(M, s(0))
The graph contains the following edges 1 > 1


----------------------------------------

(13)
YES

----------------------------------------

(14)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAA(s(M), s(N), Val) -> U2_GAA(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAA(M, Val1, Val)
   ACKERMANN_IN_GAA(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1)

The TRS R consists of the following rules:

   ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N))
   ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N))
   ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val)
   U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val)
   U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val)
   ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
ackermann_in_gag(x1, x2, x3)  =  ackermann_in_gag(x1, x3)

0  =  0

s(x1)  =  s(x1)

ackermann_out_gag(x1, x2, x3)  =  ackermann_out_gag(x1, x3)

U1_gag(x1, x2, x3)  =  U1_gag(x1, x2, x3)

ackermann_in_ggg(x1, x2, x3)  =  ackermann_in_ggg(x1, x2, x3)

ackermann_out_ggg(x1, x2, x3)  =  ackermann_out_ggg(x1, x2, x3)

U1_ggg(x1, x2, x3)  =  U1_ggg(x1, x2, x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x2, x3, x4)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x1, x2, x3)

U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x1, x2, x3, x4)

U2_gag(x1, x2, x3, x4)  =  U2_gag(x1, x3, x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa(x1)

U1_gaa(x1, x2, x3)  =  U1_gaa(x1, x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x1, x4)

U3_gag(x1, x2, x3, x4)  =  U3_gag(x1, x3, x4)

ACKERMANN_IN_GAA(x1, x2, x3)  =  ACKERMANN_IN_GAA(x1)

U2_GAA(x1, x2, x3, x4)  =  U2_GAA(x1, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(15) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(16)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAA(s(M), s(N), Val) -> U2_GAA(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAA(M, Val1, Val)
   ACKERMANN_IN_GAA(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1)

The TRS R consists of the following rules:

   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)

The argument filtering Pi contains the following mapping:
0  =  0

s(x1)  =  s(x1)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x1, x2, x3)

U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa(x1)

U1_gaa(x1, x2, x3)  =  U1_gaa(x1, x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x1, x4)

ACKERMANN_IN_GAA(x1, x2, x3)  =  ACKERMANN_IN_GAA(x1)

U2_GAA(x1, x2, x3, x4)  =  U2_GAA(x1, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(17) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(18)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAA(s(M)) -> U2_GAA(M, ackermann_in_gaa(s(M)))
   U2_GAA(M, ackermann_out_gaa(s(M))) -> ACKERMANN_IN_GAA(M)
   ACKERMANN_IN_GAA(s(M)) -> ACKERMANN_IN_GAA(s(M))

The TRS R consists of the following rules:

   ackermann_in_gaa(s(M)) -> U1_gaa(M, ackermann_in_gga(M, s(0)))
   ackermann_in_gaa(s(M)) -> U2_gaa(M, ackermann_in_gaa(s(M)))
   U1_gaa(M, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M))
   U2_gaa(M, ackermann_out_gaa(s(M))) -> U3_gaa(M, ackermann_in_gaa(M))
   ackermann_in_gga(0, N) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), s(N)) -> U2_gga(M, N, ackermann_in_gga(s(M), N))
   U3_gaa(M, ackermann_out_gaa(M)) -> ackermann_out_gaa(s(M))
   U2_gga(M, N, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, ackermann_in_gga(M, Val1))
   ackermann_in_gaa(0) -> ackermann_out_gaa(0)
   ackermann_in_gga(s(M), 0) -> U1_gga(M, ackermann_in_gga(M, s(0)))
   U3_gga(M, N, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)

The set Q consists of the following terms:

   ackermann_in_gaa(x0)
   U1_gaa(x0, x1)
   U2_gaa(x0, x1)
   ackermann_in_gga(x0, x1)
   U3_gaa(x0, x1)
   U2_gga(x0, x1, x2)
   U3_gga(x0, x1, x2)
   U1_gga(x0, x1)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(19) QDPQMonotonicMRRProof (EQUIVALENT)
By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain.

Strictly oriented dependency pairs:

   ACKERMANN_IN_GAA(s(M)) -> U2_GAA(M, ackermann_in_gaa(s(M)))
   U2_GAA(M, ackermann_out_gaa(s(M))) -> ACKERMANN_IN_GAA(M)


Used ordering: Polynomial interpretation [POLO]:

   POL(0) = 1
   POL(ACKERMANN_IN_GAA(x_1)) = 1 + x_1
   POL(U1_gaa(x_1, x_2)) = 2
   POL(U1_gga(x_1, x_2)) = 2
   POL(U2_GAA(x_1, x_2)) = 2 + x_1
   POL(U2_gaa(x_1, x_2)) = 2
   POL(U2_gga(x_1, x_2, x_3)) = 2 + 2*x_1
   POL(U3_gaa(x_1, x_2)) = 0
   POL(U3_gga(x_1, x_2, x_3)) = 2
   POL(ackermann_in_gaa(x_1)) = 2
   POL(ackermann_in_gga(x_1, x_2)) = 1 + x_1
   POL(ackermann_out_gaa(x_1)) = 0
   POL(ackermann_out_gga(x_1, x_2, x_3)) = 0
   POL(s(x_1)) = 2 + 2*x_1


----------------------------------------

(20)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAA(s(M)) -> ACKERMANN_IN_GAA(s(M))

The TRS R consists of the following rules:

   ackermann_in_gaa(s(M)) -> U1_gaa(M, ackermann_in_gga(M, s(0)))
   ackermann_in_gaa(s(M)) -> U2_gaa(M, ackermann_in_gaa(s(M)))
   U1_gaa(M, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M))
   U2_gaa(M, ackermann_out_gaa(s(M))) -> U3_gaa(M, ackermann_in_gaa(M))
   ackermann_in_gga(0, N) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), s(N)) -> U2_gga(M, N, ackermann_in_gga(s(M), N))
   U3_gaa(M, ackermann_out_gaa(M)) -> ackermann_out_gaa(s(M))
   U2_gga(M, N, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, ackermann_in_gga(M, Val1))
   ackermann_in_gaa(0) -> ackermann_out_gaa(0)
   ackermann_in_gga(s(M), 0) -> U1_gga(M, ackermann_in_gga(M, s(0)))
   U3_gga(M, N, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)

The set Q consists of the following terms:

   ackermann_in_gaa(x0)
   U1_gaa(x0, x1)
   U2_gaa(x0, x1)
   ackermann_in_gga(x0, x1)
   U3_gaa(x0, x1)
   U2_gga(x0, x1, x2)
   U3_gga(x0, x1, x2)
   U1_gga(x0, x1)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(21) UsableRulesProof (EQUIVALENT)
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.
----------------------------------------

(22)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAA(s(M)) -> ACKERMANN_IN_GAA(s(M))

R is empty.
The set Q consists of the following terms:

   ackermann_in_gaa(x0)
   U1_gaa(x0, x1)
   U2_gaa(x0, x1)
   ackermann_in_gga(x0, x1)
   U3_gaa(x0, x1)
   U2_gga(x0, x1, x2)
   U3_gga(x0, x1, x2)
   U1_gga(x0, x1)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(23) QReductionProof (EQUIVALENT)
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

   ackermann_in_gaa(x0)
   U1_gaa(x0, x1)
   U2_gaa(x0, x1)
   ackermann_in_gga(x0, x1)
   U3_gaa(x0, x1)
   U2_gga(x0, x1, x2)
   U3_gga(x0, x1, x2)
   U1_gga(x0, x1)


----------------------------------------

(24)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAA(s(M)) -> ACKERMANN_IN_GAA(s(M))

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(25) NonTerminationLoopProof (COMPLETE)
We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by semiunifying a rule from P directly.

s = ACKERMANN_IN_GAA(s(M)) evaluates to  t =ACKERMANN_IN_GAA(s(M))

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
* Matcher: [ ]
* Semiunifier: [ ]

--------------------------------------------------------------------------------
Rewriting sequence

The DP semiunifies directly so there is only one rewrite step from ACKERMANN_IN_GAA(s(M)) to ACKERMANN_IN_GAA(s(M)).




----------------------------------------

(26)
NO

----------------------------------------

(27)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val)
   ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val)

The TRS R consists of the following rules:

   ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N))
   ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N))
   ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val)
   U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val)
   U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val)
   ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
ackermann_in_gag(x1, x2, x3)  =  ackermann_in_gag(x1, x3)

0  =  0

s(x1)  =  s(x1)

ackermann_out_gag(x1, x2, x3)  =  ackermann_out_gag(x1, x3)

U1_gag(x1, x2, x3)  =  U1_gag(x1, x2, x3)

ackermann_in_ggg(x1, x2, x3)  =  ackermann_in_ggg(x1, x2, x3)

ackermann_out_ggg(x1, x2, x3)  =  ackermann_out_ggg(x1, x2, x3)

U1_ggg(x1, x2, x3)  =  U1_ggg(x1, x2, x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x2, x3, x4)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x1, x2, x3)

U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x1, x2, x3, x4)

U2_gag(x1, x2, x3, x4)  =  U2_gag(x1, x3, x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa(x1)

U1_gaa(x1, x2, x3)  =  U1_gaa(x1, x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x1, x4)

U3_gag(x1, x2, x3, x4)  =  U3_gag(x1, x3, x4)

ACKERMANN_IN_GGG(x1, x2, x3)  =  ACKERMANN_IN_GGG(x1, x2, x3)

U2_GGG(x1, x2, x3, x4)  =  U2_GGG(x1, x2, x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(28) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(29)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val)
   ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val)

The TRS R consists of the following rules:

   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
0  =  0

s(x1)  =  s(x1)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x1, x2, x3)

U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)

ACKERMANN_IN_GGG(x1, x2, x3)  =  ACKERMANN_IN_GGG(x1, x2, x3)

U2_GGG(x1, x2, x3, x4)  =  U2_GGG(x1, x2, x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(30) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(31)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val)
   ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N))
   U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val)

The TRS R consists of the following rules:

   ackermann_in_gga(s(M), 0) -> U1_gga(M, ackermann_in_gga(M, s(0)))
   ackermann_in_gga(s(M), s(N)) -> U2_gga(M, N, ackermann_in_gga(s(M), N))
   U1_gga(M, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_gga(M, N, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, ackermann_in_gga(M, Val1))
   ackermann_in_gga(0, N) -> ackermann_out_gga(0, N, s(N))
   U3_gga(M, N, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)

The set Q consists of the following terms:

   ackermann_in_gga(x0, x1)
   U1_gga(x0, x1)
   U2_gga(x0, x1, x2)
   U3_gga(x0, x1, x2)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(32) QDPSizeChangeProof (EQUIVALENT)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 

From the DPs we obtained the following set of size-change graphs:
*ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N))
The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3


*U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val)
The graph contains the following edges 1 >= 1, 4 > 1, 4 > 2, 3 >= 3


*ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val)
The graph contains the following edges 1 > 1, 3 >= 3


----------------------------------------

(33)
YES

----------------------------------------

(34)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAG(s(M), s(N), Val) -> U2_GAG(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAG(M, Val1, Val)

The TRS R consists of the following rules:

   ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N))
   ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N))
   ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val)
   U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val)
   U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val)
   ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
ackermann_in_gag(x1, x2, x3)  =  ackermann_in_gag(x1, x3)

0  =  0

s(x1)  =  s(x1)

ackermann_out_gag(x1, x2, x3)  =  ackermann_out_gag(x1, x3)

U1_gag(x1, x2, x3)  =  U1_gag(x1, x2, x3)

ackermann_in_ggg(x1, x2, x3)  =  ackermann_in_ggg(x1, x2, x3)

ackermann_out_ggg(x1, x2, x3)  =  ackermann_out_ggg(x1, x2, x3)

U1_ggg(x1, x2, x3)  =  U1_ggg(x1, x2, x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x2, x3, x4)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x1, x2, x3)

U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x1, x2, x3, x4)

U2_gag(x1, x2, x3, x4)  =  U2_gag(x1, x3, x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa(x1)

U1_gaa(x1, x2, x3)  =  U1_gaa(x1, x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x1, x4)

U3_gag(x1, x2, x3, x4)  =  U3_gag(x1, x3, x4)

ACKERMANN_IN_GAG(x1, x2, x3)  =  ACKERMANN_IN_GAG(x1, x3)

U2_GAG(x1, x2, x3, x4)  =  U2_GAG(x1, x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(35) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(36)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAG(s(M), s(N), Val) -> U2_GAG(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAG(M, Val1, Val)

The TRS R consists of the following rules:

   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)

The argument filtering Pi contains the following mapping:
0  =  0

s(x1)  =  s(x1)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x1, x2, x3)

U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa(x1)

U1_gaa(x1, x2, x3)  =  U1_gaa(x1, x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x1, x4)

ACKERMANN_IN_GAG(x1, x2, x3)  =  ACKERMANN_IN_GAG(x1, x3)

U2_GAG(x1, x2, x3, x4)  =  U2_GAG(x1, x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(37) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(38)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAG(s(M), Val) -> U2_GAG(M, Val, ackermann_in_gaa(s(M)))
   U2_GAG(M, Val, ackermann_out_gaa(s(M))) -> ACKERMANN_IN_GAG(M, Val)

The TRS R consists of the following rules:

   ackermann_in_gaa(s(M)) -> U1_gaa(M, ackermann_in_gga(M, s(0)))
   ackermann_in_gaa(s(M)) -> U2_gaa(M, ackermann_in_gaa(s(M)))
   U1_gaa(M, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M))
   U2_gaa(M, ackermann_out_gaa(s(M))) -> U3_gaa(M, ackermann_in_gaa(M))
   ackermann_in_gga(0, N) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), s(N)) -> U2_gga(M, N, ackermann_in_gga(s(M), N))
   U3_gaa(M, ackermann_out_gaa(M)) -> ackermann_out_gaa(s(M))
   U2_gga(M, N, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, ackermann_in_gga(M, Val1))
   ackermann_in_gaa(0) -> ackermann_out_gaa(0)
   ackermann_in_gga(s(M), 0) -> U1_gga(M, ackermann_in_gga(M, s(0)))
   U3_gga(M, N, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)

The set Q consists of the following terms:

   ackermann_in_gaa(x0)
   U1_gaa(x0, x1)
   U2_gaa(x0, x1)
   ackermann_in_gga(x0, x1)
   U3_gaa(x0, x1)
   U2_gga(x0, x1, x2)
   U3_gga(x0, x1, x2)
   U1_gga(x0, x1)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(39) QDPSizeChangeProof (EQUIVALENT)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 

From the DPs we obtained the following set of size-change graphs:
*U2_GAG(M, Val, ackermann_out_gaa(s(M))) -> ACKERMANN_IN_GAG(M, Val)
The graph contains the following edges 1 >= 1, 3 > 1, 2 >= 2


*ACKERMANN_IN_GAG(s(M), Val) -> U2_GAG(M, Val, ackermann_in_gaa(s(M)))
The graph contains the following edges 1 > 1, 2 >= 2


----------------------------------------

(40)
YES

----------------------------------------

(41) PrologToPiTRSProof (SOUND)
We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes:

ackermann_in_3: (b,f,b) (b,b,b) (b,b,f) (b,f,f)

Transforming Prolog into the following Term Rewriting System:

Pi-finite rewrite system:
The TRS R consists of the following rules:

   ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N))
   ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N))
   ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val)
   U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val)
   U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val)
   ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
ackermann_in_gag(x1, x2, x3)  =  ackermann_in_gag(x1, x3)

0  =  0

s(x1)  =  s(x1)

ackermann_out_gag(x1, x2, x3)  =  ackermann_out_gag

U1_gag(x1, x2, x3)  =  U1_gag(x3)

ackermann_in_ggg(x1, x2, x3)  =  ackermann_in_ggg(x1, x2, x3)

ackermann_out_ggg(x1, x2, x3)  =  ackermann_out_ggg

U1_ggg(x1, x2, x3)  =  U1_ggg(x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x3, x4)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x3)

U1_gga(x1, x2, x3)  =  U1_gga(x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x4)

U2_gag(x1, x2, x3, x4)  =  U2_gag(x1, x3, x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa

U1_gaa(x1, x2, x3)  =  U1_gaa(x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x4)

U3_gag(x1, x2, x3, x4)  =  U3_gag(x4)





Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog



----------------------------------------

(42)
Obligation:
Pi-finite rewrite system:
The TRS R consists of the following rules:

   ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N))
   ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N))
   ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val)
   U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val)
   U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val)
   ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
ackermann_in_gag(x1, x2, x3)  =  ackermann_in_gag(x1, x3)

0  =  0

s(x1)  =  s(x1)

ackermann_out_gag(x1, x2, x3)  =  ackermann_out_gag

U1_gag(x1, x2, x3)  =  U1_gag(x3)

ackermann_in_ggg(x1, x2, x3)  =  ackermann_in_ggg(x1, x2, x3)

ackermann_out_ggg(x1, x2, x3)  =  ackermann_out_ggg

U1_ggg(x1, x2, x3)  =  U1_ggg(x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x3, x4)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x3)

U1_gga(x1, x2, x3)  =  U1_gga(x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x4)

U2_gag(x1, x2, x3, x4)  =  U2_gag(x1, x3, x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa

U1_gaa(x1, x2, x3)  =  U1_gaa(x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x4)

U3_gag(x1, x2, x3, x4)  =  U3_gag(x4)



----------------------------------------

(43) 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:

   ACKERMANN_IN_GAG(s(M), 0, Val) -> U1_GAG(M, Val, ackermann_in_ggg(M, s(0), Val))
   ACKERMANN_IN_GAG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val)
   ACKERMANN_IN_GGG(s(M), 0, Val) -> U1_GGG(M, Val, ackermann_in_ggg(M, s(0), Val))
   ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val)
   ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ACKERMANN_IN_GGG(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1)
   ACKERMANN_IN_GGA(s(M), 0, Val) -> U1_GGA(M, Val, ackermann_in_gga(M, s(0), Val))
   ACKERMANN_IN_GGA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val)
   ACKERMANN_IN_GGA(s(M), s(N), Val) -> U2_GGA(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ACKERMANN_IN_GGA(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1)
   U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_GGA(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1, Val)
   U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_GGG(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val)
   ACKERMANN_IN_GAG(s(M), s(N), Val) -> U2_GAG(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ACKERMANN_IN_GAG(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1)
   ACKERMANN_IN_GAA(s(M), 0, Val) -> U1_GAA(M, Val, ackermann_in_gga(M, s(0), Val))
   ACKERMANN_IN_GAA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val)
   ACKERMANN_IN_GAA(s(M), s(N), Val) -> U2_GAA(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ACKERMANN_IN_GAA(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1)
   U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_GAA(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAA(M, Val1, Val)
   U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_GAG(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAG(M, Val1, Val)

The TRS R consists of the following rules:

   ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N))
   ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N))
   ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val)
   U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val)
   U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val)
   ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
ackermann_in_gag(x1, x2, x3)  =  ackermann_in_gag(x1, x3)

0  =  0

s(x1)  =  s(x1)

ackermann_out_gag(x1, x2, x3)  =  ackermann_out_gag

U1_gag(x1, x2, x3)  =  U1_gag(x3)

ackermann_in_ggg(x1, x2, x3)  =  ackermann_in_ggg(x1, x2, x3)

ackermann_out_ggg(x1, x2, x3)  =  ackermann_out_ggg

U1_ggg(x1, x2, x3)  =  U1_ggg(x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x3, x4)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x3)

U1_gga(x1, x2, x3)  =  U1_gga(x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x4)

U2_gag(x1, x2, x3, x4)  =  U2_gag(x1, x3, x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa

U1_gaa(x1, x2, x3)  =  U1_gaa(x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x4)

U3_gag(x1, x2, x3, x4)  =  U3_gag(x4)

ACKERMANN_IN_GAG(x1, x2, x3)  =  ACKERMANN_IN_GAG(x1, x3)

U1_GAG(x1, x2, x3)  =  U1_GAG(x3)

ACKERMANN_IN_GGG(x1, x2, x3)  =  ACKERMANN_IN_GGG(x1, x2, x3)

U1_GGG(x1, x2, x3)  =  U1_GGG(x3)

U2_GGG(x1, x2, x3, x4)  =  U2_GGG(x1, x3, x4)

ACKERMANN_IN_GGA(x1, x2, x3)  =  ACKERMANN_IN_GGA(x1, x2)

U1_GGA(x1, x2, x3)  =  U1_GGA(x3)

U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x4)

U3_GGA(x1, x2, x3, x4)  =  U3_GGA(x4)

U3_GGG(x1, x2, x3, x4)  =  U3_GGG(x4)

U2_GAG(x1, x2, x3, x4)  =  U2_GAG(x1, x3, x4)

ACKERMANN_IN_GAA(x1, x2, x3)  =  ACKERMANN_IN_GAA(x1)

U1_GAA(x1, x2, x3)  =  U1_GAA(x3)

U2_GAA(x1, x2, x3, x4)  =  U2_GAA(x1, x4)

U3_GAA(x1, x2, x3, x4)  =  U3_GAA(x4)

U3_GAG(x1, x2, x3, x4)  =  U3_GAG(x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(44)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAG(s(M), 0, Val) -> U1_GAG(M, Val, ackermann_in_ggg(M, s(0), Val))
   ACKERMANN_IN_GAG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val)
   ACKERMANN_IN_GGG(s(M), 0, Val) -> U1_GGG(M, Val, ackermann_in_ggg(M, s(0), Val))
   ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val)
   ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ACKERMANN_IN_GGG(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1)
   ACKERMANN_IN_GGA(s(M), 0, Val) -> U1_GGA(M, Val, ackermann_in_gga(M, s(0), Val))
   ACKERMANN_IN_GGA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val)
   ACKERMANN_IN_GGA(s(M), s(N), Val) -> U2_GGA(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ACKERMANN_IN_GGA(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1)
   U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_GGA(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1, Val)
   U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_GGG(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val)
   ACKERMANN_IN_GAG(s(M), s(N), Val) -> U2_GAG(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ACKERMANN_IN_GAG(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1)
   ACKERMANN_IN_GAA(s(M), 0, Val) -> U1_GAA(M, Val, ackermann_in_gga(M, s(0), Val))
   ACKERMANN_IN_GAA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val)
   ACKERMANN_IN_GAA(s(M), s(N), Val) -> U2_GAA(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ACKERMANN_IN_GAA(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1)
   U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_GAA(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAA(M, Val1, Val)
   U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_GAG(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAG(M, Val1, Val)

The TRS R consists of the following rules:

   ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N))
   ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N))
   ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val)
   U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val)
   U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val)
   ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
ackermann_in_gag(x1, x2, x3)  =  ackermann_in_gag(x1, x3)

0  =  0

s(x1)  =  s(x1)

ackermann_out_gag(x1, x2, x3)  =  ackermann_out_gag

U1_gag(x1, x2, x3)  =  U1_gag(x3)

ackermann_in_ggg(x1, x2, x3)  =  ackermann_in_ggg(x1, x2, x3)

ackermann_out_ggg(x1, x2, x3)  =  ackermann_out_ggg

U1_ggg(x1, x2, x3)  =  U1_ggg(x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x3, x4)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x3)

U1_gga(x1, x2, x3)  =  U1_gga(x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x4)

U2_gag(x1, x2, x3, x4)  =  U2_gag(x1, x3, x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa

U1_gaa(x1, x2, x3)  =  U1_gaa(x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x4)

U3_gag(x1, x2, x3, x4)  =  U3_gag(x4)

ACKERMANN_IN_GAG(x1, x2, x3)  =  ACKERMANN_IN_GAG(x1, x3)

U1_GAG(x1, x2, x3)  =  U1_GAG(x3)

ACKERMANN_IN_GGG(x1, x2, x3)  =  ACKERMANN_IN_GGG(x1, x2, x3)

U1_GGG(x1, x2, x3)  =  U1_GGG(x3)

U2_GGG(x1, x2, x3, x4)  =  U2_GGG(x1, x3, x4)

ACKERMANN_IN_GGA(x1, x2, x3)  =  ACKERMANN_IN_GGA(x1, x2)

U1_GGA(x1, x2, x3)  =  U1_GGA(x3)

U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x4)

U3_GGA(x1, x2, x3, x4)  =  U3_GGA(x4)

U3_GGG(x1, x2, x3, x4)  =  U3_GGG(x4)

U2_GAG(x1, x2, x3, x4)  =  U2_GAG(x1, x3, x4)

ACKERMANN_IN_GAA(x1, x2, x3)  =  ACKERMANN_IN_GAA(x1)

U1_GAA(x1, x2, x3)  =  U1_GAA(x3)

U2_GAA(x1, x2, x3, x4)  =  U2_GAA(x1, x4)

U3_GAA(x1, x2, x3, x4)  =  U3_GAA(x4)

U3_GAG(x1, x2, x3, x4)  =  U3_GAG(x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(45) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 12 less nodes.
----------------------------------------

(46)
Complex Obligation (AND)

----------------------------------------

(47)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GGA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val)
   ACKERMANN_IN_GGA(s(M), s(N), Val) -> U2_GGA(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1, Val)
   ACKERMANN_IN_GGA(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1)

The TRS R consists of the following rules:

   ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N))
   ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N))
   ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val)
   U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val)
   U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val)
   ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
ackermann_in_gag(x1, x2, x3)  =  ackermann_in_gag(x1, x3)

0  =  0

s(x1)  =  s(x1)

ackermann_out_gag(x1, x2, x3)  =  ackermann_out_gag

U1_gag(x1, x2, x3)  =  U1_gag(x3)

ackermann_in_ggg(x1, x2, x3)  =  ackermann_in_ggg(x1, x2, x3)

ackermann_out_ggg(x1, x2, x3)  =  ackermann_out_ggg

U1_ggg(x1, x2, x3)  =  U1_ggg(x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x3, x4)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x3)

U1_gga(x1, x2, x3)  =  U1_gga(x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x4)

U2_gag(x1, x2, x3, x4)  =  U2_gag(x1, x3, x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa

U1_gaa(x1, x2, x3)  =  U1_gaa(x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x4)

U3_gag(x1, x2, x3, x4)  =  U3_gag(x4)

ACKERMANN_IN_GGA(x1, x2, x3)  =  ACKERMANN_IN_GGA(x1, x2)

U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(48) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(49)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GGA(s(M), 0, Val) -> ACKERMANN_IN_GGA(M, s(0), Val)
   ACKERMANN_IN_GGA(s(M), s(N), Val) -> U2_GGA(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_GGA(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGA(M, Val1, Val)
   ACKERMANN_IN_GGA(s(M), s(N), Val) -> ACKERMANN_IN_GGA(s(M), N, Val1)

The TRS R consists of the following rules:

   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
0  =  0

s(x1)  =  s(x1)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x3)

U1_gga(x1, x2, x3)  =  U1_gga(x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x4)

ACKERMANN_IN_GGA(x1, x2, x3)  =  ACKERMANN_IN_GGA(x1, x2)

U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(50) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(51)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GGA(s(M), 0) -> ACKERMANN_IN_GGA(M, s(0))
   ACKERMANN_IN_GGA(s(M), s(N)) -> U2_GGA(M, ackermann_in_gga(s(M), N))
   U2_GGA(M, ackermann_out_gga(Val1)) -> ACKERMANN_IN_GGA(M, Val1)
   ACKERMANN_IN_GGA(s(M), s(N)) -> ACKERMANN_IN_GGA(s(M), N)

The TRS R consists of the following rules:

   ackermann_in_gga(s(M), 0) -> U1_gga(ackermann_in_gga(M, s(0)))
   ackermann_in_gga(s(M), s(N)) -> U2_gga(M, ackermann_in_gga(s(M), N))
   U1_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val)
   U2_gga(M, ackermann_out_gga(Val1)) -> U3_gga(ackermann_in_gga(M, Val1))
   ackermann_in_gga(0, N) -> ackermann_out_gga(s(N))
   U3_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val)

The set Q consists of the following terms:

   ackermann_in_gga(x0, x1)
   U1_gga(x0)
   U2_gga(x0, x1)
   U3_gga(x0)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(52) 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:
*ACKERMANN_IN_GGA(s(M), s(N)) -> ACKERMANN_IN_GGA(s(M), N)
The graph contains the following edges 1 >= 1, 2 > 2


*ACKERMANN_IN_GGA(s(M), s(N)) -> U2_GGA(M, ackermann_in_gga(s(M), N))
The graph contains the following edges 1 > 1


*U2_GGA(M, ackermann_out_gga(Val1)) -> ACKERMANN_IN_GGA(M, Val1)
The graph contains the following edges 1 >= 1, 2 > 2


*ACKERMANN_IN_GGA(s(M), 0) -> ACKERMANN_IN_GGA(M, s(0))
The graph contains the following edges 1 > 1


----------------------------------------

(53)
YES

----------------------------------------

(54)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAA(s(M), s(N), Val) -> U2_GAA(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAA(M, Val1, Val)
   ACKERMANN_IN_GAA(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1)

The TRS R consists of the following rules:

   ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N))
   ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N))
   ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val)
   U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val)
   U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val)
   ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
ackermann_in_gag(x1, x2, x3)  =  ackermann_in_gag(x1, x3)

0  =  0

s(x1)  =  s(x1)

ackermann_out_gag(x1, x2, x3)  =  ackermann_out_gag

U1_gag(x1, x2, x3)  =  U1_gag(x3)

ackermann_in_ggg(x1, x2, x3)  =  ackermann_in_ggg(x1, x2, x3)

ackermann_out_ggg(x1, x2, x3)  =  ackermann_out_ggg

U1_ggg(x1, x2, x3)  =  U1_ggg(x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x3, x4)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x3)

U1_gga(x1, x2, x3)  =  U1_gga(x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x4)

U2_gag(x1, x2, x3, x4)  =  U2_gag(x1, x3, x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa

U1_gaa(x1, x2, x3)  =  U1_gaa(x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x4)

U3_gag(x1, x2, x3, x4)  =  U3_gag(x4)

ACKERMANN_IN_GAA(x1, x2, x3)  =  ACKERMANN_IN_GAA(x1)

U2_GAA(x1, x2, x3, x4)  =  U2_GAA(x1, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(55) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(56)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAA(s(M), s(N), Val) -> U2_GAA(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_GAA(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAA(M, Val1, Val)
   ACKERMANN_IN_GAA(s(M), s(N), Val) -> ACKERMANN_IN_GAA(s(M), N, Val1)

The TRS R consists of the following rules:

   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)

The argument filtering Pi contains the following mapping:
0  =  0

s(x1)  =  s(x1)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x3)

U1_gga(x1, x2, x3)  =  U1_gga(x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa

U1_gaa(x1, x2, x3)  =  U1_gaa(x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x4)

ACKERMANN_IN_GAA(x1, x2, x3)  =  ACKERMANN_IN_GAA(x1)

U2_GAA(x1, x2, x3, x4)  =  U2_GAA(x1, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(57) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(58)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAA(s(M)) -> U2_GAA(M, ackermann_in_gaa(s(M)))
   U2_GAA(M, ackermann_out_gaa) -> ACKERMANN_IN_GAA(M)
   ACKERMANN_IN_GAA(s(M)) -> ACKERMANN_IN_GAA(s(M))

The TRS R consists of the following rules:

   ackermann_in_gaa(s(M)) -> U1_gaa(ackermann_in_gga(M, s(0)))
   ackermann_in_gaa(s(M)) -> U2_gaa(M, ackermann_in_gaa(s(M)))
   U1_gaa(ackermann_out_gga(Val)) -> ackermann_out_gaa
   U2_gaa(M, ackermann_out_gaa) -> U3_gaa(ackermann_in_gaa(M))
   ackermann_in_gga(0, N) -> ackermann_out_gga(s(N))
   ackermann_in_gga(s(M), s(N)) -> U2_gga(M, ackermann_in_gga(s(M), N))
   U3_gaa(ackermann_out_gaa) -> ackermann_out_gaa
   U2_gga(M, ackermann_out_gga(Val1)) -> U3_gga(ackermann_in_gga(M, Val1))
   ackermann_in_gaa(0) -> ackermann_out_gaa
   ackermann_in_gga(s(M), 0) -> U1_gga(ackermann_in_gga(M, s(0)))
   U3_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val)
   U1_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val)

The set Q consists of the following terms:

   ackermann_in_gaa(x0)
   U1_gaa(x0)
   U2_gaa(x0, x1)
   ackermann_in_gga(x0, x1)
   U3_gaa(x0)
   U2_gga(x0, x1)
   U3_gga(x0)
   U1_gga(x0)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(59) QDPQMonotonicMRRProof (EQUIVALENT)
By using the Q-monotonic rule removal processor with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented such that it always occurs at a strongly monotonic position in a (P,Q,R)-chain.

Strictly oriented dependency pairs:

   ACKERMANN_IN_GAA(s(M)) -> U2_GAA(M, ackermann_in_gaa(s(M)))
   U2_GAA(M, ackermann_out_gaa) -> ACKERMANN_IN_GAA(M)


Used ordering: Polynomial interpretation [POLO]:

   POL(0) = 1
   POL(ACKERMANN_IN_GAA(x_1)) = 2*x_1
   POL(U1_gaa(x_1)) = 0
   POL(U1_gga(x_1)) = 2
   POL(U2_GAA(x_1, x_2)) = 1 + 2*x_1
   POL(U2_gaa(x_1, x_2)) = 0
   POL(U2_gga(x_1, x_2)) = 2
   POL(U3_gaa(x_1)) = 0
   POL(U3_gga(x_1)) = 1
   POL(ackermann_in_gaa(x_1)) = 0
   POL(ackermann_in_gga(x_1, x_2)) = 2*x_1
   POL(ackermann_out_gaa) = 0
   POL(ackermann_out_gga(x_1)) = 0
   POL(s(x_1)) = 2 + 2*x_1


----------------------------------------

(60)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAA(s(M)) -> ACKERMANN_IN_GAA(s(M))

The TRS R consists of the following rules:

   ackermann_in_gaa(s(M)) -> U1_gaa(ackermann_in_gga(M, s(0)))
   ackermann_in_gaa(s(M)) -> U2_gaa(M, ackermann_in_gaa(s(M)))
   U1_gaa(ackermann_out_gga(Val)) -> ackermann_out_gaa
   U2_gaa(M, ackermann_out_gaa) -> U3_gaa(ackermann_in_gaa(M))
   ackermann_in_gga(0, N) -> ackermann_out_gga(s(N))
   ackermann_in_gga(s(M), s(N)) -> U2_gga(M, ackermann_in_gga(s(M), N))
   U3_gaa(ackermann_out_gaa) -> ackermann_out_gaa
   U2_gga(M, ackermann_out_gga(Val1)) -> U3_gga(ackermann_in_gga(M, Val1))
   ackermann_in_gaa(0) -> ackermann_out_gaa
   ackermann_in_gga(s(M), 0) -> U1_gga(ackermann_in_gga(M, s(0)))
   U3_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val)
   U1_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val)

The set Q consists of the following terms:

   ackermann_in_gaa(x0)
   U1_gaa(x0)
   U2_gaa(x0, x1)
   ackermann_in_gga(x0, x1)
   U3_gaa(x0)
   U2_gga(x0, x1)
   U3_gga(x0)
   U1_gga(x0)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(61) UsableRulesProof (EQUIVALENT)
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.
----------------------------------------

(62)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAA(s(M)) -> ACKERMANN_IN_GAA(s(M))

R is empty.
The set Q consists of the following terms:

   ackermann_in_gaa(x0)
   U1_gaa(x0)
   U2_gaa(x0, x1)
   ackermann_in_gga(x0, x1)
   U3_gaa(x0)
   U2_gga(x0, x1)
   U3_gga(x0)
   U1_gga(x0)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(63) QReductionProof (EQUIVALENT)
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.[THIEMANN].

   ackermann_in_gaa(x0)
   U1_gaa(x0)
   U2_gaa(x0, x1)
   ackermann_in_gga(x0, x1)
   U3_gaa(x0)
   U2_gga(x0, x1)
   U3_gga(x0)
   U1_gga(x0)


----------------------------------------

(64)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAA(s(M)) -> ACKERMANN_IN_GAA(s(M))

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(65) NonTerminationLoopProof (COMPLETE)
We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by semiunifying a rule from P directly.

s = ACKERMANN_IN_GAA(s(M)) evaluates to  t =ACKERMANN_IN_GAA(s(M))

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
* Matcher: [ ]
* Semiunifier: [ ]

--------------------------------------------------------------------------------
Rewriting sequence

The DP semiunifies directly so there is only one rewrite step from ACKERMANN_IN_GAA(s(M)) to ACKERMANN_IN_GAA(s(M)).




----------------------------------------

(66)
NO

----------------------------------------

(67)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val)
   ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val)

The TRS R consists of the following rules:

   ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N))
   ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N))
   ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val)
   U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val)
   U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val)
   ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
ackermann_in_gag(x1, x2, x3)  =  ackermann_in_gag(x1, x3)

0  =  0

s(x1)  =  s(x1)

ackermann_out_gag(x1, x2, x3)  =  ackermann_out_gag

U1_gag(x1, x2, x3)  =  U1_gag(x3)

ackermann_in_ggg(x1, x2, x3)  =  ackermann_in_ggg(x1, x2, x3)

ackermann_out_ggg(x1, x2, x3)  =  ackermann_out_ggg

U1_ggg(x1, x2, x3)  =  U1_ggg(x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x3, x4)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x3)

U1_gga(x1, x2, x3)  =  U1_gga(x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x4)

U2_gag(x1, x2, x3, x4)  =  U2_gag(x1, x3, x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa

U1_gaa(x1, x2, x3)  =  U1_gaa(x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x4)

U3_gag(x1, x2, x3, x4)  =  U3_gag(x4)

ACKERMANN_IN_GGG(x1, x2, x3)  =  ACKERMANN_IN_GGG(x1, x2, x3)

U2_GGG(x1, x2, x3, x4)  =  U2_GGG(x1, x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(68) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(69)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val)
   ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_GGG(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val)

The TRS R consists of the following rules:

   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
0  =  0

s(x1)  =  s(x1)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x3)

U1_gga(x1, x2, x3)  =  U1_gga(x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x4)

ACKERMANN_IN_GGG(x1, x2, x3)  =  ACKERMANN_IN_GGG(x1, x2, x3)

U2_GGG(x1, x2, x3, x4)  =  U2_GGG(x1, x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(70) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(71)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val)
   ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, Val, ackermann_in_gga(s(M), N))
   U2_GGG(M, Val, ackermann_out_gga(Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val)

The TRS R consists of the following rules:

   ackermann_in_gga(s(M), 0) -> U1_gga(ackermann_in_gga(M, s(0)))
   ackermann_in_gga(s(M), s(N)) -> U2_gga(M, ackermann_in_gga(s(M), N))
   U1_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val)
   U2_gga(M, ackermann_out_gga(Val1)) -> U3_gga(ackermann_in_gga(M, Val1))
   ackermann_in_gga(0, N) -> ackermann_out_gga(s(N))
   U3_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val)

The set Q consists of the following terms:

   ackermann_in_gga(x0, x1)
   U1_gga(x0)
   U2_gga(x0, x1)
   U3_gga(x0)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(72) 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:
*ACKERMANN_IN_GGG(s(M), s(N), Val) -> U2_GGG(M, Val, ackermann_in_gga(s(M), N))
The graph contains the following edges 1 > 1, 3 >= 2


*U2_GGG(M, Val, ackermann_out_gga(Val1)) -> ACKERMANN_IN_GGG(M, Val1, Val)
The graph contains the following edges 1 >= 1, 3 > 2, 2 >= 3


*ACKERMANN_IN_GGG(s(M), 0, Val) -> ACKERMANN_IN_GGG(M, s(0), Val)
The graph contains the following edges 1 > 1, 3 >= 3


----------------------------------------

(73)
YES

----------------------------------------

(74)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAG(s(M), s(N), Val) -> U2_GAG(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAG(M, Val1, Val)

The TRS R consists of the following rules:

   ackermann_in_gag(0, N, s(N)) -> ackermann_out_gag(0, N, s(N))
   ackermann_in_gag(s(M), 0, Val) -> U1_gag(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(0, N, s(N)) -> ackermann_out_ggg(0, N, s(N))
   ackermann_in_ggg(s(M), 0, Val) -> U1_ggg(M, Val, ackermann_in_ggg(M, s(0), Val))
   ackermann_in_ggg(s(M), s(N), Val) -> U2_ggg(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)
   U2_ggg(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_ggg(M, N, Val, ackermann_in_ggg(M, Val1, Val))
   U3_ggg(M, N, Val, ackermann_out_ggg(M, Val1, Val)) -> ackermann_out_ggg(s(M), s(N), Val)
   U1_ggg(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_ggg(s(M), 0, Val)
   U1_gag(M, Val, ackermann_out_ggg(M, s(0), Val)) -> ackermann_out_gag(s(M), 0, Val)
   ackermann_in_gag(s(M), s(N), Val) -> U2_gag(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gag(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gag(M, N, Val, ackermann_in_gag(M, Val1, Val))
   U3_gag(M, N, Val, ackermann_out_gag(M, Val1, Val)) -> ackermann_out_gag(s(M), s(N), Val)

The argument filtering Pi contains the following mapping:
ackermann_in_gag(x1, x2, x3)  =  ackermann_in_gag(x1, x3)

0  =  0

s(x1)  =  s(x1)

ackermann_out_gag(x1, x2, x3)  =  ackermann_out_gag

U1_gag(x1, x2, x3)  =  U1_gag(x3)

ackermann_in_ggg(x1, x2, x3)  =  ackermann_in_ggg(x1, x2, x3)

ackermann_out_ggg(x1, x2, x3)  =  ackermann_out_ggg

U1_ggg(x1, x2, x3)  =  U1_ggg(x3)

U2_ggg(x1, x2, x3, x4)  =  U2_ggg(x1, x3, x4)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x3)

U1_gga(x1, x2, x3)  =  U1_gga(x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x4)

U3_ggg(x1, x2, x3, x4)  =  U3_ggg(x4)

U2_gag(x1, x2, x3, x4)  =  U2_gag(x1, x3, x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa

U1_gaa(x1, x2, x3)  =  U1_gaa(x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x4)

U3_gag(x1, x2, x3, x4)  =  U3_gag(x4)

ACKERMANN_IN_GAG(x1, x2, x3)  =  ACKERMANN_IN_GAG(x1, x3)

U2_GAG(x1, x2, x3, x4)  =  U2_GAG(x1, x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(75) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(76)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAG(s(M), s(N), Val) -> U2_GAG(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U2_GAG(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> ACKERMANN_IN_GAG(M, Val1, Val)

The TRS R consists of the following rules:

   ackermann_in_gaa(s(M), 0, Val) -> U1_gaa(M, Val, ackermann_in_gga(M, s(0), Val))
   ackermann_in_gaa(s(M), s(N), Val) -> U2_gaa(M, N, Val, ackermann_in_gaa(s(M), N, Val1))
   U1_gaa(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gaa(s(M), 0, Val)
   U2_gaa(M, N, Val, ackermann_out_gaa(s(M), N, Val1)) -> U3_gaa(M, N, Val, ackermann_in_gaa(M, Val1, Val))
   ackermann_in_gga(0, N, s(N)) -> ackermann_out_gga(0, N, s(N))
   ackermann_in_gga(s(M), s(N), Val) -> U2_gga(M, N, Val, ackermann_in_gga(s(M), N, Val1))
   U3_gaa(M, N, Val, ackermann_out_gaa(M, Val1, Val)) -> ackermann_out_gaa(s(M), s(N), Val)
   U2_gga(M, N, Val, ackermann_out_gga(s(M), N, Val1)) -> U3_gga(M, N, Val, ackermann_in_gga(M, Val1, Val))
   ackermann_in_gaa(0, N, s(N)) -> ackermann_out_gaa(0, N, s(N))
   ackermann_in_gga(s(M), 0, Val) -> U1_gga(M, Val, ackermann_in_gga(M, s(0), Val))
   U3_gga(M, N, Val, ackermann_out_gga(M, Val1, Val)) -> ackermann_out_gga(s(M), s(N), Val)
   U1_gga(M, Val, ackermann_out_gga(M, s(0), Val)) -> ackermann_out_gga(s(M), 0, Val)

The argument filtering Pi contains the following mapping:
0  =  0

s(x1)  =  s(x1)

ackermann_in_gga(x1, x2, x3)  =  ackermann_in_gga(x1, x2)

ackermann_out_gga(x1, x2, x3)  =  ackermann_out_gga(x3)

U1_gga(x1, x2, x3)  =  U1_gga(x3)

U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x4)

U3_gga(x1, x2, x3, x4)  =  U3_gga(x4)

ackermann_in_gaa(x1, x2, x3)  =  ackermann_in_gaa(x1)

ackermann_out_gaa(x1, x2, x3)  =  ackermann_out_gaa

U1_gaa(x1, x2, x3)  =  U1_gaa(x3)

U2_gaa(x1, x2, x3, x4)  =  U2_gaa(x1, x4)

U3_gaa(x1, x2, x3, x4)  =  U3_gaa(x4)

ACKERMANN_IN_GAG(x1, x2, x3)  =  ACKERMANN_IN_GAG(x1, x3)

U2_GAG(x1, x2, x3, x4)  =  U2_GAG(x1, x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(77) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(78)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   ACKERMANN_IN_GAG(s(M), Val) -> U2_GAG(M, Val, ackermann_in_gaa(s(M)))
   U2_GAG(M, Val, ackermann_out_gaa) -> ACKERMANN_IN_GAG(M, Val)

The TRS R consists of the following rules:

   ackermann_in_gaa(s(M)) -> U1_gaa(ackermann_in_gga(M, s(0)))
   ackermann_in_gaa(s(M)) -> U2_gaa(M, ackermann_in_gaa(s(M)))
   U1_gaa(ackermann_out_gga(Val)) -> ackermann_out_gaa
   U2_gaa(M, ackermann_out_gaa) -> U3_gaa(ackermann_in_gaa(M))
   ackermann_in_gga(0, N) -> ackermann_out_gga(s(N))
   ackermann_in_gga(s(M), s(N)) -> U2_gga(M, ackermann_in_gga(s(M), N))
   U3_gaa(ackermann_out_gaa) -> ackermann_out_gaa
   U2_gga(M, ackermann_out_gga(Val1)) -> U3_gga(ackermann_in_gga(M, Val1))
   ackermann_in_gaa(0) -> ackermann_out_gaa
   ackermann_in_gga(s(M), 0) -> U1_gga(ackermann_in_gga(M, s(0)))
   U3_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val)
   U1_gga(ackermann_out_gga(Val)) -> ackermann_out_gga(Val)

The set Q consists of the following terms:

   ackermann_in_gaa(x0)
   U1_gaa(x0)
   U2_gaa(x0, x1)
   ackermann_in_gga(x0, x1)
   U3_gaa(x0)
   U2_gga(x0, x1)
   U3_gga(x0)
   U1_gga(x0)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(79) 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:
*U2_GAG(M, Val, ackermann_out_gaa) -> ACKERMANN_IN_GAG(M, Val)
The graph contains the following edges 1 >= 1, 2 >= 2


*ACKERMANN_IN_GAG(s(M), Val) -> U2_GAG(M, Val, ackermann_in_gaa(s(M)))
The graph contains the following edges 1 > 1, 2 >= 2


----------------------------------------

(80)
YES

----------------------------------------

(81) PrologToDTProblemTransformerProof (SOUND)
Built DT problem from termination graph DT10.

{
    "root": 3,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(ackermann (0) N (s N))",
                null
            ],
            [
                "(ackermann (s M) (0) Val)",
                "(ackermann M (s (0)) Val)"
            ],
            [
                "(ackermann (s M) (s N) Val)",
                "(',' (ackermann (s M) N Val1) (ackermann M Val1 Val))"
            ]
        ]
    },
    "graph": {
        "nodes": {
            "type": "Nodes",
            "470": {
                "goal": [{
                    "clause": 2,
                    "scope": 1,
                    "term": "(ackermann (s T8) T2 T9)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T8",
                        "T9"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "471": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T62) T65 X147) (ackermann T62 X147 T64))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T62",
                        "T64"
                    ],
                    "free": ["X147"],
                    "exprvars": []
                }
            },
            "472": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "473": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann (s T62) T65 X147)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T62"],
                    "free": ["X147"],
                    "exprvars": []
                }
            },
            "232": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T26 (s (0)) X60)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T26"],
                    "free": ["X60"],
                    "exprvars": []
                }
            },
            "474": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T62 T66 T64)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T62",
                        "T64"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "475": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 6,
                        "term": "(ackermann (s T62) T65 X147)"
                    },
                    {
                        "clause": 1,
                        "scope": 6,
                        "term": "(ackermann (s T62) T65 X147)"
                    },
                    {
                        "clause": 2,
                        "scope": 6,
                        "term": "(ackermann (s T62) T65 X147)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T62"],
                    "free": ["X147"],
                    "exprvars": []
                }
            },
            "476": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 6,
                        "term": "(ackermann (s T62) T65 X147)"
                    },
                    {
                        "clause": 2,
                        "scope": 6,
                        "term": "(ackermann (s T62) T65 X147)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T62"],
                    "free": ["X147"],
                    "exprvars": []
                }
            },
            "477": {
                "goal": [{
                    "clause": 1,
                    "scope": 6,
                    "term": "(ackermann (s T62) T65 X147)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T62"],
                    "free": ["X147"],
                    "exprvars": []
                }
            },
            "478": {
                "goal": [{
                    "clause": 2,
                    "scope": 6,
                    "term": "(ackermann (s T62) T65 X147)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T62"],
                    "free": ["X147"],
                    "exprvars": []
                }
            },
            "479": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T71 (s (0)) X167)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T71"],
                    "free": ["X167"],
                    "exprvars": []
                }
            },
            "480": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "481": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T76) T78 X182) (ackermann T76 X182 X183))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T76"],
                    "free": [
                        "X183",
                        "X182"
                    ],
                    "exprvars": []
                }
            },
            "482": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "483": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann (s T76) T78 X182)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T76"],
                    "free": ["X182"],
                    "exprvars": []
                }
            },
            "484": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T76 T79 X183)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T76"],
                    "free": ["X183"],
                    "exprvars": []
                }
            },
            "122": {
                "goal": [{
                    "clause": 2,
                    "scope": 1,
                    "term": "(ackermann (0) T2 (s T5))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T5"],
                    "free": [],
                    "exprvars": []
                }
            },
            "485": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 7,
                        "term": "(ackermann T76 T79 X183)"
                    },
                    {
                        "clause": 1,
                        "scope": 7,
                        "term": "(ackermann T76 T79 X183)"
                    },
                    {
                        "clause": 2,
                        "scope": 7,
                        "term": "(ackermann T76 T79 X183)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T76"],
                    "free": ["X183"],
                    "exprvars": []
                }
            },
            "486": {
                "goal": [{
                    "clause": 0,
                    "scope": 7,
                    "term": "(ackermann T76 T79 X183)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T76"],
                    "free": ["X183"],
                    "exprvars": []
                }
            },
            "3": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T1 T2 T3)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "245": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 4,
                        "term": "(ackermann T26 (s (0)) X60)"
                    },
                    {
                        "clause": 1,
                        "scope": 4,
                        "term": "(ackermann T26 (s (0)) X60)"
                    },
                    {
                        "clause": 2,
                        "scope": 4,
                        "term": "(ackermann T26 (s (0)) X60)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T26"],
                    "free": ["X60"],
                    "exprvars": []
                }
            },
            "487": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 7,
                        "term": "(ackermann T76 T79 X183)"
                    },
                    {
                        "clause": 2,
                        "scope": 7,
                        "term": "(ackermann T76 T79 X183)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T76"],
                    "free": ["X183"],
                    "exprvars": []
                }
            },
            "488": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "521": {
                "goal": [{
                    "clause": 1,
                    "scope": 7,
                    "term": "(ackermann T76 T79 X183)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T76"],
                    "free": ["X183"],
                    "exprvars": []
                }
            },
            "5": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(ackermann T1 T2 T3)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(ackermann T1 T2 T3)"
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(ackermann T1 T2 T3)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "489": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "522": {
                "goal": [{
                    "clause": 2,
                    "scope": 7,
                    "term": "(ackermann T76 T79 X183)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T76"],
                    "free": ["X183"],
                    "exprvars": []
                }
            },
            "523": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T91 (s (0)) X209)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T91"],
                    "free": ["X209"],
                    "exprvars": []
                }
            },
            "524": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "525": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T96) T98 X224) (ackermann T96 X224 X225))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T96"],
                    "free": [
                        "X225",
                        "X224"
                    ],
                    "exprvars": []
                }
            },
            "526": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "527": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T104) T107 X236) (ackermann T104 X236 T106))"
                }],
                "kb": {
                    "nonunifying": [[
                        "(ackermann (s T104) T2 T106)",
                        "(ackermann (s X10) (0) X11)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T104",
                        "T106"
                    ],
                    "free": [
                        "X10",
                        "X11",
                        "X236"
                    ],
                    "exprvars": []
                }
            },
            "528": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "529": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 8,
                        "term": "(',' (ackermann (s T104) T107 X236) (ackermann T104 X236 T106))"
                    },
                    {
                        "clause": 1,
                        "scope": 8,
                        "term": "(',' (ackermann (s T104) T107 X236) (ackermann T104 X236 T106))"
                    },
                    {
                        "clause": 2,
                        "scope": 8,
                        "term": "(',' (ackermann (s T104) T107 X236) (ackermann T104 X236 T106))"
                    }
                ],
                "kb": {
                    "nonunifying": [[
                        "(ackermann (s T104) T2 T106)",
                        "(ackermann (s X10) (0) X11)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T104",
                        "T106"
                    ],
                    "free": [
                        "X10",
                        "X11",
                        "X236"
                    ],
                    "exprvars": []
                }
            },
            "26": {
                "goal": [
                    {
                        "clause": -1,
                        "scope": -1,
                        "term": "(true)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(ackermann (0) T2 (s T5))"
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(ackermann (0) T2 (s T5))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T5"],
                    "free": [],
                    "exprvars": []
                }
            },
            "28": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(ackermann T1 T2 T3)"
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(ackermann T1 T2 T3)"
                    }
                ],
                "kb": {
                    "nonunifying": [[
                        "(ackermann T1 T2 T3)",
                        "(ackermann (0) X2 (s X2))"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T3"
                    ],
                    "free": ["X2"],
                    "exprvars": []
                }
            },
            "490": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "250": {
                "goal": [{
                    "clause": 0,
                    "scope": 4,
                    "term": "(ackermann T26 (s (0)) X60)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T26"],
                    "free": ["X60"],
                    "exprvars": []
                }
            },
            "131": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "530": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 8,
                        "term": "(',' (ackermann (s T104) T107 X236) (ackermann T104 X236 T106))"
                    },
                    {
                        "clause": 2,
                        "scope": 8,
                        "term": "(',' (ackermann (s T104) T107 X236) (ackermann T104 X236 T106))"
                    }
                ],
                "kb": {
                    "nonunifying": [[
                        "(ackermann (s T104) T2 T106)",
                        "(ackermann (s X10) (0) X11)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T104",
                        "T106"
                    ],
                    "free": [
                        "X10",
                        "X11",
                        "X236"
                    ],
                    "exprvars": []
                }
            },
            "531": {
                "goal": [{
                    "clause": 1,
                    "scope": 8,
                    "term": "(',' (ackermann (s T104) T107 X236) (ackermann T104 X236 T106))"
                }],
                "kb": {
                    "nonunifying": [[
                        "(ackermann (s T104) T2 T106)",
                        "(ackermann (s X10) (0) X11)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T104",
                        "T106"
                    ],
                    "free": [
                        "X10",
                        "X11",
                        "X236"
                    ],
                    "exprvars": []
                }
            },
            "532": {
                "goal": [{
                    "clause": 2,
                    "scope": 8,
                    "term": "(',' (ackermann (s T104) T107 X236) (ackermann T104 X236 T106))"
                }],
                "kb": {
                    "nonunifying": [[
                        "(ackermann (s T104) T2 T106)",
                        "(ackermann (s X10) (0) X11)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T104",
                        "T106"
                    ],
                    "free": [
                        "X10",
                        "X11",
                        "X236"
                    ],
                    "exprvars": []
                }
            },
            "533": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann T112 (s (0)) X252) (ackermann T112 X252 T106))"
                }],
                "kb": {
                    "nonunifying": [[
                        "(ackermann (s T112) T2 T106)",
                        "(ackermann (s X10) (0) X11)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T106",
                        "T112"
                    ],
                    "free": [
                        "X10",
                        "X11",
                        "X252"
                    ],
                    "exprvars": []
                }
            },
            "534": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "535": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T112 (s (0)) X252)"
                }],
                "kb": {
                    "nonunifying": [[
                        "(ackermann (s T112) T2 T106)",
                        "(ackermann (s X10) (0) X11)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T106",
                        "T112"
                    ],
                    "free": [
                        "X10",
                        "X11",
                        "X252"
                    ],
                    "exprvars": []
                }
            },
            "536": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T112 T113 T106)"
                }],
                "kb": {
                    "nonunifying": [[
                        "(ackermann (s T112) T2 T106)",
                        "(ackermann (s X10) (0) X11)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T106",
                        "T112",
                        "T113"
                    ],
                    "free": [
                        "X10",
                        "X11"
                    ],
                    "exprvars": []
                }
            },
            "537": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (',' (ackermann (s T120) T122 X271) (ackermann T120 X271 X272)) (ackermann T120 X272 T106))"
                }],
                "kb": {
                    "nonunifying": [[
                        "(ackermann (s T120) T2 T106)",
                        "(ackermann (s X10) (0) X11)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T106",
                        "T120"
                    ],
                    "free": [
                        "X10",
                        "X11",
                        "X272",
                        "X271"
                    ],
                    "exprvars": []
                }
            },
            "538": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "539": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann (s T120) T122 X271)"
                }],
                "kb": {
                    "nonunifying": [[
                        "(ackermann (s T120) T2 T106)",
                        "(ackermann (s X10) (0) X11)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T106",
                        "T120"
                    ],
                    "free": [
                        "X10",
                        "X11",
                        "X271"
                    ],
                    "exprvars": []
                }
            },
            "32": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(ackermann (0) T2 (s T5))"
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(ackermann (0) T2 (s T5))"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T5"],
                    "free": [],
                    "exprvars": []
                }
            },
            "260": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 4,
                        "term": "(ackermann T26 (s (0)) X60)"
                    },
                    {
                        "clause": 2,
                        "scope": 4,
                        "term": "(ackermann T26 (s (0)) X60)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T26"],
                    "free": ["X60"],
                    "exprvars": []
                }
            },
            "141": {
                "goal": [
                    {
                        "clause": -1,
                        "scope": -1,
                        "term": "(ackermann T8 (s (0)) T9)"
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(ackermann (s T8) T2 T9)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T8",
                        "T9"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "540": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann T120 T123 X272) (ackermann T120 X272 T106))"
                }],
                "kb": {
                    "nonunifying": [[
                        "(ackermann (s T120) T124 T106)",
                        "(ackermann (s X10) (0) X11)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T106",
                        "T120"
                    ],
                    "free": [
                        "X10",
                        "X11",
                        "X272"
                    ],
                    "exprvars": []
                }
            },
            "541": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T120 T123 X272)"
                }],
                "kb": {
                    "nonunifying": [[
                        "(ackermann (s T120) T124 T106)",
                        "(ackermann (s X10) (0) X11)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T106",
                        "T120"
                    ],
                    "free": [
                        "X10",
                        "X11",
                        "X272"
                    ],
                    "exprvars": []
                }
            },
            "300": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann (s T30) (0) X82)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T30"],
                    "free": ["X82"],
                    "exprvars": []
                }
            },
            "542": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T120 T127 T106)"
                }],
                "kb": {
                    "nonunifying": [[
                        "(ackermann (s T120) T128 T106)",
                        "(ackermann (s X10) (0) X11)"
                    ]],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T106",
                        "T120"
                    ],
                    "free": [
                        "X10",
                        "X11"
                    ],
                    "exprvars": []
                }
            },
            "301": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T30 T31 X83)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T30",
                        "T31"
                    ],
                    "free": ["X83"],
                    "exprvars": []
                }
            },
            "148": {
                "goal": [{
                    "clause": 2,
                    "scope": 1,
                    "term": "(ackermann T1 T2 T3)"
                }],
                "kb": {
                    "nonunifying": [
                        [
                            "(ackermann T1 T2 T3)",
                            "(ackermann (0) X2 (s X2))"
                        ],
                        [
                            "(ackermann T1 T2 T3)",
                            "(ackermann (s X10) (0) X11)"
                        ]
                    ],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T3"
                    ],
                    "free": [
                        "X2",
                        "X10",
                        "X11"
                    ],
                    "exprvars": []
                }
            },
            "150": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 2,
                        "term": "(ackermann T8 (s (0)) T9)"
                    },
                    {
                        "clause": 1,
                        "scope": 2,
                        "term": "(ackermann T8 (s (0)) T9)"
                    },
                    {
                        "clause": 2,
                        "scope": 2,
                        "term": "(ackermann T8 (s (0)) T9)"
                    },
                    {
                        "clause": -1,
                        "scope": 2,
                        "term": null
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(ackermann (s T8) T2 T9)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T8",
                        "T9"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "273": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "276": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "156": {
                "goal": [{
                    "clause": 0,
                    "scope": 2,
                    "term": "(ackermann T8 (s (0)) T9)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T8",
                        "T9"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "157": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 2,
                        "term": "(ackermann T8 (s (0)) T9)"
                    },
                    {
                        "clause": 2,
                        "scope": 2,
                        "term": "(ackermann T8 (s (0)) T9)"
                    },
                    {
                        "clause": -1,
                        "scope": 2,
                        "term": null
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(ackermann (s T8) T2 T9)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T8",
                        "T9"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "278": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "165": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "288": {
                "goal": [{
                    "clause": 2,
                    "scope": 4,
                    "term": "(ackermann T26 (s (0)) X60)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T26"],
                    "free": ["X60"],
                    "exprvars": []
                }
            },
            "168": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "206": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T19) (0) X36) (ackermann T19 X36 T20))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T19",
                        "T20"
                    ],
                    "free": ["X36"],
                    "exprvars": []
                }
            },
            "209": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "171": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "294": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T30) (0) X82) (ackermann T30 X82 X83))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T30"],
                    "free": [
                        "X83",
                        "X82"
                    ],
                    "exprvars": []
                }
            },
            "296": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "450": {
                "goal": [{
                    "clause": 0,
                    "scope": 5,
                    "term": "(ackermann T30 T31 X83)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T30",
                        "T31"
                    ],
                    "free": ["X83"],
                    "exprvars": []
                }
            },
            "451": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 5,
                        "term": "(ackermann T30 T31 X83)"
                    },
                    {
                        "clause": 2,
                        "scope": 5,
                        "term": "(ackermann T30 T31 X83)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T30",
                        "T31"
                    ],
                    "free": ["X83"],
                    "exprvars": []
                }
            },
            "177": {
                "goal": [
                    {
                        "clause": 2,
                        "scope": 2,
                        "term": "(ackermann T8 (s (0)) T9)"
                    },
                    {
                        "clause": -1,
                        "scope": 2,
                        "term": null
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(ackermann (s T8) T2 T9)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T8",
                        "T9"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "454": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "455": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "456": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "457": {
                "goal": [{
                    "clause": 1,
                    "scope": 5,
                    "term": "(ackermann T30 T31 X83)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T30",
                        "T31"
                    ],
                    "free": ["X83"],
                    "exprvars": []
                }
            },
            "458": {
                "goal": [{
                    "clause": 2,
                    "scope": 5,
                    "term": "(ackermann T30 T31 X83)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T30",
                        "T31"
                    ],
                    "free": ["X83"],
                    "exprvars": []
                }
            },
            "218": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann (s T19) (0) X36)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": ["X36"],
                    "exprvars": []
                }
            },
            "219": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T19 T21 T20)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T19",
                        "T20",
                        "T21"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "186": {
                "goal": [{
                    "clause": 2,
                    "scope": 2,
                    "term": "(ackermann T8 (s (0)) T9)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T8",
                        "T9"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "461": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T43 (s (0)) X109)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T43"],
                    "free": ["X109"],
                    "exprvars": []
                }
            },
            "187": {
                "goal": [
                    {
                        "clause": -1,
                        "scope": 2,
                        "term": null
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(ackermann (s T8) T2 T9)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T8",
                        "T9"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "220": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 3,
                        "term": "(ackermann (s T19) (0) X36)"
                    },
                    {
                        "clause": 1,
                        "scope": 3,
                        "term": "(ackermann (s T19) (0) X36)"
                    },
                    {
                        "clause": 2,
                        "scope": 3,
                        "term": "(ackermann (s T19) (0) X36)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": ["X36"],
                    "exprvars": []
                }
            },
            "462": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "463": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T48) T49 X124) (ackermann T48 X124 X125))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T48",
                        "T49"
                    ],
                    "free": [
                        "X125",
                        "X124"
                    ],
                    "exprvars": []
                }
            },
            "464": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "223": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 3,
                        "term": "(ackermann (s T19) (0) X36)"
                    },
                    {
                        "clause": 2,
                        "scope": 3,
                        "term": "(ackermann (s T19) (0) X36)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": ["X36"],
                    "exprvars": []
                }
            },
            "224": {
                "goal": [{
                    "clause": 1,
                    "scope": 3,
                    "term": "(ackermann (s T19) (0) X36)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": ["X36"],
                    "exprvars": []
                }
            },
            "225": {
                "goal": [{
                    "clause": 2,
                    "scope": 3,
                    "term": "(ackermann (s T19) (0) X36)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T19"],
                    "free": ["X36"],
                    "exprvars": []
                }
            },
            "467": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann (s T48) T49 X124)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T48",
                        "T49"
                    ],
                    "free": ["X124"],
                    "exprvars": []
                }
            },
            "468": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T48 T50 X125)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T48",
                        "T50"
                    ],
                    "free": ["X125"],
                    "exprvars": []
                }
            },
            "469": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "349": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 5,
                        "term": "(ackermann T30 T31 X83)"
                    },
                    {
                        "clause": 1,
                        "scope": 5,
                        "term": "(ackermann T30 T31 X83)"
                    },
                    {
                        "clause": 2,
                        "scope": 5,
                        "term": "(ackermann T30 T31 X83)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T30",
                        "T31"
                    ],
                    "free": ["X83"],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 3,
                "to": 5,
                "label": "CASE"
            },
            {
                "from": 5,
                "to": 26,
                "label": "EVAL with clause\nackermann(0, X2, s(X2)).\nand substitutionT1 -> 0,\nT2 -> T5,\nX2 -> T5,\nT3 -> s(T5)"
            },
            {
                "from": 5,
                "to": 28,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 26,
                "to": 32,
                "label": "SUCCESS"
            },
            {
                "from": 28,
                "to": 141,
                "label": "EVAL with clause\nackermann(s(X10), 0, X11) :- ackermann(X10, s(0), X11).\nand substitutionX10 -> T8,\nT1 -> s(T8),\nT2 -> 0,\nT3 -> T9,\nX11 -> T9"
            },
            {
                "from": 28,
                "to": 148,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 32,
                "to": 122,
                "label": "BACKTRACK\nfor clause: ackermann(s(M), 0, Val) :- ackermann(M, s(0), Val)because of non-unification"
            },
            {
                "from": 122,
                "to": 131,
                "label": "BACKTRACK\nfor clause: ackermann(s(M), s(N), Val) :- ','(ackermann(s(M), N, Val1), ackermann(M, Val1, Val))because of non-unification"
            },
            {
                "from": 141,
                "to": 150,
                "label": "CASE"
            },
            {
                "from": 148,
                "to": 527,
                "label": "EVAL with clause\nackermann(s(X233), s(X234), X235) :- ','(ackermann(s(X233), X234, X236), ackermann(X233, X236, X235)).\nand substitutionX233 -> T104,\nT1 -> s(T104),\nX234 -> T107,\nT2 -> s(T107),\nT3 -> T106,\nX235 -> T106,\nT105 -> T107"
            },
            {
                "from": 148,
                "to": 528,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 150,
                "to": 156,
                "label": "PARALLEL"
            },
            {
                "from": 150,
                "to": 157,
                "label": "PARALLEL"
            },
            {
                "from": 156,
                "to": 165,
                "label": "EVAL with clause\nackermann(0, X16, s(X16)).\nand substitutionT8 -> 0,\nX16 -> s(0),\nT9 -> s(s(0))"
            },
            {
                "from": 156,
                "to": 168,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 157,
                "to": 177,
                "label": "BACKTRACK\nfor clause: ackermann(s(M), 0, Val) :- ackermann(M, s(0), Val)because of non-unification"
            },
            {
                "from": 165,
                "to": 171,
                "label": "SUCCESS"
            },
            {
                "from": 177,
                "to": 186,
                "label": "PARALLEL"
            },
            {
                "from": 177,
                "to": 187,
                "label": "PARALLEL"
            },
            {
                "from": 186,
                "to": 206,
                "label": "EVAL with clause\nackermann(s(X33), s(X34), X35) :- ','(ackermann(s(X33), X34, X36), ackermann(X33, X36, X35)).\nand substitutionX33 -> T19,\nT8 -> s(T19),\nX34 -> 0,\nT9 -> T20,\nX35 -> T20"
            },
            {
                "from": 186,
                "to": 209,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 187,
                "to": 470,
                "label": "FAILURE"
            },
            {
                "from": 206,
                "to": 218,
                "label": "SPLIT 1"
            },
            {
                "from": 206,
                "to": 219,
                "label": "SPLIT 2\nnew knowledge:\nT19 is ground\nT21 is ground\nreplacements:X36 -> T21"
            },
            {
                "from": 218,
                "to": 220,
                "label": "CASE"
            },
            {
                "from": 219,
                "to": 3,
                "label": "INSTANCE with matching:\nT1 -> T19\nT2 -> T21\nT3 -> T20"
            },
            {
                "from": 220,
                "to": 223,
                "label": "BACKTRACK\nfor clause: ackermann(0, N, s(N))because of non-unification"
            },
            {
                "from": 223,
                "to": 224,
                "label": "PARALLEL"
            },
            {
                "from": 223,
                "to": 225,
                "label": "PARALLEL"
            },
            {
                "from": 224,
                "to": 232,
                "label": "ONLY EVAL with clause\nackermann(s(X58), 0, X59) :- ackermann(X58, s(0), X59).\nand substitutionT19 -> T26,\nX58 -> T26,\nX36 -> X60,\nX59 -> X60"
            },
            {
                "from": 225,
                "to": 469,
                "label": "BACKTRACK\nfor clause: ackermann(s(M), s(N), Val) :- ','(ackermann(s(M), N, Val1), ackermann(M, Val1, Val))because of non-unification"
            },
            {
                "from": 232,
                "to": 245,
                "label": "CASE"
            },
            {
                "from": 245,
                "to": 250,
                "label": "PARALLEL"
            },
            {
                "from": 245,
                "to": 260,
                "label": "PARALLEL"
            },
            {
                "from": 250,
                "to": 273,
                "label": "EVAL with clause\nackermann(0, X67, s(X67)).\nand substitutionT26 -> 0,\nX67 -> s(0),\nX60 -> s(s(0))"
            },
            {
                "from": 250,
                "to": 276,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 260,
                "to": 288,
                "label": "BACKTRACK\nfor clause: ackermann(s(M), 0, Val) :- ackermann(M, s(0), Val)because of non-unification"
            },
            {
                "from": 273,
                "to": 278,
                "label": "SUCCESS"
            },
            {
                "from": 288,
                "to": 294,
                "label": "EVAL with clause\nackermann(s(X79), s(X80), X81) :- ','(ackermann(s(X79), X80, X82), ackermann(X79, X82, X81)).\nand substitutionX79 -> T30,\nT26 -> s(T30),\nX80 -> 0,\nX60 -> X83,\nX81 -> X83"
            },
            {
                "from": 288,
                "to": 296,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 294,
                "to": 300,
                "label": "SPLIT 1"
            },
            {
                "from": 294,
                "to": 301,
                "label": "SPLIT 2\nnew knowledge:\nT30 is ground\nT31 is ground\nreplacements:X82 -> T31"
            },
            {
                "from": 300,
                "to": 218,
                "label": "INSTANCE with matching:\nT19 -> T30\nX36 -> X82"
            },
            {
                "from": 301,
                "to": 349,
                "label": "CASE"
            },
            {
                "from": 349,
                "to": 450,
                "label": "PARALLEL"
            },
            {
                "from": 349,
                "to": 451,
                "label": "PARALLEL"
            },
            {
                "from": 450,
                "to": 454,
                "label": "EVAL with clause\nackermann(0, X94, s(X94)).\nand substitutionT30 -> 0,\nT31 -> T38,\nX94 -> T38,\nX83 -> s(T38)"
            },
            {
                "from": 450,
                "to": 455,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 451,
                "to": 457,
                "label": "PARALLEL"
            },
            {
                "from": 451,
                "to": 458,
                "label": "PARALLEL"
            },
            {
                "from": 454,
                "to": 456,
                "label": "SUCCESS"
            },
            {
                "from": 457,
                "to": 461,
                "label": "EVAL with clause\nackermann(s(X107), 0, X108) :- ackermann(X107, s(0), X108).\nand substitutionX107 -> T43,\nT30 -> s(T43),\nT31 -> 0,\nX83 -> X109,\nX108 -> X109"
            },
            {
                "from": 457,
                "to": 462,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 458,
                "to": 463,
                "label": "EVAL with clause\nackermann(s(X121), s(X122), X123) :- ','(ackermann(s(X121), X122, X124), ackermann(X121, X124, X123)).\nand substitutionX121 -> T48,\nT30 -> s(T48),\nX122 -> T49,\nT31 -> s(T49),\nX83 -> X125,\nX123 -> X125"
            },
            {
                "from": 458,
                "to": 464,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 461,
                "to": 232,
                "label": "INSTANCE with matching:\nT26 -> T43\nX60 -> X109"
            },
            {
                "from": 463,
                "to": 467,
                "label": "SPLIT 1"
            },
            {
                "from": 463,
                "to": 468,
                "label": "SPLIT 2\nnew knowledge:\nT48 is ground\nT49 is ground\nT50 is ground\nreplacements:X124 -> T50"
            },
            {
                "from": 467,
                "to": 301,
                "label": "INSTANCE with matching:\nT30 -> s(T48)\nT31 -> T49\nX83 -> X124"
            },
            {
                "from": 468,
                "to": 301,
                "label": "INSTANCE with matching:\nT30 -> T48\nT31 -> T50\nX83 -> X125"
            },
            {
                "from": 470,
                "to": 471,
                "label": "EVAL with clause\nackermann(s(X144), s(X145), X146) :- ','(ackermann(s(X144), X145, X147), ackermann(X144, X147, X146)).\nand substitutionT8 -> T62,\nX144 -> T62,\nX145 -> T65,\nT2 -> s(T65),\nT9 -> T64,\nX146 -> T64,\nT63 -> T65"
            },
            {
                "from": 470,
                "to": 472,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 471,
                "to": 473,
                "label": "SPLIT 1"
            },
            {
                "from": 471,
                "to": 474,
                "label": "SPLIT 2\nnew knowledge:\nT62 is ground\nreplacements:X147 -> T66"
            },
            {
                "from": 473,
                "to": 475,
                "label": "CASE"
            },
            {
                "from": 474,
                "to": 3,
                "label": "INSTANCE with matching:\nT1 -> T62\nT2 -> T66\nT3 -> T64"
            },
            {
                "from": 475,
                "to": 476,
                "label": "BACKTRACK\nfor clause: ackermann(0, N, s(N))because of non-unification"
            },
            {
                "from": 476,
                "to": 477,
                "label": "PARALLEL"
            },
            {
                "from": 476,
                "to": 478,
                "label": "PARALLEL"
            },
            {
                "from": 477,
                "to": 479,
                "label": "EVAL with clause\nackermann(s(X165), 0, X166) :- ackermann(X165, s(0), X166).\nand substitutionT62 -> T71,\nX165 -> T71,\nT65 -> 0,\nX147 -> X167,\nX166 -> X167"
            },
            {
                "from": 477,
                "to": 480,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 478,
                "to": 481,
                "label": "EVAL with clause\nackermann(s(X179), s(X180), X181) :- ','(ackermann(s(X179), X180, X182), ackermann(X179, X182, X181)).\nand substitutionT62 -> T76,\nX179 -> T76,\nX180 -> T78,\nT65 -> s(T78),\nX147 -> X183,\nX181 -> X183,\nT77 -> T78"
            },
            {
                "from": 478,
                "to": 482,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 479,
                "to": 232,
                "label": "INSTANCE with matching:\nT26 -> T71\nX60 -> X167"
            },
            {
                "from": 481,
                "to": 483,
                "label": "SPLIT 1"
            },
            {
                "from": 481,
                "to": 484,
                "label": "SPLIT 2\nnew knowledge:\nT76 is ground\nreplacements:X182 -> T79"
            },
            {
                "from": 483,
                "to": 473,
                "label": "INSTANCE with matching:\nT62 -> T76\nT65 -> T78\nX147 -> X182"
            },
            {
                "from": 484,
                "to": 485,
                "label": "CASE"
            },
            {
                "from": 485,
                "to": 486,
                "label": "PARALLEL"
            },
            {
                "from": 485,
                "to": 487,
                "label": "PARALLEL"
            },
            {
                "from": 486,
                "to": 488,
                "label": "EVAL with clause\nackermann(0, X194, s(X194)).\nand substitutionT76 -> 0,\nT79 -> T86,\nX194 -> T86,\nX183 -> s(T86)"
            },
            {
                "from": 486,
                "to": 489,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 487,
                "to": 521,
                "label": "PARALLEL"
            },
            {
                "from": 487,
                "to": 522,
                "label": "PARALLEL"
            },
            {
                "from": 488,
                "to": 490,
                "label": "SUCCESS"
            },
            {
                "from": 521,
                "to": 523,
                "label": "EVAL with clause\nackermann(s(X207), 0, X208) :- ackermann(X207, s(0), X208).\nand substitutionX207 -> T91,\nT76 -> s(T91),\nT79 -> 0,\nX183 -> X209,\nX208 -> X209"
            },
            {
                "from": 521,
                "to": 524,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 522,
                "to": 525,
                "label": "EVAL with clause\nackermann(s(X221), s(X222), X223) :- ','(ackermann(s(X221), X222, X224), ackermann(X221, X224, X223)).\nand substitutionX221 -> T96,\nT76 -> s(T96),\nX222 -> T98,\nT79 -> s(T98),\nX183 -> X225,\nX223 -> X225,\nT97 -> T98"
            },
            {
                "from": 522,
                "to": 526,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 523,
                "to": 232,
                "label": "INSTANCE with matching:\nT26 -> T91\nX60 -> X209"
            },
            {
                "from": 525,
                "to": 481,
                "label": "INSTANCE with matching:\nT76 -> T96\nT78 -> T98\nX182 -> X224\nX183 -> X225"
            },
            {
                "from": 527,
                "to": 529,
                "label": "CASE"
            },
            {
                "from": 529,
                "to": 530,
                "label": "BACKTRACK\nfor clause: ackermann(0, N, s(N))because of non-unification"
            },
            {
                "from": 530,
                "to": 531,
                "label": "PARALLEL"
            },
            {
                "from": 530,
                "to": 532,
                "label": "PARALLEL"
            },
            {
                "from": 531,
                "to": 533,
                "label": "EVAL with clause\nackermann(s(X250), 0, X251) :- ackermann(X250, s(0), X251).\nand substitutionT104 -> T112,\nX250 -> T112,\nT107 -> 0,\nX236 -> X252,\nX251 -> X252"
            },
            {
                "from": 531,
                "to": 534,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 532,
                "to": 537,
                "label": "EVAL with clause\nackermann(s(X268), s(X269), X270) :- ','(ackermann(s(X268), X269, X271), ackermann(X268, X271, X270)).\nand substitutionT104 -> T120,\nX268 -> T120,\nX269 -> T122,\nT107 -> s(T122),\nX236 -> X272,\nX270 -> X272,\nT121 -> T122"
            },
            {
                "from": 532,
                "to": 538,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 533,
                "to": 535,
                "label": "SPLIT 1"
            },
            {
                "from": 533,
                "to": 536,
                "label": "SPLIT 2\nnew knowledge:\nT112 is ground\nT113 is ground\nreplacements:X252 -> T113"
            },
            {
                "from": 535,
                "to": 232,
                "label": "INSTANCE with matching:\nT26 -> T112\nX60 -> X252"
            },
            {
                "from": 536,
                "to": 3,
                "label": "INSTANCE with matching:\nT1 -> T112\nT2 -> T113\nT3 -> T106"
            },
            {
                "from": 537,
                "to": 539,
                "label": "SPLIT 1"
            },
            {
                "from": 537,
                "to": 540,
                "label": "SPLIT 2\nnew knowledge:\nT120 is ground\nreplacements:X271 -> T123,\nT2 -> T124"
            },
            {
                "from": 539,
                "to": 473,
                "label": "INSTANCE with matching:\nT62 -> T120\nT65 -> T122\nX147 -> X271"
            },
            {
                "from": 540,
                "to": 541,
                "label": "SPLIT 1"
            },
            {
                "from": 540,
                "to": 542,
                "label": "SPLIT 2\nnew knowledge:\nT120 is ground\nreplacements:X272 -> T127,\nT124 -> T128"
            },
            {
                "from": 541,
                "to": 484,
                "label": "INSTANCE with matching:\nT76 -> T120\nT79 -> T123\nX183 -> X272"
            },
            {
                "from": 542,
                "to": 3,
                "label": "INSTANCE with matching:\nT1 -> T120\nT2 -> T127\nT3 -> T106"
            }
        ],
        "type": "Graph"
    }
}

----------------------------------------

(82)
Obligation:
Triples:

ackermannB(X1, X2) :- ackermannD(X1, X2).
ackermannD(s(X1), X2) :- ackermannB(X1, X3).
ackermannD(s(X1), X2) :- ','(ackermanncB(X1, X3), ackermannF(X1, X3, X2)).
ackermannF(s(X1), 0, X2) :- ackermannD(X1, X2).
ackermannF(s(X1), s(X2), X3) :- ackermannF(s(X1), X2, X4).
ackermannF(s(X1), s(X2), X3) :- ','(ackermanncF(s(X1), X2, X4), ackermannF(X1, X4, X3)).
ackermannC(X1, 0, X2) :- ackermannD(X1, X2).
ackermannC(X1, s(X2), X3) :- pG(X1, X2, X4, X3).
pG(X1, X2, X3, X4) :- ackermannC(X1, X2, X3).
pG(X1, X2, X3, X4) :- ','(ackermanncC(X1, X2, X3), ackermannE(X1, X3, X4)).
ackermannE(s(X1), 0, X2) :- ackermannD(X1, X2).
ackermannE(s(X1), s(X2), X3) :- pG(X1, X2, X4, X3).
ackermannA(s(s(X1)), 0, X2) :- ackermannB(X1, X3).
ackermannA(s(s(X1)), 0, X2) :- ','(ackermanncB(X1, X3), ackermannA(X1, X3, X2)).
ackermannA(s(X1), s(X2), X3) :- ackermannC(X1, X2, X4).
ackermannA(s(X1), s(X2), X3) :- ','(ackermanncC(X1, X2, X4), ackermannA(X1, X4, X3)).
ackermannA(s(X1), s(0), X2) :- ackermannD(X1, X3).
ackermannA(s(X1), s(0), X2) :- ','(ackermanncD(X1, X3), ackermannA(X1, X3, X2)).
ackermannA(s(X1), s(s(X2)), X3) :- ackermannC(X1, X2, X4).
ackermannA(s(X1), s(s(X2)), X3) :- ','(ackermanncC(X1, X2, X4), ackermannE(X1, X4, X5)).
ackermannA(s(X1), s(s(X2)), X3) :- ','(ackermanncC(X1, X2, X4), ','(ackermanncE(X1, X4, X5), ackermannA(X1, X5, X3))).

Clauses:

ackermanncA(0, X1, s(X1)).
ackermanncA(s(0), 0, s(s(0))).
ackermanncA(s(s(X1)), 0, X2) :- ','(ackermanncB(X1, X3), ackermanncA(X1, X3, X2)).
ackermanncA(s(X1), s(X2), X3) :- ','(ackermanncC(X1, X2, X4), ackermanncA(X1, X4, X3)).
ackermanncA(s(X1), s(0), X2) :- ','(ackermanncD(X1, X3), ackermanncA(X1, X3, X2)).
ackermanncA(s(X1), s(s(X2)), X3) :- ','(ackermanncC(X1, X2, X4), ','(ackermanncE(X1, X4, X5), ackermanncA(X1, X5, X3))).
ackermanncB(X1, X2) :- ackermanncD(X1, X2).
ackermanncD(0, s(s(0))).
ackermanncD(s(X1), X2) :- ','(ackermanncB(X1, X3), ackermanncF(X1, X3, X2)).
ackermanncF(0, X1, s(X1)).
ackermanncF(s(X1), 0, X2) :- ackermanncD(X1, X2).
ackermanncF(s(X1), s(X2), X3) :- ','(ackermanncF(s(X1), X2, X4), ackermanncF(X1, X4, X3)).
ackermanncC(X1, 0, X2) :- ackermanncD(X1, X2).
ackermanncC(X1, s(X2), X3) :- qcG(X1, X2, X4, X3).
qcG(X1, X2, X3, X4) :- ','(ackermanncC(X1, X2, X3), ackermanncE(X1, X3, X4)).
ackermanncE(0, X1, s(X1)).
ackermanncE(s(X1), 0, X2) :- ackermanncD(X1, X2).
ackermanncE(s(X1), s(X2), X3) :- qcG(X1, X2, X4, X3).

Afs:

ackermannA(x1, x2, x3)  =  ackermannA(x1, x3)


----------------------------------------

(83) TriplesToPiDPProof (SOUND)
We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes:

ackermannA_in_3: (b,f,b) (b,b,b)

ackermannB_in_2: (b,f)

ackermannD_in_2: (b,f)

ackermanncB_in_2: (b,f)

ackermanncD_in_2: (b,f)

ackermanncF_in_3: (b,b,f)

ackermannF_in_3: (b,b,f)

ackermannC_in_3: (b,b,f) (b,f,f)

pG_in_4: (b,b,f,f) (b,f,f,f)

ackermanncC_in_3: (b,b,f) (b,f,f)

qcG_in_4: (b,b,f,f) (b,f,f,f)

ackermanncE_in_3: (b,b,f)

ackermannE_in_3: (b,b,f)

Transforming TRIPLES into the following Term Rewriting System:

Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANNA_IN_GAG(s(s(X1)), 0, X2) -> U16_GAG(X1, X2, ackermannB_in_ga(X1, X3))
   ACKERMANNA_IN_GAG(s(s(X1)), 0, X2) -> ACKERMANNB_IN_GA(X1, X3)
   ACKERMANNB_IN_GA(X1, X2) -> U1_GA(X1, X2, ackermannD_in_ga(X1, X2))
   ACKERMANNB_IN_GA(X1, X2) -> ACKERMANND_IN_GA(X1, X2)
   ACKERMANND_IN_GA(s(X1), X2) -> U2_GA(X1, X2, ackermannB_in_ga(X1, X3))
   ACKERMANND_IN_GA(s(X1), X2) -> ACKERMANNB_IN_GA(X1, X3)
   ACKERMANND_IN_GA(s(X1), X2) -> U3_GA(X1, X2, ackermanncB_in_ga(X1, X3))
   U3_GA(X1, X2, ackermanncB_out_ga(X1, X3)) -> U4_GA(X1, X2, ackermannF_in_gga(X1, X3, X2))
   U3_GA(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNF_IN_GGA(X1, X3, X2)
   ACKERMANNF_IN_GGA(s(X1), 0, X2) -> U5_GGA(X1, X2, ackermannD_in_ga(X1, X2))
   ACKERMANNF_IN_GGA(s(X1), 0, X2) -> ACKERMANND_IN_GA(X1, X2)
   ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> U6_GGA(X1, X2, X3, ackermannF_in_gga(s(X1), X2, X4))
   ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> ACKERMANNF_IN_GGA(s(X1), X2, X4)
   ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> U7_GGA(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4))
   U7_GGA(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U8_GGA(X1, X2, X3, ackermannF_in_gga(X1, X4, X3))
   U7_GGA(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> ACKERMANNF_IN_GGA(X1, X4, X3)
   ACKERMANNA_IN_GAG(s(s(X1)), 0, X2) -> U17_GAG(X1, X2, ackermanncB_in_ga(X1, X3))
   U17_GAG(X1, X2, ackermanncB_out_ga(X1, X3)) -> U18_GAG(X1, X2, ackermannA_in_ggg(X1, X3, X2))
   U17_GAG(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2)
   ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> U16_GGG(X1, X2, ackermannB_in_ga(X1, X3))
   ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> ACKERMANNB_IN_GA(X1, X3)
   ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> U17_GGG(X1, X2, ackermanncB_in_ga(X1, X3))
   U17_GGG(X1, X2, ackermanncB_out_ga(X1, X3)) -> U18_GGG(X1, X2, ackermannA_in_ggg(X1, X3, X2))
   U17_GGG(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2)
   ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> U19_GGG(X1, X2, X3, ackermannC_in_gga(X1, X2, X4))
   ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> ACKERMANNC_IN_GGA(X1, X2, X4)
   ACKERMANNC_IN_GGA(X1, 0, X2) -> U9_GGA(X1, X2, ackermannD_in_ga(X1, X2))
   ACKERMANNC_IN_GGA(X1, 0, X2) -> ACKERMANND_IN_GA(X1, X2)
   ACKERMANNC_IN_GGA(X1, s(X2), X3) -> U10_GGA(X1, X2, X3, pG_in_ggaa(X1, X2, X4, X3))
   ACKERMANNC_IN_GGA(X1, s(X2), X3) -> PG_IN_GGAA(X1, X2, X4, X3)
   PG_IN_GGAA(X1, X2, X3, X4) -> U11_GGAA(X1, X2, X3, X4, ackermannC_in_gga(X1, X2, X3))
   PG_IN_GGAA(X1, X2, X3, X4) -> ACKERMANNC_IN_GGA(X1, X2, X3)
   PG_IN_GGAA(X1, X2, X3, X4) -> U12_GGAA(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3))
   U12_GGAA(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U13_GGAA(X1, X2, X3, X4, ackermannE_in_gga(X1, X3, X4))
   U12_GGAA(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> ACKERMANNE_IN_GGA(X1, X3, X4)
   ACKERMANNE_IN_GGA(s(X1), 0, X2) -> U14_GGA(X1, X2, ackermannD_in_ga(X1, X2))
   ACKERMANNE_IN_GGA(s(X1), 0, X2) -> ACKERMANND_IN_GA(X1, X2)
   ACKERMANNE_IN_GGA(s(X1), s(X2), X3) -> U15_GGA(X1, X2, X3, pG_in_ggaa(X1, X2, X4, X3))
   ACKERMANNE_IN_GGA(s(X1), s(X2), X3) -> PG_IN_GGAA(X1, X2, X4, X3)
   ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> U20_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2, X4))
   U20_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U21_GGG(X1, X2, X3, ackermannA_in_ggg(X1, X4, X3))
   U20_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> ACKERMANNA_IN_GGG(X1, X4, X3)
   ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> U22_GGG(X1, X2, ackermannD_in_ga(X1, X3))
   ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> ACKERMANND_IN_GA(X1, X3)
   ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> U23_GGG(X1, X2, ackermanncD_in_ga(X1, X3))
   U23_GGG(X1, X2, ackermanncD_out_ga(X1, X3)) -> U24_GGG(X1, X2, ackermannA_in_ggg(X1, X3, X2))
   U23_GGG(X1, X2, ackermanncD_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2)
   ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> U25_GGG(X1, X2, X3, ackermannC_in_gga(X1, X2, X4))
   ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> ACKERMANNC_IN_GGA(X1, X2, X4)
   ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> U26_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2, X4))
   U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U27_GGG(X1, X2, X3, ackermannE_in_gga(X1, X4, X5))
   U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> ACKERMANNE_IN_GGA(X1, X4, X5)
   U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U28_GGG(X1, X2, X3, ackermanncE_in_gga(X1, X4, X5))
   U28_GGG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> U29_GGG(X1, X2, X3, ackermannA_in_ggg(X1, X5, X3))
   U28_GGG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> ACKERMANNA_IN_GGG(X1, X5, X3)
   ACKERMANNA_IN_GAG(s(X1), s(X2), X3) -> U19_GAG(X1, X2, X3, ackermannC_in_gaa(X1, X2, X4))
   ACKERMANNA_IN_GAG(s(X1), s(X2), X3) -> ACKERMANNC_IN_GAA(X1, X2, X4)
   ACKERMANNC_IN_GAA(X1, 0, X2) -> U9_GAA(X1, X2, ackermannD_in_ga(X1, X2))
   ACKERMANNC_IN_GAA(X1, 0, X2) -> ACKERMANND_IN_GA(X1, X2)
   ACKERMANNC_IN_GAA(X1, s(X2), X3) -> U10_GAA(X1, X2, X3, pG_in_gaaa(X1, X2, X4, X3))
   ACKERMANNC_IN_GAA(X1, s(X2), X3) -> PG_IN_GAAA(X1, X2, X4, X3)
   PG_IN_GAAA(X1, X2, X3, X4) -> U11_GAAA(X1, X2, X3, X4, ackermannC_in_gaa(X1, X2, X3))
   PG_IN_GAAA(X1, X2, X3, X4) -> ACKERMANNC_IN_GAA(X1, X2, X3)
   PG_IN_GAAA(X1, X2, X3, X4) -> U12_GAAA(X1, X2, X3, X4, ackermanncC_in_gaa(X1, X2, X3))
   U12_GAAA(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> U13_GAAA(X1, X2, X3, X4, ackermannE_in_gga(X1, X3, X4))
   U12_GAAA(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> ACKERMANNE_IN_GGA(X1, X3, X4)
   ACKERMANNA_IN_GAG(s(X1), s(X2), X3) -> U20_GAG(X1, X2, X3, ackermanncC_in_gaa(X1, X2, X4))
   U20_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> U21_GAG(X1, X2, X3, ackermannA_in_ggg(X1, X4, X3))
   U20_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> ACKERMANNA_IN_GGG(X1, X4, X3)
   ACKERMANNA_IN_GAG(s(X1), s(0), X2) -> U22_GAG(X1, X2, ackermannD_in_ga(X1, X3))
   ACKERMANNA_IN_GAG(s(X1), s(0), X2) -> ACKERMANND_IN_GA(X1, X3)
   ACKERMANNA_IN_GAG(s(X1), s(0), X2) -> U23_GAG(X1, X2, ackermanncD_in_ga(X1, X3))
   U23_GAG(X1, X2, ackermanncD_out_ga(X1, X3)) -> U24_GAG(X1, X2, ackermannA_in_ggg(X1, X3, X2))
   U23_GAG(X1, X2, ackermanncD_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2)
   ACKERMANNA_IN_GAG(s(X1), s(s(X2)), X3) -> U25_GAG(X1, X2, X3, ackermannC_in_gaa(X1, X2, X4))
   ACKERMANNA_IN_GAG(s(X1), s(s(X2)), X3) -> ACKERMANNC_IN_GAA(X1, X2, X4)
   ACKERMANNA_IN_GAG(s(X1), s(s(X2)), X3) -> U26_GAG(X1, X2, X3, ackermanncC_in_gaa(X1, X2, X4))
   U26_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> U27_GAG(X1, X2, X3, ackermannE_in_gga(X1, X4, X5))
   U26_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> ACKERMANNE_IN_GGA(X1, X4, X5)
   U26_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> U28_GAG(X1, X2, X3, ackermanncE_in_gga(X1, X4, X5))
   U28_GAG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> U29_GAG(X1, X2, X3, ackermannA_in_ggg(X1, X5, X3))
   U28_GAG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> ACKERMANNA_IN_GGG(X1, X5, X3)

The TRS R consists of the following rules:

   ackermanncB_in_ga(X1, X2) -> U40_ga(X1, X2, ackermanncD_in_ga(X1, X2))
   ackermanncD_in_ga(0, s(s(0))) -> ackermanncD_out_ga(0, s(s(0)))
   ackermanncD_in_ga(s(X1), X2) -> U41_ga(X1, X2, ackermanncB_in_ga(X1, X3))
   U41_ga(X1, X2, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, X2, ackermanncF_in_gga(X1, X3, X2))
   ackermanncF_in_gga(0, X1, s(X1)) -> ackermanncF_out_gga(0, X1, s(X1))
   ackermanncF_in_gga(s(X1), 0, X2) -> U43_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   U43_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2)
   ackermanncF_in_gga(s(X1), s(X2), X3) -> U44_gga(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4))
   U44_gga(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, X3, ackermanncF_in_gga(X1, X4, X3))
   U45_gga(X1, X2, X3, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3)
   U42_ga(X1, X2, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2)
   U40_ga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2)
   ackermanncC_in_gga(X1, 0, X2) -> U46_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   U46_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2)
   ackermanncC_in_gga(X1, s(X2), X3) -> U47_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3))
   qcG_in_ggaa(X1, X2, X3, X4) -> U48_ggaa(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3))
   U48_ggaa(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4))
   ackermanncE_in_gga(0, X1, s(X1)) -> ackermanncE_out_gga(0, X1, s(X1))
   ackermanncE_in_gga(s(X1), 0, X2) -> U50_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   U50_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2)
   ackermanncE_in_gga(s(X1), s(X2), X3) -> U51_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3))
   U51_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3)
   U49_ggaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4)
   U47_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3)
   ackermanncC_in_gaa(X1, 0, X2) -> U46_gaa(X1, X2, ackermanncD_in_ga(X1, X2))
   U46_gaa(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gaa(X1, 0, X2)
   ackermanncC_in_gaa(X1, s(X2), X3) -> U47_gaa(X1, X2, X3, qcG_in_gaaa(X1, X2, X4, X3))
   qcG_in_gaaa(X1, X2, X3, X4) -> U48_gaaa(X1, X2, X3, X4, ackermanncC_in_gaa(X1, X2, X3))
   U48_gaaa(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> U49_gaaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4))
   U49_gaaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_gaaa(X1, X2, X3, X4)
   U47_gaa(X1, X2, X3, qcG_out_gaaa(X1, X2, X4, X3)) -> ackermanncC_out_gaa(X1, s(X2), X3)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)

ackermannB_in_ga(x1, x2)  =  ackermannB_in_ga(x1)

ackermannD_in_ga(x1, x2)  =  ackermannD_in_ga(x1)

ackermanncB_in_ga(x1, x2)  =  ackermanncB_in_ga(x1)

U40_ga(x1, x2, x3)  =  U40_ga(x1, x3)

ackermanncD_in_ga(x1, x2)  =  ackermanncD_in_ga(x1)

0  =  0

ackermanncD_out_ga(x1, x2)  =  ackermanncD_out_ga(x1, x2)

U41_ga(x1, x2, x3)  =  U41_ga(x1, x3)

ackermanncB_out_ga(x1, x2)  =  ackermanncB_out_ga(x1, x2)

U42_ga(x1, x2, x3)  =  U42_ga(x1, x3)

ackermanncF_in_gga(x1, x2, x3)  =  ackermanncF_in_gga(x1, x2)

ackermanncF_out_gga(x1, x2, x3)  =  ackermanncF_out_gga(x1, x2, x3)

U43_gga(x1, x2, x3)  =  U43_gga(x1, x3)

U44_gga(x1, x2, x3, x4)  =  U44_gga(x1, x2, x4)

U45_gga(x1, x2, x3, x4)  =  U45_gga(x1, x2, x4)

ackermannF_in_gga(x1, x2, x3)  =  ackermannF_in_gga(x1, x2)

ackermannA_in_ggg(x1, x2, x3)  =  ackermannA_in_ggg(x1, x2, x3)

ackermannC_in_gga(x1, x2, x3)  =  ackermannC_in_gga(x1, x2)

pG_in_ggaa(x1, x2, x3, x4)  =  pG_in_ggaa(x1, x2)

ackermanncC_in_gga(x1, x2, x3)  =  ackermanncC_in_gga(x1, x2)

U46_gga(x1, x2, x3)  =  U46_gga(x1, x3)

ackermanncC_out_gga(x1, x2, x3)  =  ackermanncC_out_gga(x1, x2, x3)

U47_gga(x1, x2, x3, x4)  =  U47_gga(x1, x2, x4)

qcG_in_ggaa(x1, x2, x3, x4)  =  qcG_in_ggaa(x1, x2)

U48_ggaa(x1, x2, x3, x4, x5)  =  U48_ggaa(x1, x2, x5)

U49_ggaa(x1, x2, x3, x4, x5)  =  U49_ggaa(x1, x2, x3, x5)

ackermanncE_in_gga(x1, x2, x3)  =  ackermanncE_in_gga(x1, x2)

ackermanncE_out_gga(x1, x2, x3)  =  ackermanncE_out_gga(x1, x2, x3)

U50_gga(x1, x2, x3)  =  U50_gga(x1, x3)

U51_gga(x1, x2, x3, x4)  =  U51_gga(x1, x2, x4)

qcG_out_ggaa(x1, x2, x3, x4)  =  qcG_out_ggaa(x1, x2, x3, x4)

ackermannE_in_gga(x1, x2, x3)  =  ackermannE_in_gga(x1, x2)

ackermannC_in_gaa(x1, x2, x3)  =  ackermannC_in_gaa(x1)

pG_in_gaaa(x1, x2, x3, x4)  =  pG_in_gaaa(x1)

ackermanncC_in_gaa(x1, x2, x3)  =  ackermanncC_in_gaa(x1)

U46_gaa(x1, x2, x3)  =  U46_gaa(x1, x3)

ackermanncC_out_gaa(x1, x2, x3)  =  ackermanncC_out_gaa(x1, x2, x3)

U47_gaa(x1, x2, x3, x4)  =  U47_gaa(x1, x4)

qcG_in_gaaa(x1, x2, x3, x4)  =  qcG_in_gaaa(x1)

U48_gaaa(x1, x2, x3, x4, x5)  =  U48_gaaa(x1, x5)

U49_gaaa(x1, x2, x3, x4, x5)  =  U49_gaaa(x1, x2, x3, x5)

qcG_out_gaaa(x1, x2, x3, x4)  =  qcG_out_gaaa(x1, x2, x3, x4)

ACKERMANNA_IN_GAG(x1, x2, x3)  =  ACKERMANNA_IN_GAG(x1, x3)

U16_GAG(x1, x2, x3)  =  U16_GAG(x1, x2, x3)

ACKERMANNB_IN_GA(x1, x2)  =  ACKERMANNB_IN_GA(x1)

U1_GA(x1, x2, x3)  =  U1_GA(x1, x3)

ACKERMANND_IN_GA(x1, x2)  =  ACKERMANND_IN_GA(x1)

U2_GA(x1, x2, x3)  =  U2_GA(x1, x3)

U3_GA(x1, x2, x3)  =  U3_GA(x1, x3)

U4_GA(x1, x2, x3)  =  U4_GA(x1, x3)

ACKERMANNF_IN_GGA(x1, x2, x3)  =  ACKERMANNF_IN_GGA(x1, x2)

U5_GGA(x1, x2, x3)  =  U5_GGA(x1, x3)

U6_GGA(x1, x2, x3, x4)  =  U6_GGA(x1, x2, x4)

U7_GGA(x1, x2, x3, x4)  =  U7_GGA(x1, x2, x4)

U8_GGA(x1, x2, x3, x4)  =  U8_GGA(x1, x2, x4)

U17_GAG(x1, x2, x3)  =  U17_GAG(x1, x2, x3)

U18_GAG(x1, x2, x3)  =  U18_GAG(x1, x2, x3)

ACKERMANNA_IN_GGG(x1, x2, x3)  =  ACKERMANNA_IN_GGG(x1, x2, x3)

U16_GGG(x1, x2, x3)  =  U16_GGG(x1, x2, x3)

U17_GGG(x1, x2, x3)  =  U17_GGG(x1, x2, x3)

U18_GGG(x1, x2, x3)  =  U18_GGG(x1, x2, x3)

U19_GGG(x1, x2, x3, x4)  =  U19_GGG(x1, x2, x3, x4)

ACKERMANNC_IN_GGA(x1, x2, x3)  =  ACKERMANNC_IN_GGA(x1, x2)

U9_GGA(x1, x2, x3)  =  U9_GGA(x1, x3)

U10_GGA(x1, x2, x3, x4)  =  U10_GGA(x1, x2, x4)

PG_IN_GGAA(x1, x2, x3, x4)  =  PG_IN_GGAA(x1, x2)

U11_GGAA(x1, x2, x3, x4, x5)  =  U11_GGAA(x1, x2, x5)

U12_GGAA(x1, x2, x3, x4, x5)  =  U12_GGAA(x1, x2, x5)

U13_GGAA(x1, x2, x3, x4, x5)  =  U13_GGAA(x1, x2, x5)

ACKERMANNE_IN_GGA(x1, x2, x3)  =  ACKERMANNE_IN_GGA(x1, x2)

U14_GGA(x1, x2, x3)  =  U14_GGA(x1, x3)

U15_GGA(x1, x2, x3, x4)  =  U15_GGA(x1, x2, x4)

U20_GGG(x1, x2, x3, x4)  =  U20_GGG(x1, x2, x3, x4)

U21_GGG(x1, x2, x3, x4)  =  U21_GGG(x1, x2, x3, x4)

U22_GGG(x1, x2, x3)  =  U22_GGG(x1, x2, x3)

U23_GGG(x1, x2, x3)  =  U23_GGG(x1, x2, x3)

U24_GGG(x1, x2, x3)  =  U24_GGG(x1, x2, x3)

U25_GGG(x1, x2, x3, x4)  =  U25_GGG(x1, x2, x3, x4)

U26_GGG(x1, x2, x3, x4)  =  U26_GGG(x1, x2, x3, x4)

U27_GGG(x1, x2, x3, x4)  =  U27_GGG(x1, x2, x3, x4)

U28_GGG(x1, x2, x3, x4)  =  U28_GGG(x1, x2, x3, x4)

U29_GGG(x1, x2, x3, x4)  =  U29_GGG(x1, x2, x3, x4)

U19_GAG(x1, x2, x3, x4)  =  U19_GAG(x1, x3, x4)

ACKERMANNC_IN_GAA(x1, x2, x3)  =  ACKERMANNC_IN_GAA(x1)

U9_GAA(x1, x2, x3)  =  U9_GAA(x1, x3)

U10_GAA(x1, x2, x3, x4)  =  U10_GAA(x1, x4)

PG_IN_GAAA(x1, x2, x3, x4)  =  PG_IN_GAAA(x1)

U11_GAAA(x1, x2, x3, x4, x5)  =  U11_GAAA(x1, x5)

U12_GAAA(x1, x2, x3, x4, x5)  =  U12_GAAA(x1, x5)

U13_GAAA(x1, x2, x3, x4, x5)  =  U13_GAAA(x1, x2, x5)

U20_GAG(x1, x2, x3, x4)  =  U20_GAG(x1, x3, x4)

U21_GAG(x1, x2, x3, x4)  =  U21_GAG(x1, x2, x3, x4)

U22_GAG(x1, x2, x3)  =  U22_GAG(x1, x2, x3)

U23_GAG(x1, x2, x3)  =  U23_GAG(x1, x2, x3)

U24_GAG(x1, x2, x3)  =  U24_GAG(x1, x2, x3)

U25_GAG(x1, x2, x3, x4)  =  U25_GAG(x1, x3, x4)

U26_GAG(x1, x2, x3, x4)  =  U26_GAG(x1, x3, x4)

U27_GAG(x1, x2, x3, x4)  =  U27_GAG(x1, x2, x3, x4)

U28_GAG(x1, x2, x3, x4)  =  U28_GAG(x1, x2, x3, x4)

U29_GAG(x1, x2, x3, x4)  =  U29_GAG(x1, x2, x3, x4)


We have to consider all (P,R,Pi)-chains


Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES



----------------------------------------

(84)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANNA_IN_GAG(s(s(X1)), 0, X2) -> U16_GAG(X1, X2, ackermannB_in_ga(X1, X3))
   ACKERMANNA_IN_GAG(s(s(X1)), 0, X2) -> ACKERMANNB_IN_GA(X1, X3)
   ACKERMANNB_IN_GA(X1, X2) -> U1_GA(X1, X2, ackermannD_in_ga(X1, X2))
   ACKERMANNB_IN_GA(X1, X2) -> ACKERMANND_IN_GA(X1, X2)
   ACKERMANND_IN_GA(s(X1), X2) -> U2_GA(X1, X2, ackermannB_in_ga(X1, X3))
   ACKERMANND_IN_GA(s(X1), X2) -> ACKERMANNB_IN_GA(X1, X3)
   ACKERMANND_IN_GA(s(X1), X2) -> U3_GA(X1, X2, ackermanncB_in_ga(X1, X3))
   U3_GA(X1, X2, ackermanncB_out_ga(X1, X3)) -> U4_GA(X1, X2, ackermannF_in_gga(X1, X3, X2))
   U3_GA(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNF_IN_GGA(X1, X3, X2)
   ACKERMANNF_IN_GGA(s(X1), 0, X2) -> U5_GGA(X1, X2, ackermannD_in_ga(X1, X2))
   ACKERMANNF_IN_GGA(s(X1), 0, X2) -> ACKERMANND_IN_GA(X1, X2)
   ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> U6_GGA(X1, X2, X3, ackermannF_in_gga(s(X1), X2, X4))
   ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> ACKERMANNF_IN_GGA(s(X1), X2, X4)
   ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> U7_GGA(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4))
   U7_GGA(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U8_GGA(X1, X2, X3, ackermannF_in_gga(X1, X4, X3))
   U7_GGA(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> ACKERMANNF_IN_GGA(X1, X4, X3)
   ACKERMANNA_IN_GAG(s(s(X1)), 0, X2) -> U17_GAG(X1, X2, ackermanncB_in_ga(X1, X3))
   U17_GAG(X1, X2, ackermanncB_out_ga(X1, X3)) -> U18_GAG(X1, X2, ackermannA_in_ggg(X1, X3, X2))
   U17_GAG(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2)
   ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> U16_GGG(X1, X2, ackermannB_in_ga(X1, X3))
   ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> ACKERMANNB_IN_GA(X1, X3)
   ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> U17_GGG(X1, X2, ackermanncB_in_ga(X1, X3))
   U17_GGG(X1, X2, ackermanncB_out_ga(X1, X3)) -> U18_GGG(X1, X2, ackermannA_in_ggg(X1, X3, X2))
   U17_GGG(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2)
   ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> U19_GGG(X1, X2, X3, ackermannC_in_gga(X1, X2, X4))
   ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> ACKERMANNC_IN_GGA(X1, X2, X4)
   ACKERMANNC_IN_GGA(X1, 0, X2) -> U9_GGA(X1, X2, ackermannD_in_ga(X1, X2))
   ACKERMANNC_IN_GGA(X1, 0, X2) -> ACKERMANND_IN_GA(X1, X2)
   ACKERMANNC_IN_GGA(X1, s(X2), X3) -> U10_GGA(X1, X2, X3, pG_in_ggaa(X1, X2, X4, X3))
   ACKERMANNC_IN_GGA(X1, s(X2), X3) -> PG_IN_GGAA(X1, X2, X4, X3)
   PG_IN_GGAA(X1, X2, X3, X4) -> U11_GGAA(X1, X2, X3, X4, ackermannC_in_gga(X1, X2, X3))
   PG_IN_GGAA(X1, X2, X3, X4) -> ACKERMANNC_IN_GGA(X1, X2, X3)
   PG_IN_GGAA(X1, X2, X3, X4) -> U12_GGAA(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3))
   U12_GGAA(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U13_GGAA(X1, X2, X3, X4, ackermannE_in_gga(X1, X3, X4))
   U12_GGAA(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> ACKERMANNE_IN_GGA(X1, X3, X4)
   ACKERMANNE_IN_GGA(s(X1), 0, X2) -> U14_GGA(X1, X2, ackermannD_in_ga(X1, X2))
   ACKERMANNE_IN_GGA(s(X1), 0, X2) -> ACKERMANND_IN_GA(X1, X2)
   ACKERMANNE_IN_GGA(s(X1), s(X2), X3) -> U15_GGA(X1, X2, X3, pG_in_ggaa(X1, X2, X4, X3))
   ACKERMANNE_IN_GGA(s(X1), s(X2), X3) -> PG_IN_GGAA(X1, X2, X4, X3)
   ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> U20_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2, X4))
   U20_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U21_GGG(X1, X2, X3, ackermannA_in_ggg(X1, X4, X3))
   U20_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> ACKERMANNA_IN_GGG(X1, X4, X3)
   ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> U22_GGG(X1, X2, ackermannD_in_ga(X1, X3))
   ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> ACKERMANND_IN_GA(X1, X3)
   ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> U23_GGG(X1, X2, ackermanncD_in_ga(X1, X3))
   U23_GGG(X1, X2, ackermanncD_out_ga(X1, X3)) -> U24_GGG(X1, X2, ackermannA_in_ggg(X1, X3, X2))
   U23_GGG(X1, X2, ackermanncD_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2)
   ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> U25_GGG(X1, X2, X3, ackermannC_in_gga(X1, X2, X4))
   ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> ACKERMANNC_IN_GGA(X1, X2, X4)
   ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> U26_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2, X4))
   U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U27_GGG(X1, X2, X3, ackermannE_in_gga(X1, X4, X5))
   U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> ACKERMANNE_IN_GGA(X1, X4, X5)
   U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U28_GGG(X1, X2, X3, ackermanncE_in_gga(X1, X4, X5))
   U28_GGG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> U29_GGG(X1, X2, X3, ackermannA_in_ggg(X1, X5, X3))
   U28_GGG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> ACKERMANNA_IN_GGG(X1, X5, X3)
   ACKERMANNA_IN_GAG(s(X1), s(X2), X3) -> U19_GAG(X1, X2, X3, ackermannC_in_gaa(X1, X2, X4))
   ACKERMANNA_IN_GAG(s(X1), s(X2), X3) -> ACKERMANNC_IN_GAA(X1, X2, X4)
   ACKERMANNC_IN_GAA(X1, 0, X2) -> U9_GAA(X1, X2, ackermannD_in_ga(X1, X2))
   ACKERMANNC_IN_GAA(X1, 0, X2) -> ACKERMANND_IN_GA(X1, X2)
   ACKERMANNC_IN_GAA(X1, s(X2), X3) -> U10_GAA(X1, X2, X3, pG_in_gaaa(X1, X2, X4, X3))
   ACKERMANNC_IN_GAA(X1, s(X2), X3) -> PG_IN_GAAA(X1, X2, X4, X3)
   PG_IN_GAAA(X1, X2, X3, X4) -> U11_GAAA(X1, X2, X3, X4, ackermannC_in_gaa(X1, X2, X3))
   PG_IN_GAAA(X1, X2, X3, X4) -> ACKERMANNC_IN_GAA(X1, X2, X3)
   PG_IN_GAAA(X1, X2, X3, X4) -> U12_GAAA(X1, X2, X3, X4, ackermanncC_in_gaa(X1, X2, X3))
   U12_GAAA(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> U13_GAAA(X1, X2, X3, X4, ackermannE_in_gga(X1, X3, X4))
   U12_GAAA(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> ACKERMANNE_IN_GGA(X1, X3, X4)
   ACKERMANNA_IN_GAG(s(X1), s(X2), X3) -> U20_GAG(X1, X2, X3, ackermanncC_in_gaa(X1, X2, X4))
   U20_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> U21_GAG(X1, X2, X3, ackermannA_in_ggg(X1, X4, X3))
   U20_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> ACKERMANNA_IN_GGG(X1, X4, X3)
   ACKERMANNA_IN_GAG(s(X1), s(0), X2) -> U22_GAG(X1, X2, ackermannD_in_ga(X1, X3))
   ACKERMANNA_IN_GAG(s(X1), s(0), X2) -> ACKERMANND_IN_GA(X1, X3)
   ACKERMANNA_IN_GAG(s(X1), s(0), X2) -> U23_GAG(X1, X2, ackermanncD_in_ga(X1, X3))
   U23_GAG(X1, X2, ackermanncD_out_ga(X1, X3)) -> U24_GAG(X1, X2, ackermannA_in_ggg(X1, X3, X2))
   U23_GAG(X1, X2, ackermanncD_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2)
   ACKERMANNA_IN_GAG(s(X1), s(s(X2)), X3) -> U25_GAG(X1, X2, X3, ackermannC_in_gaa(X1, X2, X4))
   ACKERMANNA_IN_GAG(s(X1), s(s(X2)), X3) -> ACKERMANNC_IN_GAA(X1, X2, X4)
   ACKERMANNA_IN_GAG(s(X1), s(s(X2)), X3) -> U26_GAG(X1, X2, X3, ackermanncC_in_gaa(X1, X2, X4))
   U26_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> U27_GAG(X1, X2, X3, ackermannE_in_gga(X1, X4, X5))
   U26_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> ACKERMANNE_IN_GGA(X1, X4, X5)
   U26_GAG(X1, X2, X3, ackermanncC_out_gaa(X1, X2, X4)) -> U28_GAG(X1, X2, X3, ackermanncE_in_gga(X1, X4, X5))
   U28_GAG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> U29_GAG(X1, X2, X3, ackermannA_in_ggg(X1, X5, X3))
   U28_GAG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> ACKERMANNA_IN_GGG(X1, X5, X3)

The TRS R consists of the following rules:

   ackermanncB_in_ga(X1, X2) -> U40_ga(X1, X2, ackermanncD_in_ga(X1, X2))
   ackermanncD_in_ga(0, s(s(0))) -> ackermanncD_out_ga(0, s(s(0)))
   ackermanncD_in_ga(s(X1), X2) -> U41_ga(X1, X2, ackermanncB_in_ga(X1, X3))
   U41_ga(X1, X2, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, X2, ackermanncF_in_gga(X1, X3, X2))
   ackermanncF_in_gga(0, X1, s(X1)) -> ackermanncF_out_gga(0, X1, s(X1))
   ackermanncF_in_gga(s(X1), 0, X2) -> U43_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   U43_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2)
   ackermanncF_in_gga(s(X1), s(X2), X3) -> U44_gga(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4))
   U44_gga(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, X3, ackermanncF_in_gga(X1, X4, X3))
   U45_gga(X1, X2, X3, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3)
   U42_ga(X1, X2, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2)
   U40_ga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2)
   ackermanncC_in_gga(X1, 0, X2) -> U46_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   U46_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2)
   ackermanncC_in_gga(X1, s(X2), X3) -> U47_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3))
   qcG_in_ggaa(X1, X2, X3, X4) -> U48_ggaa(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3))
   U48_ggaa(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4))
   ackermanncE_in_gga(0, X1, s(X1)) -> ackermanncE_out_gga(0, X1, s(X1))
   ackermanncE_in_gga(s(X1), 0, X2) -> U50_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   U50_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2)
   ackermanncE_in_gga(s(X1), s(X2), X3) -> U51_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3))
   U51_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3)
   U49_ggaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4)
   U47_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3)
   ackermanncC_in_gaa(X1, 0, X2) -> U46_gaa(X1, X2, ackermanncD_in_ga(X1, X2))
   U46_gaa(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gaa(X1, 0, X2)
   ackermanncC_in_gaa(X1, s(X2), X3) -> U47_gaa(X1, X2, X3, qcG_in_gaaa(X1, X2, X4, X3))
   qcG_in_gaaa(X1, X2, X3, X4) -> U48_gaaa(X1, X2, X3, X4, ackermanncC_in_gaa(X1, X2, X3))
   U48_gaaa(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> U49_gaaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4))
   U49_gaaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_gaaa(X1, X2, X3, X4)
   U47_gaa(X1, X2, X3, qcG_out_gaaa(X1, X2, X4, X3)) -> ackermanncC_out_gaa(X1, s(X2), X3)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)

ackermannB_in_ga(x1, x2)  =  ackermannB_in_ga(x1)

ackermannD_in_ga(x1, x2)  =  ackermannD_in_ga(x1)

ackermanncB_in_ga(x1, x2)  =  ackermanncB_in_ga(x1)

U40_ga(x1, x2, x3)  =  U40_ga(x1, x3)

ackermanncD_in_ga(x1, x2)  =  ackermanncD_in_ga(x1)

0  =  0

ackermanncD_out_ga(x1, x2)  =  ackermanncD_out_ga(x1, x2)

U41_ga(x1, x2, x3)  =  U41_ga(x1, x3)

ackermanncB_out_ga(x1, x2)  =  ackermanncB_out_ga(x1, x2)

U42_ga(x1, x2, x3)  =  U42_ga(x1, x3)

ackermanncF_in_gga(x1, x2, x3)  =  ackermanncF_in_gga(x1, x2)

ackermanncF_out_gga(x1, x2, x3)  =  ackermanncF_out_gga(x1, x2, x3)

U43_gga(x1, x2, x3)  =  U43_gga(x1, x3)

U44_gga(x1, x2, x3, x4)  =  U44_gga(x1, x2, x4)

U45_gga(x1, x2, x3, x4)  =  U45_gga(x1, x2, x4)

ackermannF_in_gga(x1, x2, x3)  =  ackermannF_in_gga(x1, x2)

ackermannA_in_ggg(x1, x2, x3)  =  ackermannA_in_ggg(x1, x2, x3)

ackermannC_in_gga(x1, x2, x3)  =  ackermannC_in_gga(x1, x2)

pG_in_ggaa(x1, x2, x3, x4)  =  pG_in_ggaa(x1, x2)

ackermanncC_in_gga(x1, x2, x3)  =  ackermanncC_in_gga(x1, x2)

U46_gga(x1, x2, x3)  =  U46_gga(x1, x3)

ackermanncC_out_gga(x1, x2, x3)  =  ackermanncC_out_gga(x1, x2, x3)

U47_gga(x1, x2, x3, x4)  =  U47_gga(x1, x2, x4)

qcG_in_ggaa(x1, x2, x3, x4)  =  qcG_in_ggaa(x1, x2)

U48_ggaa(x1, x2, x3, x4, x5)  =  U48_ggaa(x1, x2, x5)

U49_ggaa(x1, x2, x3, x4, x5)  =  U49_ggaa(x1, x2, x3, x5)

ackermanncE_in_gga(x1, x2, x3)  =  ackermanncE_in_gga(x1, x2)

ackermanncE_out_gga(x1, x2, x3)  =  ackermanncE_out_gga(x1, x2, x3)

U50_gga(x1, x2, x3)  =  U50_gga(x1, x3)

U51_gga(x1, x2, x3, x4)  =  U51_gga(x1, x2, x4)

qcG_out_ggaa(x1, x2, x3, x4)  =  qcG_out_ggaa(x1, x2, x3, x4)

ackermannE_in_gga(x1, x2, x3)  =  ackermannE_in_gga(x1, x2)

ackermannC_in_gaa(x1, x2, x3)  =  ackermannC_in_gaa(x1)

pG_in_gaaa(x1, x2, x3, x4)  =  pG_in_gaaa(x1)

ackermanncC_in_gaa(x1, x2, x3)  =  ackermanncC_in_gaa(x1)

U46_gaa(x1, x2, x3)  =  U46_gaa(x1, x3)

ackermanncC_out_gaa(x1, x2, x3)  =  ackermanncC_out_gaa(x1, x2, x3)

U47_gaa(x1, x2, x3, x4)  =  U47_gaa(x1, x4)

qcG_in_gaaa(x1, x2, x3, x4)  =  qcG_in_gaaa(x1)

U48_gaaa(x1, x2, x3, x4, x5)  =  U48_gaaa(x1, x5)

U49_gaaa(x1, x2, x3, x4, x5)  =  U49_gaaa(x1, x2, x3, x5)

qcG_out_gaaa(x1, x2, x3, x4)  =  qcG_out_gaaa(x1, x2, x3, x4)

ACKERMANNA_IN_GAG(x1, x2, x3)  =  ACKERMANNA_IN_GAG(x1, x3)

U16_GAG(x1, x2, x3)  =  U16_GAG(x1, x2, x3)

ACKERMANNB_IN_GA(x1, x2)  =  ACKERMANNB_IN_GA(x1)

U1_GA(x1, x2, x3)  =  U1_GA(x1, x3)

ACKERMANND_IN_GA(x1, x2)  =  ACKERMANND_IN_GA(x1)

U2_GA(x1, x2, x3)  =  U2_GA(x1, x3)

U3_GA(x1, x2, x3)  =  U3_GA(x1, x3)

U4_GA(x1, x2, x3)  =  U4_GA(x1, x3)

ACKERMANNF_IN_GGA(x1, x2, x3)  =  ACKERMANNF_IN_GGA(x1, x2)

U5_GGA(x1, x2, x3)  =  U5_GGA(x1, x3)

U6_GGA(x1, x2, x3, x4)  =  U6_GGA(x1, x2, x4)

U7_GGA(x1, x2, x3, x4)  =  U7_GGA(x1, x2, x4)

U8_GGA(x1, x2, x3, x4)  =  U8_GGA(x1, x2, x4)

U17_GAG(x1, x2, x3)  =  U17_GAG(x1, x2, x3)

U18_GAG(x1, x2, x3)  =  U18_GAG(x1, x2, x3)

ACKERMANNA_IN_GGG(x1, x2, x3)  =  ACKERMANNA_IN_GGG(x1, x2, x3)

U16_GGG(x1, x2, x3)  =  U16_GGG(x1, x2, x3)

U17_GGG(x1, x2, x3)  =  U17_GGG(x1, x2, x3)

U18_GGG(x1, x2, x3)  =  U18_GGG(x1, x2, x3)

U19_GGG(x1, x2, x3, x4)  =  U19_GGG(x1, x2, x3, x4)

ACKERMANNC_IN_GGA(x1, x2, x3)  =  ACKERMANNC_IN_GGA(x1, x2)

U9_GGA(x1, x2, x3)  =  U9_GGA(x1, x3)

U10_GGA(x1, x2, x3, x4)  =  U10_GGA(x1, x2, x4)

PG_IN_GGAA(x1, x2, x3, x4)  =  PG_IN_GGAA(x1, x2)

U11_GGAA(x1, x2, x3, x4, x5)  =  U11_GGAA(x1, x2, x5)

U12_GGAA(x1, x2, x3, x4, x5)  =  U12_GGAA(x1, x2, x5)

U13_GGAA(x1, x2, x3, x4, x5)  =  U13_GGAA(x1, x2, x5)

ACKERMANNE_IN_GGA(x1, x2, x3)  =  ACKERMANNE_IN_GGA(x1, x2)

U14_GGA(x1, x2, x3)  =  U14_GGA(x1, x3)

U15_GGA(x1, x2, x3, x4)  =  U15_GGA(x1, x2, x4)

U20_GGG(x1, x2, x3, x4)  =  U20_GGG(x1, x2, x3, x4)

U21_GGG(x1, x2, x3, x4)  =  U21_GGG(x1, x2, x3, x4)

U22_GGG(x1, x2, x3)  =  U22_GGG(x1, x2, x3)

U23_GGG(x1, x2, x3)  =  U23_GGG(x1, x2, x3)

U24_GGG(x1, x2, x3)  =  U24_GGG(x1, x2, x3)

U25_GGG(x1, x2, x3, x4)  =  U25_GGG(x1, x2, x3, x4)

U26_GGG(x1, x2, x3, x4)  =  U26_GGG(x1, x2, x3, x4)

U27_GGG(x1, x2, x3, x4)  =  U27_GGG(x1, x2, x3, x4)

U28_GGG(x1, x2, x3, x4)  =  U28_GGG(x1, x2, x3, x4)

U29_GGG(x1, x2, x3, x4)  =  U29_GGG(x1, x2, x3, x4)

U19_GAG(x1, x2, x3, x4)  =  U19_GAG(x1, x3, x4)

ACKERMANNC_IN_GAA(x1, x2, x3)  =  ACKERMANNC_IN_GAA(x1)

U9_GAA(x1, x2, x3)  =  U9_GAA(x1, x3)

U10_GAA(x1, x2, x3, x4)  =  U10_GAA(x1, x4)

PG_IN_GAAA(x1, x2, x3, x4)  =  PG_IN_GAAA(x1)

U11_GAAA(x1, x2, x3, x4, x5)  =  U11_GAAA(x1, x5)

U12_GAAA(x1, x2, x3, x4, x5)  =  U12_GAAA(x1, x5)

U13_GAAA(x1, x2, x3, x4, x5)  =  U13_GAAA(x1, x2, x5)

U20_GAG(x1, x2, x3, x4)  =  U20_GAG(x1, x3, x4)

U21_GAG(x1, x2, x3, x4)  =  U21_GAG(x1, x2, x3, x4)

U22_GAG(x1, x2, x3)  =  U22_GAG(x1, x2, x3)

U23_GAG(x1, x2, x3)  =  U23_GAG(x1, x2, x3)

U24_GAG(x1, x2, x3)  =  U24_GAG(x1, x2, x3)

U25_GAG(x1, x2, x3, x4)  =  U25_GAG(x1, x3, x4)

U26_GAG(x1, x2, x3, x4)  =  U26_GAG(x1, x3, x4)

U27_GAG(x1, x2, x3, x4)  =  U27_GAG(x1, x2, x3, x4)

U28_GAG(x1, x2, x3, x4)  =  U28_GAG(x1, x2, x3, x4)

U29_GAG(x1, x2, x3, x4)  =  U29_GAG(x1, x2, x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(85) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 58 less nodes.
----------------------------------------

(86)
Complex Obligation (AND)

----------------------------------------

(87)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANNB_IN_GA(X1, X2) -> ACKERMANND_IN_GA(X1, X2)
   ACKERMANND_IN_GA(s(X1), X2) -> ACKERMANNB_IN_GA(X1, X3)
   ACKERMANND_IN_GA(s(X1), X2) -> U3_GA(X1, X2, ackermanncB_in_ga(X1, X3))
   U3_GA(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNF_IN_GGA(X1, X3, X2)
   ACKERMANNF_IN_GGA(s(X1), 0, X2) -> ACKERMANND_IN_GA(X1, X2)
   ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> ACKERMANNF_IN_GGA(s(X1), X2, X4)
   ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> U7_GGA(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4))
   U7_GGA(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> ACKERMANNF_IN_GGA(X1, X4, X3)

The TRS R consists of the following rules:

   ackermanncB_in_ga(X1, X2) -> U40_ga(X1, X2, ackermanncD_in_ga(X1, X2))
   ackermanncD_in_ga(0, s(s(0))) -> ackermanncD_out_ga(0, s(s(0)))
   ackermanncD_in_ga(s(X1), X2) -> U41_ga(X1, X2, ackermanncB_in_ga(X1, X3))
   U41_ga(X1, X2, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, X2, ackermanncF_in_gga(X1, X3, X2))
   ackermanncF_in_gga(0, X1, s(X1)) -> ackermanncF_out_gga(0, X1, s(X1))
   ackermanncF_in_gga(s(X1), 0, X2) -> U43_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   U43_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2)
   ackermanncF_in_gga(s(X1), s(X2), X3) -> U44_gga(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4))
   U44_gga(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, X3, ackermanncF_in_gga(X1, X4, X3))
   U45_gga(X1, X2, X3, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3)
   U42_ga(X1, X2, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2)
   U40_ga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2)
   ackermanncC_in_gga(X1, 0, X2) -> U46_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   U46_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2)
   ackermanncC_in_gga(X1, s(X2), X3) -> U47_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3))
   qcG_in_ggaa(X1, X2, X3, X4) -> U48_ggaa(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3))
   U48_ggaa(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4))
   ackermanncE_in_gga(0, X1, s(X1)) -> ackermanncE_out_gga(0, X1, s(X1))
   ackermanncE_in_gga(s(X1), 0, X2) -> U50_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   U50_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2)
   ackermanncE_in_gga(s(X1), s(X2), X3) -> U51_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3))
   U51_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3)
   U49_ggaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4)
   U47_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3)
   ackermanncC_in_gaa(X1, 0, X2) -> U46_gaa(X1, X2, ackermanncD_in_ga(X1, X2))
   U46_gaa(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gaa(X1, 0, X2)
   ackermanncC_in_gaa(X1, s(X2), X3) -> U47_gaa(X1, X2, X3, qcG_in_gaaa(X1, X2, X4, X3))
   qcG_in_gaaa(X1, X2, X3, X4) -> U48_gaaa(X1, X2, X3, X4, ackermanncC_in_gaa(X1, X2, X3))
   U48_gaaa(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> U49_gaaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4))
   U49_gaaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_gaaa(X1, X2, X3, X4)
   U47_gaa(X1, X2, X3, qcG_out_gaaa(X1, X2, X4, X3)) -> ackermanncC_out_gaa(X1, s(X2), X3)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)

ackermanncB_in_ga(x1, x2)  =  ackermanncB_in_ga(x1)

U40_ga(x1, x2, x3)  =  U40_ga(x1, x3)

ackermanncD_in_ga(x1, x2)  =  ackermanncD_in_ga(x1)

0  =  0

ackermanncD_out_ga(x1, x2)  =  ackermanncD_out_ga(x1, x2)

U41_ga(x1, x2, x3)  =  U41_ga(x1, x3)

ackermanncB_out_ga(x1, x2)  =  ackermanncB_out_ga(x1, x2)

U42_ga(x1, x2, x3)  =  U42_ga(x1, x3)

ackermanncF_in_gga(x1, x2, x3)  =  ackermanncF_in_gga(x1, x2)

ackermanncF_out_gga(x1, x2, x3)  =  ackermanncF_out_gga(x1, x2, x3)

U43_gga(x1, x2, x3)  =  U43_gga(x1, x3)

U44_gga(x1, x2, x3, x4)  =  U44_gga(x1, x2, x4)

U45_gga(x1, x2, x3, x4)  =  U45_gga(x1, x2, x4)

ackermanncC_in_gga(x1, x2, x3)  =  ackermanncC_in_gga(x1, x2)

U46_gga(x1, x2, x3)  =  U46_gga(x1, x3)

ackermanncC_out_gga(x1, x2, x3)  =  ackermanncC_out_gga(x1, x2, x3)

U47_gga(x1, x2, x3, x4)  =  U47_gga(x1, x2, x4)

qcG_in_ggaa(x1, x2, x3, x4)  =  qcG_in_ggaa(x1, x2)

U48_ggaa(x1, x2, x3, x4, x5)  =  U48_ggaa(x1, x2, x5)

U49_ggaa(x1, x2, x3, x4, x5)  =  U49_ggaa(x1, x2, x3, x5)

ackermanncE_in_gga(x1, x2, x3)  =  ackermanncE_in_gga(x1, x2)

ackermanncE_out_gga(x1, x2, x3)  =  ackermanncE_out_gga(x1, x2, x3)

U50_gga(x1, x2, x3)  =  U50_gga(x1, x3)

U51_gga(x1, x2, x3, x4)  =  U51_gga(x1, x2, x4)

qcG_out_ggaa(x1, x2, x3, x4)  =  qcG_out_ggaa(x1, x2, x3, x4)

ackermanncC_in_gaa(x1, x2, x3)  =  ackermanncC_in_gaa(x1)

U46_gaa(x1, x2, x3)  =  U46_gaa(x1, x3)

ackermanncC_out_gaa(x1, x2, x3)  =  ackermanncC_out_gaa(x1, x2, x3)

U47_gaa(x1, x2, x3, x4)  =  U47_gaa(x1, x4)

qcG_in_gaaa(x1, x2, x3, x4)  =  qcG_in_gaaa(x1)

U48_gaaa(x1, x2, x3, x4, x5)  =  U48_gaaa(x1, x5)

U49_gaaa(x1, x2, x3, x4, x5)  =  U49_gaaa(x1, x2, x3, x5)

qcG_out_gaaa(x1, x2, x3, x4)  =  qcG_out_gaaa(x1, x2, x3, x4)

ACKERMANNB_IN_GA(x1, x2)  =  ACKERMANNB_IN_GA(x1)

ACKERMANND_IN_GA(x1, x2)  =  ACKERMANND_IN_GA(x1)

U3_GA(x1, x2, x3)  =  U3_GA(x1, x3)

ACKERMANNF_IN_GGA(x1, x2, x3)  =  ACKERMANNF_IN_GGA(x1, x2)

U7_GGA(x1, x2, x3, x4)  =  U7_GGA(x1, x2, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(88) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(89)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANNB_IN_GA(X1, X2) -> ACKERMANND_IN_GA(X1, X2)
   ACKERMANND_IN_GA(s(X1), X2) -> ACKERMANNB_IN_GA(X1, X3)
   ACKERMANND_IN_GA(s(X1), X2) -> U3_GA(X1, X2, ackermanncB_in_ga(X1, X3))
   U3_GA(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNF_IN_GGA(X1, X3, X2)
   ACKERMANNF_IN_GGA(s(X1), 0, X2) -> ACKERMANND_IN_GA(X1, X2)
   ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> ACKERMANNF_IN_GGA(s(X1), X2, X4)
   ACKERMANNF_IN_GGA(s(X1), s(X2), X3) -> U7_GGA(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4))
   U7_GGA(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> ACKERMANNF_IN_GGA(X1, X4, X3)

The TRS R consists of the following rules:

   ackermanncB_in_ga(X1, X2) -> U40_ga(X1, X2, ackermanncD_in_ga(X1, X2))
   ackermanncF_in_gga(s(X1), 0, X2) -> U43_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   ackermanncF_in_gga(s(X1), s(X2), X3) -> U44_gga(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4))
   U40_ga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2)
   U43_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2)
   U44_gga(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, X3, ackermanncF_in_gga(X1, X4, X3))
   ackermanncD_in_ga(0, s(s(0))) -> ackermanncD_out_ga(0, s(s(0)))
   ackermanncD_in_ga(s(X1), X2) -> U41_ga(X1, X2, ackermanncB_in_ga(X1, X3))
   U45_gga(X1, X2, X3, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3)
   U41_ga(X1, X2, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, X2, ackermanncF_in_gga(X1, X3, X2))
   ackermanncF_in_gga(0, X1, s(X1)) -> ackermanncF_out_gga(0, X1, s(X1))
   U42_ga(X1, X2, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)

ackermanncB_in_ga(x1, x2)  =  ackermanncB_in_ga(x1)

U40_ga(x1, x2, x3)  =  U40_ga(x1, x3)

ackermanncD_in_ga(x1, x2)  =  ackermanncD_in_ga(x1)

0  =  0

ackermanncD_out_ga(x1, x2)  =  ackermanncD_out_ga(x1, x2)

U41_ga(x1, x2, x3)  =  U41_ga(x1, x3)

ackermanncB_out_ga(x1, x2)  =  ackermanncB_out_ga(x1, x2)

U42_ga(x1, x2, x3)  =  U42_ga(x1, x3)

ackermanncF_in_gga(x1, x2, x3)  =  ackermanncF_in_gga(x1, x2)

ackermanncF_out_gga(x1, x2, x3)  =  ackermanncF_out_gga(x1, x2, x3)

U43_gga(x1, x2, x3)  =  U43_gga(x1, x3)

U44_gga(x1, x2, x3, x4)  =  U44_gga(x1, x2, x4)

U45_gga(x1, x2, x3, x4)  =  U45_gga(x1, x2, x4)

ACKERMANNB_IN_GA(x1, x2)  =  ACKERMANNB_IN_GA(x1)

ACKERMANND_IN_GA(x1, x2)  =  ACKERMANND_IN_GA(x1)

U3_GA(x1, x2, x3)  =  U3_GA(x1, x3)

ACKERMANNF_IN_GGA(x1, x2, x3)  =  ACKERMANNF_IN_GGA(x1, x2)

U7_GGA(x1, x2, x3, x4)  =  U7_GGA(x1, x2, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(90) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(91)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   ACKERMANNB_IN_GA(X1) -> ACKERMANND_IN_GA(X1)
   ACKERMANND_IN_GA(s(X1)) -> ACKERMANNB_IN_GA(X1)
   ACKERMANND_IN_GA(s(X1)) -> U3_GA(X1, ackermanncB_in_ga(X1))
   U3_GA(X1, ackermanncB_out_ga(X1, X3)) -> ACKERMANNF_IN_GGA(X1, X3)
   ACKERMANNF_IN_GGA(s(X1), 0) -> ACKERMANND_IN_GA(X1)
   ACKERMANNF_IN_GGA(s(X1), s(X2)) -> ACKERMANNF_IN_GGA(s(X1), X2)
   ACKERMANNF_IN_GGA(s(X1), s(X2)) -> U7_GGA(X1, X2, ackermanncF_in_gga(s(X1), X2))
   U7_GGA(X1, X2, ackermanncF_out_gga(s(X1), X2, X4)) -> ACKERMANNF_IN_GGA(X1, X4)

The TRS R consists of the following rules:

   ackermanncB_in_ga(X1) -> U40_ga(X1, ackermanncD_in_ga(X1))
   ackermanncF_in_gga(s(X1), 0) -> U43_gga(X1, ackermanncD_in_ga(X1))
   ackermanncF_in_gga(s(X1), s(X2)) -> U44_gga(X1, X2, ackermanncF_in_gga(s(X1), X2))
   U40_ga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2)
   U43_gga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2)
   U44_gga(X1, X2, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, ackermanncF_in_gga(X1, X4))
   ackermanncD_in_ga(0) -> ackermanncD_out_ga(0, s(s(0)))
   ackermanncD_in_ga(s(X1)) -> U41_ga(X1, ackermanncB_in_ga(X1))
   U45_gga(X1, X2, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3)
   U41_ga(X1, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, ackermanncF_in_gga(X1, X3))
   ackermanncF_in_gga(0, X1) -> ackermanncF_out_gga(0, X1, s(X1))
   U42_ga(X1, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2)

The set Q consists of the following terms:

   ackermanncB_in_ga(x0)
   ackermanncF_in_gga(x0, x1)
   U40_ga(x0, x1)
   U43_gga(x0, x1)
   U44_gga(x0, x1, x2)
   ackermanncD_in_ga(x0)
   U45_gga(x0, x1, x2)
   U41_ga(x0, x1)
   U42_ga(x0, x1)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(92) 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:
*ACKERMANND_IN_GA(s(X1)) -> ACKERMANNB_IN_GA(X1)
The graph contains the following edges 1 > 1


*ACKERMANND_IN_GA(s(X1)) -> U3_GA(X1, ackermanncB_in_ga(X1))
The graph contains the following edges 1 > 1


*ACKERMANNB_IN_GA(X1) -> ACKERMANND_IN_GA(X1)
The graph contains the following edges 1 >= 1


*ACKERMANNF_IN_GGA(s(X1), 0) -> ACKERMANND_IN_GA(X1)
The graph contains the following edges 1 > 1


*U3_GA(X1, ackermanncB_out_ga(X1, X3)) -> ACKERMANNF_IN_GGA(X1, X3)
The graph contains the following edges 1 >= 1, 2 > 1, 2 > 2


*U7_GGA(X1, X2, ackermanncF_out_gga(s(X1), X2, X4)) -> ACKERMANNF_IN_GGA(X1, X4)
The graph contains the following edges 1 >= 1, 3 > 1, 3 > 2


*ACKERMANNF_IN_GGA(s(X1), s(X2)) -> ACKERMANNF_IN_GGA(s(X1), X2)
The graph contains the following edges 1 >= 1, 2 > 2


*ACKERMANNF_IN_GGA(s(X1), s(X2)) -> U7_GGA(X1, X2, ackermanncF_in_gga(s(X1), X2))
The graph contains the following edges 1 > 1, 2 > 2


----------------------------------------

(93)
YES

----------------------------------------

(94)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANNC_IN_GGA(X1, s(X2), X3) -> PG_IN_GGAA(X1, X2, X4, X3)
   PG_IN_GGAA(X1, X2, X3, X4) -> ACKERMANNC_IN_GGA(X1, X2, X3)
   PG_IN_GGAA(X1, X2, X3, X4) -> U12_GGAA(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3))
   U12_GGAA(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> ACKERMANNE_IN_GGA(X1, X3, X4)
   ACKERMANNE_IN_GGA(s(X1), s(X2), X3) -> PG_IN_GGAA(X1, X2, X4, X3)

The TRS R consists of the following rules:

   ackermanncB_in_ga(X1, X2) -> U40_ga(X1, X2, ackermanncD_in_ga(X1, X2))
   ackermanncD_in_ga(0, s(s(0))) -> ackermanncD_out_ga(0, s(s(0)))
   ackermanncD_in_ga(s(X1), X2) -> U41_ga(X1, X2, ackermanncB_in_ga(X1, X3))
   U41_ga(X1, X2, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, X2, ackermanncF_in_gga(X1, X3, X2))
   ackermanncF_in_gga(0, X1, s(X1)) -> ackermanncF_out_gga(0, X1, s(X1))
   ackermanncF_in_gga(s(X1), 0, X2) -> U43_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   U43_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2)
   ackermanncF_in_gga(s(X1), s(X2), X3) -> U44_gga(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4))
   U44_gga(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, X3, ackermanncF_in_gga(X1, X4, X3))
   U45_gga(X1, X2, X3, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3)
   U42_ga(X1, X2, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2)
   U40_ga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2)
   ackermanncC_in_gga(X1, 0, X2) -> U46_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   U46_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2)
   ackermanncC_in_gga(X1, s(X2), X3) -> U47_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3))
   qcG_in_ggaa(X1, X2, X3, X4) -> U48_ggaa(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3))
   U48_ggaa(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4))
   ackermanncE_in_gga(0, X1, s(X1)) -> ackermanncE_out_gga(0, X1, s(X1))
   ackermanncE_in_gga(s(X1), 0, X2) -> U50_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   U50_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2)
   ackermanncE_in_gga(s(X1), s(X2), X3) -> U51_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3))
   U51_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3)
   U49_ggaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4)
   U47_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3)
   ackermanncC_in_gaa(X1, 0, X2) -> U46_gaa(X1, X2, ackermanncD_in_ga(X1, X2))
   U46_gaa(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gaa(X1, 0, X2)
   ackermanncC_in_gaa(X1, s(X2), X3) -> U47_gaa(X1, X2, X3, qcG_in_gaaa(X1, X2, X4, X3))
   qcG_in_gaaa(X1, X2, X3, X4) -> U48_gaaa(X1, X2, X3, X4, ackermanncC_in_gaa(X1, X2, X3))
   U48_gaaa(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> U49_gaaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4))
   U49_gaaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_gaaa(X1, X2, X3, X4)
   U47_gaa(X1, X2, X3, qcG_out_gaaa(X1, X2, X4, X3)) -> ackermanncC_out_gaa(X1, s(X2), X3)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)

ackermanncB_in_ga(x1, x2)  =  ackermanncB_in_ga(x1)

U40_ga(x1, x2, x3)  =  U40_ga(x1, x3)

ackermanncD_in_ga(x1, x2)  =  ackermanncD_in_ga(x1)

0  =  0

ackermanncD_out_ga(x1, x2)  =  ackermanncD_out_ga(x1, x2)

U41_ga(x1, x2, x3)  =  U41_ga(x1, x3)

ackermanncB_out_ga(x1, x2)  =  ackermanncB_out_ga(x1, x2)

U42_ga(x1, x2, x3)  =  U42_ga(x1, x3)

ackermanncF_in_gga(x1, x2, x3)  =  ackermanncF_in_gga(x1, x2)

ackermanncF_out_gga(x1, x2, x3)  =  ackermanncF_out_gga(x1, x2, x3)

U43_gga(x1, x2, x3)  =  U43_gga(x1, x3)

U44_gga(x1, x2, x3, x4)  =  U44_gga(x1, x2, x4)

U45_gga(x1, x2, x3, x4)  =  U45_gga(x1, x2, x4)

ackermanncC_in_gga(x1, x2, x3)  =  ackermanncC_in_gga(x1, x2)

U46_gga(x1, x2, x3)  =  U46_gga(x1, x3)

ackermanncC_out_gga(x1, x2, x3)  =  ackermanncC_out_gga(x1, x2, x3)

U47_gga(x1, x2, x3, x4)  =  U47_gga(x1, x2, x4)

qcG_in_ggaa(x1, x2, x3, x4)  =  qcG_in_ggaa(x1, x2)

U48_ggaa(x1, x2, x3, x4, x5)  =  U48_ggaa(x1, x2, x5)

U49_ggaa(x1, x2, x3, x4, x5)  =  U49_ggaa(x1, x2, x3, x5)

ackermanncE_in_gga(x1, x2, x3)  =  ackermanncE_in_gga(x1, x2)

ackermanncE_out_gga(x1, x2, x3)  =  ackermanncE_out_gga(x1, x2, x3)

U50_gga(x1, x2, x3)  =  U50_gga(x1, x3)

U51_gga(x1, x2, x3, x4)  =  U51_gga(x1, x2, x4)

qcG_out_ggaa(x1, x2, x3, x4)  =  qcG_out_ggaa(x1, x2, x3, x4)

ackermanncC_in_gaa(x1, x2, x3)  =  ackermanncC_in_gaa(x1)

U46_gaa(x1, x2, x3)  =  U46_gaa(x1, x3)

ackermanncC_out_gaa(x1, x2, x3)  =  ackermanncC_out_gaa(x1, x2, x3)

U47_gaa(x1, x2, x3, x4)  =  U47_gaa(x1, x4)

qcG_in_gaaa(x1, x2, x3, x4)  =  qcG_in_gaaa(x1)

U48_gaaa(x1, x2, x3, x4, x5)  =  U48_gaaa(x1, x5)

U49_gaaa(x1, x2, x3, x4, x5)  =  U49_gaaa(x1, x2, x3, x5)

qcG_out_gaaa(x1, x2, x3, x4)  =  qcG_out_gaaa(x1, x2, x3, x4)

ACKERMANNC_IN_GGA(x1, x2, x3)  =  ACKERMANNC_IN_GGA(x1, x2)

PG_IN_GGAA(x1, x2, x3, x4)  =  PG_IN_GGAA(x1, x2)

U12_GGAA(x1, x2, x3, x4, x5)  =  U12_GGAA(x1, x2, x5)

ACKERMANNE_IN_GGA(x1, x2, x3)  =  ACKERMANNE_IN_GGA(x1, x2)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(95) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(96)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANNC_IN_GGA(X1, s(X2), X3) -> PG_IN_GGAA(X1, X2, X4, X3)
   PG_IN_GGAA(X1, X2, X3, X4) -> ACKERMANNC_IN_GGA(X1, X2, X3)
   PG_IN_GGAA(X1, X2, X3, X4) -> U12_GGAA(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3))
   U12_GGAA(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> ACKERMANNE_IN_GGA(X1, X3, X4)
   ACKERMANNE_IN_GGA(s(X1), s(X2), X3) -> PG_IN_GGAA(X1, X2, X4, X3)

The TRS R consists of the following rules:

   ackermanncC_in_gga(X1, 0, X2) -> U46_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   ackermanncC_in_gga(X1, s(X2), X3) -> U47_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3))
   U46_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2)
   U47_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3)
   ackermanncD_in_ga(0, s(s(0))) -> ackermanncD_out_ga(0, s(s(0)))
   ackermanncD_in_ga(s(X1), X2) -> U41_ga(X1, X2, ackermanncB_in_ga(X1, X3))
   qcG_in_ggaa(X1, X2, X3, X4) -> U48_ggaa(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3))
   U41_ga(X1, X2, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, X2, ackermanncF_in_gga(X1, X3, X2))
   U48_ggaa(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4))
   ackermanncB_in_ga(X1, X2) -> U40_ga(X1, X2, ackermanncD_in_ga(X1, X2))
   U42_ga(X1, X2, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2)
   U49_ggaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4)
   U40_ga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2)
   ackermanncF_in_gga(0, X1, s(X1)) -> ackermanncF_out_gga(0, X1, s(X1))
   ackermanncF_in_gga(s(X1), 0, X2) -> U43_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   ackermanncF_in_gga(s(X1), s(X2), X3) -> U44_gga(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4))
   ackermanncE_in_gga(0, X1, s(X1)) -> ackermanncE_out_gga(0, X1, s(X1))
   ackermanncE_in_gga(s(X1), 0, X2) -> U50_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   ackermanncE_in_gga(s(X1), s(X2), X3) -> U51_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3))
   U43_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2)
   U44_gga(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, X3, ackermanncF_in_gga(X1, X4, X3))
   U50_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2)
   U51_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3)
   U45_gga(X1, X2, X3, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)

ackermanncB_in_ga(x1, x2)  =  ackermanncB_in_ga(x1)

U40_ga(x1, x2, x3)  =  U40_ga(x1, x3)

ackermanncD_in_ga(x1, x2)  =  ackermanncD_in_ga(x1)

0  =  0

ackermanncD_out_ga(x1, x2)  =  ackermanncD_out_ga(x1, x2)

U41_ga(x1, x2, x3)  =  U41_ga(x1, x3)

ackermanncB_out_ga(x1, x2)  =  ackermanncB_out_ga(x1, x2)

U42_ga(x1, x2, x3)  =  U42_ga(x1, x3)

ackermanncF_in_gga(x1, x2, x3)  =  ackermanncF_in_gga(x1, x2)

ackermanncF_out_gga(x1, x2, x3)  =  ackermanncF_out_gga(x1, x2, x3)

U43_gga(x1, x2, x3)  =  U43_gga(x1, x3)

U44_gga(x1, x2, x3, x4)  =  U44_gga(x1, x2, x4)

U45_gga(x1, x2, x3, x4)  =  U45_gga(x1, x2, x4)

ackermanncC_in_gga(x1, x2, x3)  =  ackermanncC_in_gga(x1, x2)

U46_gga(x1, x2, x3)  =  U46_gga(x1, x3)

ackermanncC_out_gga(x1, x2, x3)  =  ackermanncC_out_gga(x1, x2, x3)

U47_gga(x1, x2, x3, x4)  =  U47_gga(x1, x2, x4)

qcG_in_ggaa(x1, x2, x3, x4)  =  qcG_in_ggaa(x1, x2)

U48_ggaa(x1, x2, x3, x4, x5)  =  U48_ggaa(x1, x2, x5)

U49_ggaa(x1, x2, x3, x4, x5)  =  U49_ggaa(x1, x2, x3, x5)

ackermanncE_in_gga(x1, x2, x3)  =  ackermanncE_in_gga(x1, x2)

ackermanncE_out_gga(x1, x2, x3)  =  ackermanncE_out_gga(x1, x2, x3)

U50_gga(x1, x2, x3)  =  U50_gga(x1, x3)

U51_gga(x1, x2, x3, x4)  =  U51_gga(x1, x2, x4)

qcG_out_ggaa(x1, x2, x3, x4)  =  qcG_out_ggaa(x1, x2, x3, x4)

ACKERMANNC_IN_GGA(x1, x2, x3)  =  ACKERMANNC_IN_GGA(x1, x2)

PG_IN_GGAA(x1, x2, x3, x4)  =  PG_IN_GGAA(x1, x2)

U12_GGAA(x1, x2, x3, x4, x5)  =  U12_GGAA(x1, x2, x5)

ACKERMANNE_IN_GGA(x1, x2, x3)  =  ACKERMANNE_IN_GGA(x1, x2)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(97) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(98)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   ACKERMANNC_IN_GGA(X1, s(X2)) -> PG_IN_GGAA(X1, X2)
   PG_IN_GGAA(X1, X2) -> ACKERMANNC_IN_GGA(X1, X2)
   PG_IN_GGAA(X1, X2) -> U12_GGAA(X1, X2, ackermanncC_in_gga(X1, X2))
   U12_GGAA(X1, X2, ackermanncC_out_gga(X1, X2, X3)) -> ACKERMANNE_IN_GGA(X1, X3)
   ACKERMANNE_IN_GGA(s(X1), s(X2)) -> PG_IN_GGAA(X1, X2)

The TRS R consists of the following rules:

   ackermanncC_in_gga(X1, 0) -> U46_gga(X1, ackermanncD_in_ga(X1))
   ackermanncC_in_gga(X1, s(X2)) -> U47_gga(X1, X2, qcG_in_ggaa(X1, X2))
   U46_gga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2)
   U47_gga(X1, X2, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3)
   ackermanncD_in_ga(0) -> ackermanncD_out_ga(0, s(s(0)))
   ackermanncD_in_ga(s(X1)) -> U41_ga(X1, ackermanncB_in_ga(X1))
   qcG_in_ggaa(X1, X2) -> U48_ggaa(X1, X2, ackermanncC_in_gga(X1, X2))
   U41_ga(X1, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, ackermanncF_in_gga(X1, X3))
   U48_ggaa(X1, X2, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, ackermanncE_in_gga(X1, X3))
   ackermanncB_in_ga(X1) -> U40_ga(X1, ackermanncD_in_ga(X1))
   U42_ga(X1, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2)
   U49_ggaa(X1, X2, X3, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4)
   U40_ga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2)
   ackermanncF_in_gga(0, X1) -> ackermanncF_out_gga(0, X1, s(X1))
   ackermanncF_in_gga(s(X1), 0) -> U43_gga(X1, ackermanncD_in_ga(X1))
   ackermanncF_in_gga(s(X1), s(X2)) -> U44_gga(X1, X2, ackermanncF_in_gga(s(X1), X2))
   ackermanncE_in_gga(0, X1) -> ackermanncE_out_gga(0, X1, s(X1))
   ackermanncE_in_gga(s(X1), 0) -> U50_gga(X1, ackermanncD_in_ga(X1))
   ackermanncE_in_gga(s(X1), s(X2)) -> U51_gga(X1, X2, qcG_in_ggaa(X1, X2))
   U43_gga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2)
   U44_gga(X1, X2, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, ackermanncF_in_gga(X1, X4))
   U50_gga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2)
   U51_gga(X1, X2, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3)
   U45_gga(X1, X2, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3)

The set Q consists of the following terms:

   ackermanncC_in_gga(x0, x1)
   U46_gga(x0, x1)
   U47_gga(x0, x1, x2)
   ackermanncD_in_ga(x0)
   qcG_in_ggaa(x0, x1)
   U41_ga(x0, x1)
   U48_ggaa(x0, x1, x2)
   ackermanncB_in_ga(x0)
   U42_ga(x0, x1)
   U49_ggaa(x0, x1, x2, x3)
   U40_ga(x0, x1)
   ackermanncF_in_gga(x0, x1)
   ackermanncE_in_gga(x0, x1)
   U43_gga(x0, x1)
   U44_gga(x0, x1, x2)
   U50_gga(x0, x1)
   U51_gga(x0, x1, x2)
   U45_gga(x0, x1, x2)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(99) 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:
*PG_IN_GGAA(X1, X2) -> ACKERMANNC_IN_GGA(X1, X2)
The graph contains the following edges 1 >= 1, 2 >= 2


*PG_IN_GGAA(X1, X2) -> U12_GGAA(X1, X2, ackermanncC_in_gga(X1, X2))
The graph contains the following edges 1 >= 1, 2 >= 2


*ACKERMANNC_IN_GGA(X1, s(X2)) -> PG_IN_GGAA(X1, X2)
The graph contains the following edges 1 >= 1, 2 > 2


*ACKERMANNE_IN_GGA(s(X1), s(X2)) -> PG_IN_GGAA(X1, X2)
The graph contains the following edges 1 > 1, 2 > 2


*U12_GGAA(X1, X2, ackermanncC_out_gga(X1, X2, X3)) -> ACKERMANNE_IN_GGA(X1, X3)
The graph contains the following edges 1 >= 1, 3 > 1, 3 > 2


----------------------------------------

(100)
YES

----------------------------------------

(101)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   PG_IN_GAAA(X1, X2, X3, X4) -> ACKERMANNC_IN_GAA(X1, X2, X3)
   ACKERMANNC_IN_GAA(X1, s(X2), X3) -> PG_IN_GAAA(X1, X2, X4, X3)

The TRS R consists of the following rules:

   ackermanncB_in_ga(X1, X2) -> U40_ga(X1, X2, ackermanncD_in_ga(X1, X2))
   ackermanncD_in_ga(0, s(s(0))) -> ackermanncD_out_ga(0, s(s(0)))
   ackermanncD_in_ga(s(X1), X2) -> U41_ga(X1, X2, ackermanncB_in_ga(X1, X3))
   U41_ga(X1, X2, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, X2, ackermanncF_in_gga(X1, X3, X2))
   ackermanncF_in_gga(0, X1, s(X1)) -> ackermanncF_out_gga(0, X1, s(X1))
   ackermanncF_in_gga(s(X1), 0, X2) -> U43_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   U43_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2)
   ackermanncF_in_gga(s(X1), s(X2), X3) -> U44_gga(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4))
   U44_gga(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, X3, ackermanncF_in_gga(X1, X4, X3))
   U45_gga(X1, X2, X3, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3)
   U42_ga(X1, X2, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2)
   U40_ga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2)
   ackermanncC_in_gga(X1, 0, X2) -> U46_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   U46_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2)
   ackermanncC_in_gga(X1, s(X2), X3) -> U47_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3))
   qcG_in_ggaa(X1, X2, X3, X4) -> U48_ggaa(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3))
   U48_ggaa(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4))
   ackermanncE_in_gga(0, X1, s(X1)) -> ackermanncE_out_gga(0, X1, s(X1))
   ackermanncE_in_gga(s(X1), 0, X2) -> U50_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   U50_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2)
   ackermanncE_in_gga(s(X1), s(X2), X3) -> U51_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3))
   U51_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3)
   U49_ggaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4)
   U47_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3)
   ackermanncC_in_gaa(X1, 0, X2) -> U46_gaa(X1, X2, ackermanncD_in_ga(X1, X2))
   U46_gaa(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gaa(X1, 0, X2)
   ackermanncC_in_gaa(X1, s(X2), X3) -> U47_gaa(X1, X2, X3, qcG_in_gaaa(X1, X2, X4, X3))
   qcG_in_gaaa(X1, X2, X3, X4) -> U48_gaaa(X1, X2, X3, X4, ackermanncC_in_gaa(X1, X2, X3))
   U48_gaaa(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> U49_gaaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4))
   U49_gaaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_gaaa(X1, X2, X3, X4)
   U47_gaa(X1, X2, X3, qcG_out_gaaa(X1, X2, X4, X3)) -> ackermanncC_out_gaa(X1, s(X2), X3)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)

ackermanncB_in_ga(x1, x2)  =  ackermanncB_in_ga(x1)

U40_ga(x1, x2, x3)  =  U40_ga(x1, x3)

ackermanncD_in_ga(x1, x2)  =  ackermanncD_in_ga(x1)

0  =  0

ackermanncD_out_ga(x1, x2)  =  ackermanncD_out_ga(x1, x2)

U41_ga(x1, x2, x3)  =  U41_ga(x1, x3)

ackermanncB_out_ga(x1, x2)  =  ackermanncB_out_ga(x1, x2)

U42_ga(x1, x2, x3)  =  U42_ga(x1, x3)

ackermanncF_in_gga(x1, x2, x3)  =  ackermanncF_in_gga(x1, x2)

ackermanncF_out_gga(x1, x2, x3)  =  ackermanncF_out_gga(x1, x2, x3)

U43_gga(x1, x2, x3)  =  U43_gga(x1, x3)

U44_gga(x1, x2, x3, x4)  =  U44_gga(x1, x2, x4)

U45_gga(x1, x2, x3, x4)  =  U45_gga(x1, x2, x4)

ackermanncC_in_gga(x1, x2, x3)  =  ackermanncC_in_gga(x1, x2)

U46_gga(x1, x2, x3)  =  U46_gga(x1, x3)

ackermanncC_out_gga(x1, x2, x3)  =  ackermanncC_out_gga(x1, x2, x3)

U47_gga(x1, x2, x3, x4)  =  U47_gga(x1, x2, x4)

qcG_in_ggaa(x1, x2, x3, x4)  =  qcG_in_ggaa(x1, x2)

U48_ggaa(x1, x2, x3, x4, x5)  =  U48_ggaa(x1, x2, x5)

U49_ggaa(x1, x2, x3, x4, x5)  =  U49_ggaa(x1, x2, x3, x5)

ackermanncE_in_gga(x1, x2, x3)  =  ackermanncE_in_gga(x1, x2)

ackermanncE_out_gga(x1, x2, x3)  =  ackermanncE_out_gga(x1, x2, x3)

U50_gga(x1, x2, x3)  =  U50_gga(x1, x3)

U51_gga(x1, x2, x3, x4)  =  U51_gga(x1, x2, x4)

qcG_out_ggaa(x1, x2, x3, x4)  =  qcG_out_ggaa(x1, x2, x3, x4)

ackermanncC_in_gaa(x1, x2, x3)  =  ackermanncC_in_gaa(x1)

U46_gaa(x1, x2, x3)  =  U46_gaa(x1, x3)

ackermanncC_out_gaa(x1, x2, x3)  =  ackermanncC_out_gaa(x1, x2, x3)

U47_gaa(x1, x2, x3, x4)  =  U47_gaa(x1, x4)

qcG_in_gaaa(x1, x2, x3, x4)  =  qcG_in_gaaa(x1)

U48_gaaa(x1, x2, x3, x4, x5)  =  U48_gaaa(x1, x5)

U49_gaaa(x1, x2, x3, x4, x5)  =  U49_gaaa(x1, x2, x3, x5)

qcG_out_gaaa(x1, x2, x3, x4)  =  qcG_out_gaaa(x1, x2, x3, x4)

ACKERMANNC_IN_GAA(x1, x2, x3)  =  ACKERMANNC_IN_GAA(x1)

PG_IN_GAAA(x1, x2, x3, x4)  =  PG_IN_GAAA(x1)


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:

   PG_IN_GAAA(X1, X2, X3, X4) -> ACKERMANNC_IN_GAA(X1, X2, X3)
   ACKERMANNC_IN_GAA(X1, s(X2), X3) -> PG_IN_GAAA(X1, X2, X4, X3)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)

ACKERMANNC_IN_GAA(x1, x2, x3)  =  ACKERMANNC_IN_GAA(x1)

PG_IN_GAAA(x1, x2, x3, x4)  =  PG_IN_GAAA(x1)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(104) PiDPToQDPProof (SOUND)
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:

   PG_IN_GAAA(X1) -> ACKERMANNC_IN_GAA(X1)
   ACKERMANNC_IN_GAA(X1) -> PG_IN_GAAA(X1)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(106) NonTerminationLoopProof (COMPLETE)
We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = ACKERMANNC_IN_GAA(X1') evaluates to  t =ACKERMANNC_IN_GAA(X1')

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
* Matcher: [ ]
* Semiunifier: [ ]

--------------------------------------------------------------------------------
Rewriting sequence

ACKERMANNC_IN_GAA(X1') -> PG_IN_GAAA(X1')
with rule ACKERMANNC_IN_GAA(X1'') -> PG_IN_GAAA(X1'') at position [] and matcher [X1'' / X1']

PG_IN_GAAA(X1') -> ACKERMANNC_IN_GAA(X1')
with rule PG_IN_GAAA(X1) -> ACKERMANNC_IN_GAA(X1)

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.




----------------------------------------

(107)
NO

----------------------------------------

(108)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> U17_GGG(X1, X2, ackermanncB_in_ga(X1, X3))
   U17_GGG(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2)
   ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> U20_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2, X4))
   U20_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> ACKERMANNA_IN_GGG(X1, X4, X3)
   ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> U23_GGG(X1, X2, ackermanncD_in_ga(X1, X3))
   U23_GGG(X1, X2, ackermanncD_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2)
   ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> U26_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2, X4))
   U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U28_GGG(X1, X2, X3, ackermanncE_in_gga(X1, X4, X5))
   U28_GGG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> ACKERMANNA_IN_GGG(X1, X5, X3)

The TRS R consists of the following rules:

   ackermanncB_in_ga(X1, X2) -> U40_ga(X1, X2, ackermanncD_in_ga(X1, X2))
   ackermanncD_in_ga(0, s(s(0))) -> ackermanncD_out_ga(0, s(s(0)))
   ackermanncD_in_ga(s(X1), X2) -> U41_ga(X1, X2, ackermanncB_in_ga(X1, X3))
   U41_ga(X1, X2, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, X2, ackermanncF_in_gga(X1, X3, X2))
   ackermanncF_in_gga(0, X1, s(X1)) -> ackermanncF_out_gga(0, X1, s(X1))
   ackermanncF_in_gga(s(X1), 0, X2) -> U43_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   U43_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2)
   ackermanncF_in_gga(s(X1), s(X2), X3) -> U44_gga(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4))
   U44_gga(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, X3, ackermanncF_in_gga(X1, X4, X3))
   U45_gga(X1, X2, X3, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3)
   U42_ga(X1, X2, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2)
   U40_ga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2)
   ackermanncC_in_gga(X1, 0, X2) -> U46_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   U46_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2)
   ackermanncC_in_gga(X1, s(X2), X3) -> U47_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3))
   qcG_in_ggaa(X1, X2, X3, X4) -> U48_ggaa(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3))
   U48_ggaa(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4))
   ackermanncE_in_gga(0, X1, s(X1)) -> ackermanncE_out_gga(0, X1, s(X1))
   ackermanncE_in_gga(s(X1), 0, X2) -> U50_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   U50_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2)
   ackermanncE_in_gga(s(X1), s(X2), X3) -> U51_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3))
   U51_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3)
   U49_ggaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4)
   U47_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3)
   ackermanncC_in_gaa(X1, 0, X2) -> U46_gaa(X1, X2, ackermanncD_in_ga(X1, X2))
   U46_gaa(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gaa(X1, 0, X2)
   ackermanncC_in_gaa(X1, s(X2), X3) -> U47_gaa(X1, X2, X3, qcG_in_gaaa(X1, X2, X4, X3))
   qcG_in_gaaa(X1, X2, X3, X4) -> U48_gaaa(X1, X2, X3, X4, ackermanncC_in_gaa(X1, X2, X3))
   U48_gaaa(X1, X2, X3, X4, ackermanncC_out_gaa(X1, X2, X3)) -> U49_gaaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4))
   U49_gaaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_gaaa(X1, X2, X3, X4)
   U47_gaa(X1, X2, X3, qcG_out_gaaa(X1, X2, X4, X3)) -> ackermanncC_out_gaa(X1, s(X2), X3)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)

ackermanncB_in_ga(x1, x2)  =  ackermanncB_in_ga(x1)

U40_ga(x1, x2, x3)  =  U40_ga(x1, x3)

ackermanncD_in_ga(x1, x2)  =  ackermanncD_in_ga(x1)

0  =  0

ackermanncD_out_ga(x1, x2)  =  ackermanncD_out_ga(x1, x2)

U41_ga(x1, x2, x3)  =  U41_ga(x1, x3)

ackermanncB_out_ga(x1, x2)  =  ackermanncB_out_ga(x1, x2)

U42_ga(x1, x2, x3)  =  U42_ga(x1, x3)

ackermanncF_in_gga(x1, x2, x3)  =  ackermanncF_in_gga(x1, x2)

ackermanncF_out_gga(x1, x2, x3)  =  ackermanncF_out_gga(x1, x2, x3)

U43_gga(x1, x2, x3)  =  U43_gga(x1, x3)

U44_gga(x1, x2, x3, x4)  =  U44_gga(x1, x2, x4)

U45_gga(x1, x2, x3, x4)  =  U45_gga(x1, x2, x4)

ackermanncC_in_gga(x1, x2, x3)  =  ackermanncC_in_gga(x1, x2)

U46_gga(x1, x2, x3)  =  U46_gga(x1, x3)

ackermanncC_out_gga(x1, x2, x3)  =  ackermanncC_out_gga(x1, x2, x3)

U47_gga(x1, x2, x3, x4)  =  U47_gga(x1, x2, x4)

qcG_in_ggaa(x1, x2, x3, x4)  =  qcG_in_ggaa(x1, x2)

U48_ggaa(x1, x2, x3, x4, x5)  =  U48_ggaa(x1, x2, x5)

U49_ggaa(x1, x2, x3, x4, x5)  =  U49_ggaa(x1, x2, x3, x5)

ackermanncE_in_gga(x1, x2, x3)  =  ackermanncE_in_gga(x1, x2)

ackermanncE_out_gga(x1, x2, x3)  =  ackermanncE_out_gga(x1, x2, x3)

U50_gga(x1, x2, x3)  =  U50_gga(x1, x3)

U51_gga(x1, x2, x3, x4)  =  U51_gga(x1, x2, x4)

qcG_out_ggaa(x1, x2, x3, x4)  =  qcG_out_ggaa(x1, x2, x3, x4)

ackermanncC_in_gaa(x1, x2, x3)  =  ackermanncC_in_gaa(x1)

U46_gaa(x1, x2, x3)  =  U46_gaa(x1, x3)

ackermanncC_out_gaa(x1, x2, x3)  =  ackermanncC_out_gaa(x1, x2, x3)

U47_gaa(x1, x2, x3, x4)  =  U47_gaa(x1, x4)

qcG_in_gaaa(x1, x2, x3, x4)  =  qcG_in_gaaa(x1)

U48_gaaa(x1, x2, x3, x4, x5)  =  U48_gaaa(x1, x5)

U49_gaaa(x1, x2, x3, x4, x5)  =  U49_gaaa(x1, x2, x3, x5)

qcG_out_gaaa(x1, x2, x3, x4)  =  qcG_out_gaaa(x1, x2, x3, x4)

ACKERMANNA_IN_GGG(x1, x2, x3)  =  ACKERMANNA_IN_GGG(x1, x2, x3)

U17_GGG(x1, x2, x3)  =  U17_GGG(x1, x2, x3)

U20_GGG(x1, x2, x3, x4)  =  U20_GGG(x1, x2, x3, x4)

U23_GGG(x1, x2, x3)  =  U23_GGG(x1, x2, x3)

U26_GGG(x1, x2, x3, x4)  =  U26_GGG(x1, x2, x3, x4)

U28_GGG(x1, x2, x3, x4)  =  U28_GGG(x1, x2, x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(109) UsableRulesProof (EQUIVALENT)
For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.
----------------------------------------

(110)
Obligation:
Pi DP problem:
The TRS P consists of the following rules:

   ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> U17_GGG(X1, X2, ackermanncB_in_ga(X1, X3))
   U17_GGG(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2)
   ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> U20_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2, X4))
   U20_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> ACKERMANNA_IN_GGG(X1, X4, X3)
   ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> U23_GGG(X1, X2, ackermanncD_in_ga(X1, X3))
   U23_GGG(X1, X2, ackermanncD_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2)
   ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> U26_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2, X4))
   U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U28_GGG(X1, X2, X3, ackermanncE_in_gga(X1, X4, X5))
   U28_GGG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> ACKERMANNA_IN_GGG(X1, X5, X3)

The TRS R consists of the following rules:

   ackermanncB_in_ga(X1, X2) -> U40_ga(X1, X2, ackermanncD_in_ga(X1, X2))
   ackermanncC_in_gga(X1, 0, X2) -> U46_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   ackermanncC_in_gga(X1, s(X2), X3) -> U47_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3))
   ackermanncD_in_ga(0, s(s(0))) -> ackermanncD_out_ga(0, s(s(0)))
   ackermanncD_in_ga(s(X1), X2) -> U41_ga(X1, X2, ackermanncB_in_ga(X1, X3))
   ackermanncE_in_gga(0, X1, s(X1)) -> ackermanncE_out_gga(0, X1, s(X1))
   ackermanncE_in_gga(s(X1), 0, X2) -> U50_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   ackermanncE_in_gga(s(X1), s(X2), X3) -> U51_gga(X1, X2, X3, qcG_in_ggaa(X1, X2, X4, X3))
   U40_ga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2)
   U46_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2)
   U47_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3)
   U41_ga(X1, X2, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, X2, ackermanncF_in_gga(X1, X3, X2))
   U50_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2)
   U51_gga(X1, X2, X3, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3)
   qcG_in_ggaa(X1, X2, X3, X4) -> U48_ggaa(X1, X2, X3, X4, ackermanncC_in_gga(X1, X2, X3))
   U42_ga(X1, X2, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2)
   U48_ggaa(X1, X2, X3, X4, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, X4, ackermanncE_in_gga(X1, X3, X4))
   ackermanncF_in_gga(0, X1, s(X1)) -> ackermanncF_out_gga(0, X1, s(X1))
   ackermanncF_in_gga(s(X1), 0, X2) -> U43_gga(X1, X2, ackermanncD_in_ga(X1, X2))
   ackermanncF_in_gga(s(X1), s(X2), X3) -> U44_gga(X1, X2, X3, ackermanncF_in_gga(s(X1), X2, X4))
   U49_ggaa(X1, X2, X3, X4, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4)
   U43_gga(X1, X2, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2)
   U44_gga(X1, X2, X3, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, X3, ackermanncF_in_gga(X1, X4, X3))
   U45_gga(X1, X2, X3, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)

ackermanncB_in_ga(x1, x2)  =  ackermanncB_in_ga(x1)

U40_ga(x1, x2, x3)  =  U40_ga(x1, x3)

ackermanncD_in_ga(x1, x2)  =  ackermanncD_in_ga(x1)

0  =  0

ackermanncD_out_ga(x1, x2)  =  ackermanncD_out_ga(x1, x2)

U41_ga(x1, x2, x3)  =  U41_ga(x1, x3)

ackermanncB_out_ga(x1, x2)  =  ackermanncB_out_ga(x1, x2)

U42_ga(x1, x2, x3)  =  U42_ga(x1, x3)

ackermanncF_in_gga(x1, x2, x3)  =  ackermanncF_in_gga(x1, x2)

ackermanncF_out_gga(x1, x2, x3)  =  ackermanncF_out_gga(x1, x2, x3)

U43_gga(x1, x2, x3)  =  U43_gga(x1, x3)

U44_gga(x1, x2, x3, x4)  =  U44_gga(x1, x2, x4)

U45_gga(x1, x2, x3, x4)  =  U45_gga(x1, x2, x4)

ackermanncC_in_gga(x1, x2, x3)  =  ackermanncC_in_gga(x1, x2)

U46_gga(x1, x2, x3)  =  U46_gga(x1, x3)

ackermanncC_out_gga(x1, x2, x3)  =  ackermanncC_out_gga(x1, x2, x3)

U47_gga(x1, x2, x3, x4)  =  U47_gga(x1, x2, x4)

qcG_in_ggaa(x1, x2, x3, x4)  =  qcG_in_ggaa(x1, x2)

U48_ggaa(x1, x2, x3, x4, x5)  =  U48_ggaa(x1, x2, x5)

U49_ggaa(x1, x2, x3, x4, x5)  =  U49_ggaa(x1, x2, x3, x5)

ackermanncE_in_gga(x1, x2, x3)  =  ackermanncE_in_gga(x1, x2)

ackermanncE_out_gga(x1, x2, x3)  =  ackermanncE_out_gga(x1, x2, x3)

U50_gga(x1, x2, x3)  =  U50_gga(x1, x3)

U51_gga(x1, x2, x3, x4)  =  U51_gga(x1, x2, x4)

qcG_out_ggaa(x1, x2, x3, x4)  =  qcG_out_ggaa(x1, x2, x3, x4)

ACKERMANNA_IN_GGG(x1, x2, x3)  =  ACKERMANNA_IN_GGG(x1, x2, x3)

U17_GGG(x1, x2, x3)  =  U17_GGG(x1, x2, x3)

U20_GGG(x1, x2, x3, x4)  =  U20_GGG(x1, x2, x3, x4)

U23_GGG(x1, x2, x3)  =  U23_GGG(x1, x2, x3)

U26_GGG(x1, x2, x3, x4)  =  U26_GGG(x1, x2, x3, x4)

U28_GGG(x1, x2, x3, x4)  =  U28_GGG(x1, x2, x3, x4)


We have to consider all (P,R,Pi)-chains
----------------------------------------

(111) PiDPToQDPProof (SOUND)
Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.
----------------------------------------

(112)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> U17_GGG(X1, X2, ackermanncB_in_ga(X1))
   U17_GGG(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2)
   ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> U20_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2))
   U20_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> ACKERMANNA_IN_GGG(X1, X4, X3)
   ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> U23_GGG(X1, X2, ackermanncD_in_ga(X1))
   U23_GGG(X1, X2, ackermanncD_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2)
   ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> U26_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2))
   U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U28_GGG(X1, X2, X3, ackermanncE_in_gga(X1, X4))
   U28_GGG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> ACKERMANNA_IN_GGG(X1, X5, X3)

The TRS R consists of the following rules:

   ackermanncB_in_ga(X1) -> U40_ga(X1, ackermanncD_in_ga(X1))
   ackermanncC_in_gga(X1, 0) -> U46_gga(X1, ackermanncD_in_ga(X1))
   ackermanncC_in_gga(X1, s(X2)) -> U47_gga(X1, X2, qcG_in_ggaa(X1, X2))
   ackermanncD_in_ga(0) -> ackermanncD_out_ga(0, s(s(0)))
   ackermanncD_in_ga(s(X1)) -> U41_ga(X1, ackermanncB_in_ga(X1))
   ackermanncE_in_gga(0, X1) -> ackermanncE_out_gga(0, X1, s(X1))
   ackermanncE_in_gga(s(X1), 0) -> U50_gga(X1, ackermanncD_in_ga(X1))
   ackermanncE_in_gga(s(X1), s(X2)) -> U51_gga(X1, X2, qcG_in_ggaa(X1, X2))
   U40_ga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncB_out_ga(X1, X2)
   U46_gga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncC_out_gga(X1, 0, X2)
   U47_gga(X1, X2, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncC_out_gga(X1, s(X2), X3)
   U41_ga(X1, ackermanncB_out_ga(X1, X3)) -> U42_ga(X1, ackermanncF_in_gga(X1, X3))
   U50_gga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncE_out_gga(s(X1), 0, X2)
   U51_gga(X1, X2, qcG_out_ggaa(X1, X2, X4, X3)) -> ackermanncE_out_gga(s(X1), s(X2), X3)
   qcG_in_ggaa(X1, X2) -> U48_ggaa(X1, X2, ackermanncC_in_gga(X1, X2))
   U42_ga(X1, ackermanncF_out_gga(X1, X3, X2)) -> ackermanncD_out_ga(s(X1), X2)
   U48_ggaa(X1, X2, ackermanncC_out_gga(X1, X2, X3)) -> U49_ggaa(X1, X2, X3, ackermanncE_in_gga(X1, X3))
   ackermanncF_in_gga(0, X1) -> ackermanncF_out_gga(0, X1, s(X1))
   ackermanncF_in_gga(s(X1), 0) -> U43_gga(X1, ackermanncD_in_ga(X1))
   ackermanncF_in_gga(s(X1), s(X2)) -> U44_gga(X1, X2, ackermanncF_in_gga(s(X1), X2))
   U49_ggaa(X1, X2, X3, ackermanncE_out_gga(X1, X3, X4)) -> qcG_out_ggaa(X1, X2, X3, X4)
   U43_gga(X1, ackermanncD_out_ga(X1, X2)) -> ackermanncF_out_gga(s(X1), 0, X2)
   U44_gga(X1, X2, ackermanncF_out_gga(s(X1), X2, X4)) -> U45_gga(X1, X2, ackermanncF_in_gga(X1, X4))
   U45_gga(X1, X2, ackermanncF_out_gga(X1, X4, X3)) -> ackermanncF_out_gga(s(X1), s(X2), X3)

The set Q consists of the following terms:

   ackermanncB_in_ga(x0)
   ackermanncC_in_gga(x0, x1)
   ackermanncD_in_ga(x0)
   ackermanncE_in_gga(x0, x1)
   U40_ga(x0, x1)
   U46_gga(x0, x1)
   U47_gga(x0, x1, x2)
   U41_ga(x0, x1)
   U50_gga(x0, x1)
   U51_gga(x0, x1, x2)
   qcG_in_ggaa(x0, x1)
   U42_ga(x0, x1)
   U48_ggaa(x0, x1, x2)
   ackermanncF_in_gga(x0, x1)
   U49_ggaa(x0, x1, x2, x3)
   U43_gga(x0, x1)
   U44_gga(x0, x1, x2)
   U45_gga(x0, x1, x2)

We have to consider all (P,Q,R)-chains.
----------------------------------------

(113) 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:
*U17_GGG(X1, X2, ackermanncB_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2)
The graph contains the following edges 1 >= 1, 3 > 1, 3 > 2, 2 >= 3


*ACKERMANNA_IN_GGG(s(s(X1)), 0, X2) -> U17_GGG(X1, X2, ackermanncB_in_ga(X1))
The graph contains the following edges 1 > 1, 3 >= 2


*U26_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> U28_GGG(X1, X2, X3, ackermanncE_in_gga(X1, X4))
The graph contains the following edges 1 >= 1, 4 > 1, 2 >= 2, 4 > 2, 3 >= 3


*U20_GGG(X1, X2, X3, ackermanncC_out_gga(X1, X2, X4)) -> ACKERMANNA_IN_GGG(X1, X4, X3)
The graph contains the following edges 1 >= 1, 4 > 1, 4 > 2, 3 >= 3


*ACKERMANNA_IN_GGG(s(X1), s(X2), X3) -> U20_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2))
The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3


*U23_GGG(X1, X2, ackermanncD_out_ga(X1, X3)) -> ACKERMANNA_IN_GGG(X1, X3, X2)
The graph contains the following edges 1 >= 1, 3 > 1, 3 > 2, 2 >= 3


*U28_GGG(X1, X2, X3, ackermanncE_out_gga(X1, X4, X5)) -> ACKERMANNA_IN_GGG(X1, X5, X3)
The graph contains the following edges 1 >= 1, 4 > 1, 4 > 2, 3 >= 3


*ACKERMANNA_IN_GGG(s(X1), s(0), X2) -> U23_GGG(X1, X2, ackermanncD_in_ga(X1))
The graph contains the following edges 1 > 1, 3 >= 2


*ACKERMANNA_IN_GGG(s(X1), s(s(X2)), X3) -> U26_GGG(X1, X2, X3, ackermanncC_in_gga(X1, X2))
The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3


----------------------------------------

(114)
YES

----------------------------------------

(115) PrologToIRSwTTransformerProof (SOUND)
Transformed Prolog program to IRSwT according to method in Master Thesis of A. Weinert

{
    "root": 2,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(ackermann (0) N (s N))",
                null
            ],
            [
                "(ackermann (s M) (0) Val)",
                "(ackermann M (s (0)) Val)"
            ],
            [
                "(ackermann (s M) (s N) Val)",
                "(',' (ackermann (s M) N Val1) (ackermann M Val1 Val))"
            ]
        ]
    },
    "graph": {
        "nodes": {
            "44": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(ackermann T1 T2 T3)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "49": {
                "goal": [{
                    "clause": 2,
                    "scope": 1,
                    "term": "(ackermann T1 T2 T3)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "190": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T24 T26 T25)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T24",
                        "T25",
                        "T26"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "type": "Nodes",
            "394": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann (s T53) T54 X123)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T53",
                        "T54"
                    ],
                    "free": ["X123"],
                    "exprvars": []
                }
            },
            "395": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T53 T55 X124)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T53",
                        "T55"
                    ],
                    "free": ["X124"],
                    "exprvars": []
                }
            },
            "396": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "397": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 6,
                        "term": "(ackermann T24 T26 T25)"
                    },
                    {
                        "clause": 1,
                        "scope": 6,
                        "term": "(ackermann T24 T26 T25)"
                    },
                    {
                        "clause": 2,
                        "scope": 6,
                        "term": "(ackermann T24 T26 T25)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T24",
                        "T25",
                        "T26"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "430": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann (s T94) T97 X180)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": ["X180"],
                    "exprvars": []
                }
            },
            "398": {
                "goal": [{
                    "clause": 0,
                    "scope": 6,
                    "term": "(ackermann T24 T26 T25)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T24",
                        "T25",
                        "T26"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "431": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T94 T98 T96)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T94",
                        "T96"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "399": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 6,
                        "term": "(ackermann T24 T26 T25)"
                    },
                    {
                        "clause": 2,
                        "scope": 6,
                        "term": "(ackermann T24 T26 T25)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T24",
                        "T25",
                        "T26"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "356": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann (s T35) (0) X81)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T35"],
                    "free": ["X81"],
                    "exprvars": []
                }
            },
            "357": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T35 T36 X82)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T35",
                        "T36"
                    ],
                    "free": ["X82"],
                    "exprvars": []
                }
            },
            "434": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 7,
                        "term": "(ackermann (s T94) T97 X180)"
                    },
                    {
                        "clause": 1,
                        "scope": 7,
                        "term": "(ackermann (s T94) T97 X180)"
                    },
                    {
                        "clause": 2,
                        "scope": 7,
                        "term": "(ackermann (s T94) T97 X180)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": ["X180"],
                    "exprvars": []
                }
            },
            "237": {
                "goal": [{
                    "clause": 0,
                    "scope": 4,
                    "term": "(ackermann T31 (s (0)) X59)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T31"],
                    "free": ["X59"],
                    "exprvars": []
                }
            },
            "358": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 5,
                        "term": "(ackermann T35 T36 X82)"
                    },
                    {
                        "clause": 1,
                        "scope": 5,
                        "term": "(ackermann T35 T36 X82)"
                    },
                    {
                        "clause": 2,
                        "scope": 5,
                        "term": "(ackermann T35 T36 X82)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T35",
                        "T36"
                    ],
                    "free": ["X82"],
                    "exprvars": []
                }
            },
            "435": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 7,
                        "term": "(ackermann (s T94) T97 X180)"
                    },
                    {
                        "clause": 2,
                        "scope": 7,
                        "term": "(ackermann (s T94) T97 X180)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": ["X180"],
                    "exprvars": []
                }
            },
            "359": {
                "goal": [{
                    "clause": 0,
                    "scope": 5,
                    "term": "(ackermann T35 T36 X82)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T35",
                        "T36"
                    ],
                    "free": ["X82"],
                    "exprvars": []
                }
            },
            "436": {
                "goal": [{
                    "clause": 1,
                    "scope": 7,
                    "term": "(ackermann (s T94) T97 X180)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": ["X180"],
                    "exprvars": []
                }
            },
            "239": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 4,
                        "term": "(ackermann T31 (s (0)) X59)"
                    },
                    {
                        "clause": 2,
                        "scope": 4,
                        "term": "(ackermann T31 (s (0)) X59)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T31"],
                    "free": ["X59"],
                    "exprvars": []
                }
            },
            "437": {
                "goal": [{
                    "clause": 2,
                    "scope": 7,
                    "term": "(ackermann (s T94) T97 X180)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": ["X180"],
                    "exprvars": []
                }
            },
            "438": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T103 (s (0)) X200)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T103"],
                    "free": ["X200"],
                    "exprvars": []
                }
            },
            "439": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "360": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 5,
                        "term": "(ackermann T35 T36 X82)"
                    },
                    {
                        "clause": 2,
                        "scope": 5,
                        "term": "(ackermann T35 T36 X82)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T35",
                        "T36"
                    ],
                    "free": ["X82"],
                    "exprvars": []
                }
            },
            "361": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "362": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "363": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "440": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T108) T110 X215) (ackermann T108 X215 X216))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T108"],
                    "free": [
                        "X216",
                        "X215"
                    ],
                    "exprvars": []
                }
            },
            "364": {
                "goal": [{
                    "clause": 1,
                    "scope": 5,
                    "term": "(ackermann T35 T36 X82)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T35",
                        "T36"
                    ],
                    "free": ["X82"],
                    "exprvars": []
                }
            },
            "441": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "2": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T1 T2 T3)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "123": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 2,
                        "term": "(ackermann T17 (s (0)) T18)"
                    },
                    {
                        "clause": 1,
                        "scope": 2,
                        "term": "(ackermann T17 (s (0)) T18)"
                    },
                    {
                        "clause": 2,
                        "scope": 2,
                        "term": "(ackermann T17 (s (0)) T18)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T17",
                        "T18"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "365": {
                "goal": [{
                    "clause": 2,
                    "scope": 5,
                    "term": "(ackermann T35 T36 X82)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T35",
                        "T36"
                    ],
                    "free": ["X82"],
                    "exprvars": []
                }
            },
            "442": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann (s T108) T110 X215)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T108"],
                    "free": ["X215"],
                    "exprvars": []
                }
            },
            "366": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T48 (s (0)) X108)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T48"],
                    "free": ["X108"],
                    "exprvars": []
                }
            },
            "443": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T108 T111 X216)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T108"],
                    "free": ["X216"],
                    "exprvars": []
                }
            },
            "367": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "444": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 8,
                        "term": "(ackermann T108 T111 X216)"
                    },
                    {
                        "clause": 1,
                        "scope": 8,
                        "term": "(ackermann T108 T111 X216)"
                    },
                    {
                        "clause": 2,
                        "scope": 8,
                        "term": "(ackermann T108 T111 X216)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T108"],
                    "free": ["X216"],
                    "exprvars": []
                }
            },
            "368": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T53) T54 X123) (ackermann T53 X123 X124))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T53",
                        "T54"
                    ],
                    "free": [
                        "X124",
                        "X123"
                    ],
                    "exprvars": []
                }
            },
            "445": {
                "goal": [{
                    "clause": 0,
                    "scope": 8,
                    "term": "(ackermann T108 T111 X216)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T108"],
                    "free": ["X216"],
                    "exprvars": []
                }
            },
            "6": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(ackermann T1 T2 T3)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(ackermann T1 T2 T3)"
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(ackermann T1 T2 T3)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "369": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "402": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "446": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 8,
                        "term": "(ackermann T108 T111 X216)"
                    },
                    {
                        "clause": 2,
                        "scope": 8,
                        "term": "(ackermann T108 T111 X216)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T108"],
                    "free": ["X216"],
                    "exprvars": []
                }
            },
            "7": {
                "goal": [{
                    "clause": 0,
                    "scope": 1,
                    "term": "(ackermann T1 T2 T3)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "249": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "403": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "447": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "8": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(ackermann T1 T2 T3)"
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(ackermann T1 T2 T3)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "129": {
                "goal": [{
                    "clause": 0,
                    "scope": 2,
                    "term": "(ackermann T17 (s (0)) T18)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T17",
                        "T18"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "404": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "448": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "449": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "406": {
                "goal": [{
                    "clause": 1,
                    "scope": 6,
                    "term": "(ackermann T24 T26 T25)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T24",
                        "T25",
                        "T26"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "407": {
                "goal": [{
                    "clause": 2,
                    "scope": 6,
                    "term": "(ackermann T24 T26 T25)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T24",
                        "T25",
                        "T26"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "409": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T74 (s (0)) T75)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T74",
                        "T75"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "25": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "27": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "290": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T35) (0) X81) (ackermann T35 X81 X82))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T35"],
                    "free": [
                        "X82",
                        "X81"
                    ],
                    "exprvars": []
                }
            },
            "170": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T24) (0) X35) (ackermann T24 X35 T25))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T24",
                        "T25"
                    ],
                    "free": ["X35"],
                    "exprvars": []
                }
            },
            "291": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "173": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "130": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 2,
                        "term": "(ackermann T17 (s (0)) T18)"
                    },
                    {
                        "clause": 2,
                        "scope": 2,
                        "term": "(ackermann T17 (s (0)) T18)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T17",
                        "T18"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "251": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "253": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "452": {
                "goal": [{
                    "clause": 1,
                    "scope": 8,
                    "term": "(ackermann T108 T111 X216)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T108"],
                    "free": ["X216"],
                    "exprvars": []
                }
            },
            "453": {
                "goal": [{
                    "clause": 2,
                    "scope": 8,
                    "term": "(ackermann T108 T111 X216)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T108"],
                    "free": ["X216"],
                    "exprvars": []
                }
            },
            "212": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 3,
                        "term": "(ackermann (s T24) (0) X35)"
                    },
                    {
                        "clause": 1,
                        "scope": 3,
                        "term": "(ackermann (s T24) (0) X35)"
                    },
                    {
                        "clause": 2,
                        "scope": 3,
                        "term": "(ackermann (s T24) (0) X35)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T24"],
                    "free": ["X35"],
                    "exprvars": []
                }
            },
            "410": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "215": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 3,
                        "term": "(ackermann (s T24) (0) X35)"
                    },
                    {
                        "clause": 2,
                        "scope": 3,
                        "term": "(ackermann (s T24) (0) X35)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T24"],
                    "free": ["X35"],
                    "exprvars": []
                }
            },
            "259": {
                "goal": [{
                    "clause": 2,
                    "scope": 4,
                    "term": "(ackermann T31 (s (0)) X59)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T31"],
                    "free": ["X59"],
                    "exprvars": []
                }
            },
            "413": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T82) T83 X163) (ackermann T82 X163 T84))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T82",
                        "T83",
                        "T84"
                    ],
                    "free": ["X163"],
                    "exprvars": []
                }
            },
            "414": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "459": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T123 (s (0)) X242)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T123"],
                    "free": ["X242"],
                    "exprvars": []
                }
            },
            "417": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann (s T82) T83 X163)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T82",
                        "T83"
                    ],
                    "free": ["X163"],
                    "exprvars": []
                }
            },
            "418": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T82 T85 T84)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T82",
                        "T84",
                        "T85"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "33": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "77": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T17 (s (0)) T18)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T17",
                        "T18"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "78": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "140": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "460": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "142": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "143": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "221": {
                "goal": [{
                    "clause": 1,
                    "scope": 3,
                    "term": "(ackermann (s T24) (0) X35)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T24"],
                    "free": ["X35"],
                    "exprvars": []
                }
            },
            "189": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann (s T24) (0) X35)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T24"],
                    "free": ["X35"],
                    "exprvars": []
                }
            },
            "222": {
                "goal": [{
                    "clause": 2,
                    "scope": 3,
                    "term": "(ackermann (s T24) (0) X35)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T24"],
                    "free": ["X35"],
                    "exprvars": []
                }
            },
            "465": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T128) T130 X257) (ackermann T128 X257 X258))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T128"],
                    "free": [
                        "X258",
                        "X257"
                    ],
                    "exprvars": []
                }
            },
            "147": {
                "goal": [{
                    "clause": 2,
                    "scope": 2,
                    "term": "(ackermann T17 (s (0)) T18)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T17",
                        "T18"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "466": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "226": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T31 (s (0)) X59)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T31"],
                    "free": ["X59"],
                    "exprvars": []
                }
            },
            "424": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T94) T97 X180) (ackermann T94 X180 T96))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T94",
                        "T96"
                    ],
                    "free": ["X180"],
                    "exprvars": []
                }
            },
            "426": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "229": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 4,
                        "term": "(ackermann T31 (s (0)) X59)"
                    },
                    {
                        "clause": 1,
                        "scope": 4,
                        "term": "(ackermann T31 (s (0)) X59)"
                    },
                    {
                        "clause": 2,
                        "scope": 4,
                        "term": "(ackermann T31 (s (0)) X59)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T31"],
                    "free": ["X59"],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 2,
                "to": 6,
                "label": "CASE"
            },
            {
                "from": 6,
                "to": 7,
                "label": "PARALLEL"
            },
            {
                "from": 6,
                "to": 8,
                "label": "PARALLEL"
            },
            {
                "from": 7,
                "to": 25,
                "label": "EVAL with clause\nackermann(0, X5, s(X5)).\nand substitutionT1 -> 0,\nT2 -> T8,\nX5 -> T8,\nT3 -> s(T8)"
            },
            {
                "from": 7,
                "to": 27,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 8,
                "to": 44,
                "label": "PARALLEL"
            },
            {
                "from": 8,
                "to": 49,
                "label": "PARALLEL"
            },
            {
                "from": 25,
                "to": 33,
                "label": "SUCCESS"
            },
            {
                "from": 44,
                "to": 77,
                "label": "EVAL with clause\nackermann(s(X14), 0, X15) :- ackermann(X14, s(0), X15).\nand substitutionX14 -> T17,\nT1 -> s(T17),\nT2 -> 0,\nT3 -> T18,\nX15 -> T18"
            },
            {
                "from": 44,
                "to": 78,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 49,
                "to": 424,
                "label": "EVAL with clause\nackermann(s(X177), s(X178), X179) :- ','(ackermann(s(X177), X178, X180), ackermann(X177, X180, X179)).\nand substitutionX177 -> T94,\nT1 -> s(T94),\nX178 -> T97,\nT2 -> s(T97),\nT3 -> T96,\nX179 -> T96,\nT95 -> T97"
            },
            {
                "from": 49,
                "to": 426,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 77,
                "to": 123,
                "label": "CASE"
            },
            {
                "from": 123,
                "to": 129,
                "label": "PARALLEL"
            },
            {
                "from": 123,
                "to": 130,
                "label": "PARALLEL"
            },
            {
                "from": 129,
                "to": 140,
                "label": "EVAL with clause\nackermann(0, X22, s(X22)).\nand substitutionT17 -> 0,\nX22 -> s(0),\nT18 -> s(s(0))"
            },
            {
                "from": 129,
                "to": 142,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 130,
                "to": 147,
                "label": "BACKTRACK\nfor clause: ackermann(s(M), 0, Val) :- ackermann(M, s(0), Val)because of non-unification"
            },
            {
                "from": 140,
                "to": 143,
                "label": "SUCCESS"
            },
            {
                "from": 147,
                "to": 170,
                "label": "EVAL with clause\nackermann(s(X32), s(X33), X34) :- ','(ackermann(s(X32), X33, X35), ackermann(X32, X35, X34)).\nand substitutionX32 -> T24,\nT17 -> s(T24),\nX33 -> 0,\nT18 -> T25,\nX34 -> T25"
            },
            {
                "from": 147,
                "to": 173,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 170,
                "to": 189,
                "label": "SPLIT 1"
            },
            {
                "from": 170,
                "to": 190,
                "label": "SPLIT 2\nnew knowledge:\nT24 is ground\nT26 is ground\nreplacements:X35 -> T26"
            },
            {
                "from": 189,
                "to": 212,
                "label": "CASE"
            },
            {
                "from": 190,
                "to": 397,
                "label": "CASE"
            },
            {
                "from": 212,
                "to": 215,
                "label": "BACKTRACK\nfor clause: ackermann(0, N, s(N))because of non-unification"
            },
            {
                "from": 215,
                "to": 221,
                "label": "PARALLEL"
            },
            {
                "from": 215,
                "to": 222,
                "label": "PARALLEL"
            },
            {
                "from": 221,
                "to": 226,
                "label": "ONLY EVAL with clause\nackermann(s(X57), 0, X58) :- ackermann(X57, s(0), X58).\nand substitutionT24 -> T31,\nX57 -> T31,\nX35 -> X59,\nX58 -> X59"
            },
            {
                "from": 222,
                "to": 396,
                "label": "BACKTRACK\nfor clause: ackermann(s(M), s(N), Val) :- ','(ackermann(s(M), N, Val1), ackermann(M, Val1, Val))because of non-unification"
            },
            {
                "from": 226,
                "to": 229,
                "label": "CASE"
            },
            {
                "from": 229,
                "to": 237,
                "label": "PARALLEL"
            },
            {
                "from": 229,
                "to": 239,
                "label": "PARALLEL"
            },
            {
                "from": 237,
                "to": 249,
                "label": "EVAL with clause\nackermann(0, X66, s(X66)).\nand substitutionT31 -> 0,\nX66 -> s(0),\nX59 -> s(s(0))"
            },
            {
                "from": 237,
                "to": 251,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 239,
                "to": 259,
                "label": "BACKTRACK\nfor clause: ackermann(s(M), 0, Val) :- ackermann(M, s(0), Val)because of non-unification"
            },
            {
                "from": 249,
                "to": 253,
                "label": "SUCCESS"
            },
            {
                "from": 259,
                "to": 290,
                "label": "EVAL with clause\nackermann(s(X78), s(X79), X80) :- ','(ackermann(s(X78), X79, X81), ackermann(X78, X81, X80)).\nand substitutionX78 -> T35,\nT31 -> s(T35),\nX79 -> 0,\nX59 -> X82,\nX80 -> X82"
            },
            {
                "from": 259,
                "to": 291,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 290,
                "to": 356,
                "label": "SPLIT 1"
            },
            {
                "from": 290,
                "to": 357,
                "label": "SPLIT 2\nnew knowledge:\nT35 is ground\nT36 is ground\nreplacements:X81 -> T36"
            },
            {
                "from": 356,
                "to": 189,
                "label": "INSTANCE with matching:\nT24 -> T35\nX35 -> X81"
            },
            {
                "from": 357,
                "to": 358,
                "label": "CASE"
            },
            {
                "from": 358,
                "to": 359,
                "label": "PARALLEL"
            },
            {
                "from": 358,
                "to": 360,
                "label": "PARALLEL"
            },
            {
                "from": 359,
                "to": 361,
                "label": "EVAL with clause\nackermann(0, X93, s(X93)).\nand substitutionT35 -> 0,\nT36 -> T43,\nX93 -> T43,\nX82 -> s(T43)"
            },
            {
                "from": 359,
                "to": 362,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 360,
                "to": 364,
                "label": "PARALLEL"
            },
            {
                "from": 360,
                "to": 365,
                "label": "PARALLEL"
            },
            {
                "from": 361,
                "to": 363,
                "label": "SUCCESS"
            },
            {
                "from": 364,
                "to": 366,
                "label": "EVAL with clause\nackermann(s(X106), 0, X107) :- ackermann(X106, s(0), X107).\nand substitutionX106 -> T48,\nT35 -> s(T48),\nT36 -> 0,\nX82 -> X108,\nX107 -> X108"
            },
            {
                "from": 364,
                "to": 367,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 365,
                "to": 368,
                "label": "EVAL with clause\nackermann(s(X120), s(X121), X122) :- ','(ackermann(s(X120), X121, X123), ackermann(X120, X123, X122)).\nand substitutionX120 -> T53,\nT35 -> s(T53),\nX121 -> T54,\nT36 -> s(T54),\nX82 -> X124,\nX122 -> X124"
            },
            {
                "from": 365,
                "to": 369,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 366,
                "to": 226,
                "label": "INSTANCE with matching:\nT31 -> T48\nX59 -> X108"
            },
            {
                "from": 368,
                "to": 394,
                "label": "SPLIT 1"
            },
            {
                "from": 368,
                "to": 395,
                "label": "SPLIT 2\nnew knowledge:\nT53 is ground\nT54 is ground\nT55 is ground\nreplacements:X123 -> T55"
            },
            {
                "from": 394,
                "to": 357,
                "label": "INSTANCE with matching:\nT35 -> s(T53)\nT36 -> T54\nX82 -> X123"
            },
            {
                "from": 395,
                "to": 357,
                "label": "INSTANCE with matching:\nT35 -> T53\nT36 -> T55\nX82 -> X124"
            },
            {
                "from": 397,
                "to": 398,
                "label": "PARALLEL"
            },
            {
                "from": 397,
                "to": 399,
                "label": "PARALLEL"
            },
            {
                "from": 398,
                "to": 402,
                "label": "EVAL with clause\nackermann(0, X140, s(X140)).\nand substitutionT24 -> 0,\nT26 -> T65,\nX140 -> T65,\nT25 -> s(T65)"
            },
            {
                "from": 398,
                "to": 403,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 399,
                "to": 406,
                "label": "PARALLEL"
            },
            {
                "from": 399,
                "to": 407,
                "label": "PARALLEL"
            },
            {
                "from": 402,
                "to": 404,
                "label": "SUCCESS"
            },
            {
                "from": 406,
                "to": 409,
                "label": "EVAL with clause\nackermann(s(X149), 0, X150) :- ackermann(X149, s(0), X150).\nand substitutionX149 -> T74,\nT24 -> s(T74),\nT26 -> 0,\nT25 -> T75,\nX150 -> T75"
            },
            {
                "from": 406,
                "to": 410,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 407,
                "to": 413,
                "label": "EVAL with clause\nackermann(s(X160), s(X161), X162) :- ','(ackermann(s(X160), X161, X163), ackermann(X160, X163, X162)).\nand substitutionX160 -> T82,\nT24 -> s(T82),\nX161 -> T83,\nT26 -> s(T83),\nT25 -> T84,\nX162 -> T84"
            },
            {
                "from": 407,
                "to": 414,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 409,
                "to": 77,
                "label": "INSTANCE with matching:\nT17 -> T74\nT18 -> T75"
            },
            {
                "from": 413,
                "to": 417,
                "label": "SPLIT 1"
            },
            {
                "from": 413,
                "to": 418,
                "label": "SPLIT 2\nnew knowledge:\nT82 is ground\nT83 is ground\nT85 is ground\nreplacements:X163 -> T85"
            },
            {
                "from": 417,
                "to": 357,
                "label": "INSTANCE with matching:\nT35 -> s(T82)\nT36 -> T83\nX82 -> X163"
            },
            {
                "from": 418,
                "to": 190,
                "label": "INSTANCE with matching:\nT24 -> T82\nT26 -> T85\nT25 -> T84"
            },
            {
                "from": 424,
                "to": 430,
                "label": "SPLIT 1"
            },
            {
                "from": 424,
                "to": 431,
                "label": "SPLIT 2\nnew knowledge:\nT94 is ground\nreplacements:X180 -> T98"
            },
            {
                "from": 430,
                "to": 434,
                "label": "CASE"
            },
            {
                "from": 431,
                "to": 2,
                "label": "INSTANCE with matching:\nT1 -> T94\nT2 -> T98\nT3 -> T96"
            },
            {
                "from": 434,
                "to": 435,
                "label": "BACKTRACK\nfor clause: ackermann(0, N, s(N))because of non-unification"
            },
            {
                "from": 435,
                "to": 436,
                "label": "PARALLEL"
            },
            {
                "from": 435,
                "to": 437,
                "label": "PARALLEL"
            },
            {
                "from": 436,
                "to": 438,
                "label": "EVAL with clause\nackermann(s(X198), 0, X199) :- ackermann(X198, s(0), X199).\nand substitutionT94 -> T103,\nX198 -> T103,\nT97 -> 0,\nX180 -> X200,\nX199 -> X200"
            },
            {
                "from": 436,
                "to": 439,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 437,
                "to": 440,
                "label": "EVAL with clause\nackermann(s(X212), s(X213), X214) :- ','(ackermann(s(X212), X213, X215), ackermann(X212, X215, X214)).\nand substitutionT94 -> T108,\nX212 -> T108,\nX213 -> T110,\nT97 -> s(T110),\nX180 -> X216,\nX214 -> X216,\nT109 -> T110"
            },
            {
                "from": 437,
                "to": 441,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 438,
                "to": 226,
                "label": "INSTANCE with matching:\nT31 -> T103\nX59 -> X200"
            },
            {
                "from": 440,
                "to": 442,
                "label": "SPLIT 1"
            },
            {
                "from": 440,
                "to": 443,
                "label": "SPLIT 2\nnew knowledge:\nT108 is ground\nreplacements:X215 -> T111"
            },
            {
                "from": 442,
                "to": 430,
                "label": "INSTANCE with matching:\nT94 -> T108\nT97 -> T110\nX180 -> X215"
            },
            {
                "from": 443,
                "to": 444,
                "label": "CASE"
            },
            {
                "from": 444,
                "to": 445,
                "label": "PARALLEL"
            },
            {
                "from": 444,
                "to": 446,
                "label": "PARALLEL"
            },
            {
                "from": 445,
                "to": 447,
                "label": "EVAL with clause\nackermann(0, X227, s(X227)).\nand substitutionT108 -> 0,\nT111 -> T118,\nX227 -> T118,\nX216 -> s(T118)"
            },
            {
                "from": 445,
                "to": 448,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 446,
                "to": 452,
                "label": "PARALLEL"
            },
            {
                "from": 446,
                "to": 453,
                "label": "PARALLEL"
            },
            {
                "from": 447,
                "to": 449,
                "label": "SUCCESS"
            },
            {
                "from": 452,
                "to": 459,
                "label": "EVAL with clause\nackermann(s(X240), 0, X241) :- ackermann(X240, s(0), X241).\nand substitutionX240 -> T123,\nT108 -> s(T123),\nT111 -> 0,\nX216 -> X242,\nX241 -> X242"
            },
            {
                "from": 452,
                "to": 460,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 453,
                "to": 465,
                "label": "EVAL with clause\nackermann(s(X254), s(X255), X256) :- ','(ackermann(s(X254), X255, X257), ackermann(X254, X257, X256)).\nand substitutionX254 -> T128,\nT108 -> s(T128),\nX255 -> T130,\nT111 -> s(T130),\nX216 -> X258,\nX256 -> X258,\nT129 -> T130"
            },
            {
                "from": 453,
                "to": 466,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 459,
                "to": 226,
                "label": "INSTANCE with matching:\nT31 -> T123\nX59 -> X242"
            },
            {
                "from": 465,
                "to": 440,
                "label": "INSTANCE with matching:\nT108 -> T128\nT110 -> T130\nX215 -> X257\nX216 -> X258"
            }
        ],
        "type": "Graph"
    }
}

----------------------------------------

(116)
Complex Obligation (AND)

----------------------------------------

(117)
Obligation:
Rules:
f259_out(T31) -> f239_out(T31) :|: TRUE
f239_in(x) -> f259_in(x) :|: TRUE
f394_out(T53, T54) -> f395_in(T53, T55) :|: TRUE
f368_in(x1, x2) -> f394_in(x1, x2) :|: TRUE
f395_out(x3, x4) -> f368_out(x3, x5) :|: TRUE
f358_in(T35, T36) -> f360_in(T35, T36) :|: TRUE
f359_out(x6, x7) -> f358_out(x6, x7) :|: TRUE
f360_out(x8, x9) -> f358_out(x8, x9) :|: TRUE
f358_in(x10, x11) -> f359_in(x10, x11) :|: TRUE
f229_in(x12) -> f237_in(x12) :|: TRUE
f239_out(x13) -> f229_out(x13) :|: TRUE
f237_out(x14) -> f229_out(x14) :|: TRUE
f229_in(x15) -> f239_in(x15) :|: TRUE
f212_in(T24) -> f215_in(T24) :|: TRUE
f215_out(x16) -> f212_out(x16) :|: TRUE
f360_in(x17, x18) -> f365_in(x17, x18) :|: TRUE
f365_out(x19, x20) -> f360_out(x19, x20) :|: TRUE
f360_in(x21, x22) -> f364_in(x21, x22) :|: TRUE
f364_out(x23, x24) -> f360_out(x23, x24) :|: TRUE
f226_out(x25) -> f221_out(x25) :|: TRUE
f221_in(x26) -> f226_in(x26) :|: TRUE
f290_in(x27) -> f356_in(x27) :|: TRUE
f357_out(x28, x29) -> f290_out(x28) :|: TRUE
f356_out(x30) -> f357_in(x30, x31) :|: TRUE
f358_out(x32, x33) -> f357_out(x32, x33) :|: TRUE
f357_in(x34, x35) -> f358_in(x34, x35) :|: TRUE
f356_in(x36) -> f189_in(x36) :|: TRUE
f189_out(x37) -> f356_out(x37) :|: TRUE
f365_in(x38, x39) -> f369_in :|: TRUE
f368_out(x40, x41) -> f365_out(s(x40), s(x41)) :|: TRUE
f365_in(s(x42), s(x43)) -> f368_in(x42, x43) :|: TRUE
f369_out -> f365_out(x44, x45) :|: TRUE
f215_in(x46) -> f221_in(x46) :|: TRUE
f221_out(x47) -> f215_out(x47) :|: TRUE
f222_out(x48) -> f215_out(x48) :|: TRUE
f215_in(x49) -> f222_in(x49) :|: TRUE
f226_out(T48) -> f366_out(T48) :|: TRUE
f366_in(x50) -> f226_in(x50) :|: TRUE
f226_in(x51) -> f229_in(x51) :|: TRUE
f229_out(x52) -> f226_out(x52) :|: TRUE
f212_out(x53) -> f189_out(x53) :|: TRUE
f189_in(x54) -> f212_in(x54) :|: TRUE
f364_in(x55, x56) -> f367_in :|: TRUE
f367_out -> f364_out(x57, x58) :|: TRUE
f364_in(s(x59), 0) -> f366_in(x59) :|: TRUE
f366_out(x60) -> f364_out(s(x60), 0) :|: TRUE
f395_in(x61, x62) -> f357_in(x61, x62) :|: TRUE
f357_out(x63, x64) -> f395_out(x63, x64) :|: TRUE
f259_in(x65) -> f291_in :|: TRUE
f259_in(s(x66)) -> f290_in(x66) :|: TRUE
f291_out -> f259_out(x67) :|: TRUE
f290_out(x68) -> f259_out(s(x68)) :|: TRUE
f357_out(s(x69), x70) -> f394_out(x69, x70) :|: TRUE
f394_in(x71, x72) -> f357_in(s(x71), x72) :|: TRUE
f6_out(T1, T3) -> f2_out(T1, T3) :|: TRUE
f2_in(x73, x74) -> f6_in(x73, x74) :|: TRUE
f6_in(x75, x76) -> f7_in(x75, x76) :|: TRUE
f6_in(x77, x78) -> f8_in(x77, x78) :|: TRUE
f7_out(x79, x80) -> f6_out(x79, x80) :|: TRUE
f8_out(x81, x82) -> f6_out(x81, x82) :|: TRUE
f8_in(x83, x84) -> f49_in(x83, x84) :|: TRUE
f44_out(x85, x86) -> f8_out(x85, x86) :|: TRUE
f49_out(x87, x88) -> f8_out(x87, x88) :|: TRUE
f8_in(x89, x90) -> f44_in(x89, x90) :|: TRUE
f49_in(x91, x92) -> f426_in :|: TRUE
f426_out -> f49_out(x93, x94) :|: TRUE
f49_in(s(T94), T96) -> f424_in(T94, T96) :|: TRUE
f424_out(x95, x96) -> f49_out(s(x95), x96) :|: TRUE
f424_in(x97, x98) -> f430_in(x97) :|: TRUE
f430_out(x99) -> f431_in(x99, x100) :|: TRUE
f431_out(x101, x102) -> f424_out(x101, x102) :|: TRUE
f434_out(x103) -> f430_out(x103) :|: TRUE
f430_in(x104) -> f434_in(x104) :|: TRUE
f434_in(x105) -> f435_in(x105) :|: TRUE
f435_out(x106) -> f434_out(x106) :|: TRUE
f435_in(x107) -> f436_in(x107) :|: TRUE
f437_out(x108) -> f435_out(x108) :|: TRUE
f436_out(x109) -> f435_out(x109) :|: TRUE
f435_in(x110) -> f437_in(x110) :|: TRUE
f439_out -> f436_out(x111) :|: TRUE
f436_in(x112) -> f439_in :|: TRUE
f436_in(T103) -> f438_in(T103) :|: TRUE
f438_out(x113) -> f436_out(x113) :|: TRUE
f226_out(x114) -> f438_out(x114) :|: TRUE
f438_in(x115) -> f226_in(x115) :|: TRUE
f440_out(T108) -> f437_out(T108) :|: TRUE
f437_in(x116) -> f441_in :|: TRUE
f437_in(x117) -> f440_in(x117) :|: TRUE
f441_out -> f437_out(x118) :|: TRUE
f443_out(x119) -> f440_out(x119) :|: TRUE
f440_in(x120) -> f442_in(x120) :|: TRUE
f442_out(x121) -> f443_in(x121) :|: TRUE
f444_out(x122) -> f443_out(x122) :|: TRUE
f443_in(x123) -> f444_in(x123) :|: TRUE
f445_out(x124) -> f444_out(x124) :|: TRUE
f444_in(x125) -> f446_in(x125) :|: TRUE
f444_in(x126) -> f445_in(x126) :|: TRUE
f446_out(x127) -> f444_out(x127) :|: TRUE
f452_out(x128) -> f446_out(x128) :|: TRUE
f453_out(x129) -> f446_out(x129) :|: TRUE
f446_in(x130) -> f453_in(x130) :|: TRUE
f446_in(x131) -> f452_in(x131) :|: TRUE
f460_out -> f452_out(x132) :|: TRUE
f452_in(s(T123)) -> f459_in(T123) :|: TRUE
f459_out(x133) -> f452_out(s(x133)) :|: TRUE
f452_in(x134) -> f460_in :|: TRUE
f226_out(x135) -> f459_out(x135) :|: TRUE
f459_in(x136) -> f226_in(x136) :|: TRUE
f78_out -> f44_out(x137, x138) :|: TRUE
f44_in(s(T17), T18) -> f77_in(T17, T18) :|: TRUE
f44_in(x139, x140) -> f78_in :|: TRUE
f77_out(x141, x142) -> f44_out(s(x141), x142) :|: TRUE
f77_in(x143, x144) -> f123_in(x143, x144) :|: TRUE
f123_out(x145, x146) -> f77_out(x145, x146) :|: TRUE
f130_out(x147, x148) -> f123_out(x147, x148) :|: TRUE
f123_in(x149, x150) -> f129_in(x149, x150) :|: TRUE
f123_in(x151, x152) -> f130_in(x151, x152) :|: TRUE
f129_out(x153, x154) -> f123_out(x153, x154) :|: TRUE
f130_in(x155, x156) -> f147_in(x155, x156) :|: TRUE
f147_out(x157, x158) -> f130_out(x157, x158) :|: TRUE
f147_in(x159, x160) -> f173_in :|: TRUE
f170_out(x161, x162) -> f147_out(s(x161), x162) :|: TRUE
f173_out -> f147_out(x163, x164) :|: TRUE
f147_in(s(x165), x166) -> f170_in(x165, x166) :|: TRUE
f190_out(x167, x168, x169) -> f170_out(x167, x169) :|: TRUE
f170_in(x170, x171) -> f189_in(x170) :|: TRUE
f189_out(x172) -> f190_in(x172, x173, x174) :|: TRUE
f190_in(x175, x176, x177) -> f397_in(x175, x176, x177) :|: TRUE
f397_out(x178, x179, x180) -> f190_out(x178, x179, x180) :|: TRUE
f397_in(x181, x182, x183) -> f398_in(x181, x182, x183) :|: TRUE
f397_in(x184, x185, x186) -> f399_in(x184, x185, x186) :|: TRUE
f399_out(x187, x188, x189) -> f397_out(x187, x188, x189) :|: TRUE
f398_out(x190, x191, x192) -> f397_out(x190, x191, x192) :|: TRUE
f399_in(x193, x194, x195) -> f407_in(x193, x194, x195) :|: TRUE
f407_out(x196, x197, x198) -> f399_out(x196, x197, x198) :|: TRUE
f406_out(x199, x200, x201) -> f399_out(x199, x200, x201) :|: TRUE
f399_in(x202, x203, x204) -> f406_in(x202, x203, x204) :|: TRUE
f413_out(T82, T83, T84) -> f407_out(s(T82), s(T83), T84) :|: TRUE
f407_in(x205, x206, x207) -> f414_in :|: TRUE
f407_in(s(x208), s(x209), x210) -> f413_in(x208, x209, x210) :|: TRUE
f414_out -> f407_out(x211, x212, x213) :|: TRUE
f413_in(x214, x215, x216) -> f417_in(x214, x215) :|: TRUE
f418_out(x217, x218, x219) -> f413_out(x217, x220, x219) :|: TRUE
f417_out(x221, x222) -> f418_in(x221, x223, x224) :|: TRUE
f417_in(x225, x226) -> f357_in(s(x225), x226) :|: TRUE
f357_out(s(x227), x228) -> f417_out(x227, x228) :|: TRUE
Start term: f2_in(T1, T3)

----------------------------------------

(118) IRSwTSimpleDependencyGraphProof (EQUIVALENT)
Constructed simple dependency graph.

Simplified to the following IRSwTs:

intTRSProblem:
f239_in(x) -> f259_in(x) :|: TRUE
f229_in(x15) -> f239_in(x15) :|: TRUE
f212_in(T24) -> f215_in(T24) :|: TRUE
f221_in(x26) -> f226_in(x26) :|: TRUE
f290_in(x27) -> f356_in(x27) :|: TRUE
f356_in(x36) -> f189_in(x36) :|: TRUE
f215_in(x46) -> f221_in(x46) :|: TRUE
f226_in(x51) -> f229_in(x51) :|: TRUE
f189_in(x54) -> f212_in(x54) :|: TRUE
f259_in(s(x66)) -> f290_in(x66) :|: TRUE


----------------------------------------

(119)
Obligation:
Rules:
f239_in(x) -> f259_in(x) :|: TRUE
f229_in(x15) -> f239_in(x15) :|: TRUE
f212_in(T24) -> f215_in(T24) :|: TRUE
f221_in(x26) -> f226_in(x26) :|: TRUE
f290_in(x27) -> f356_in(x27) :|: TRUE
f356_in(x36) -> f189_in(x36) :|: TRUE
f215_in(x46) -> f221_in(x46) :|: TRUE
f226_in(x51) -> f229_in(x51) :|: TRUE
f189_in(x54) -> f212_in(x54) :|: TRUE
f259_in(s(x66)) -> f290_in(x66) :|: TRUE

----------------------------------------

(120) IntTRSCompressionProof (EQUIVALENT)
Compressed rules.
----------------------------------------

(121)
Obligation:
Rules:
f290_in(s(x66:0)) -> f290_in(x66:0) :|: TRUE

----------------------------------------

(122) IRSFormatTransformerProof (EQUIVALENT)
Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %).
----------------------------------------

(123)
Obligation:
Rules:
f290_in(s(x66:0)) -> f290_in(x66:0) :|: TRUE

----------------------------------------

(124) IRSwTTerminationDigraphProof (EQUIVALENT)
Constructed termination digraph!
Nodes:
(1) f290_in(s(x66:0)) -> f290_in(x66:0) :|: TRUE

Arcs:
(1) -> (1)

This digraph is fully evaluated!
----------------------------------------

(125)
Obligation:

Termination digraph:
Nodes:
(1) f290_in(s(x66:0)) -> f290_in(x66:0) :|: TRUE

Arcs:
(1) -> (1)

This digraph is fully evaluated!

----------------------------------------

(126) TempFilterProof (SOUND)
Used the following sort dictionary for filtering: 
f290_in(VARIABLE)
s(VARIABLE)
Removed predefined arithmetic.
----------------------------------------

(127)
Obligation:
Rules:
f290_in(s(x66:0)) -> f290_in(x66:0)

----------------------------------------

(128) IRSwTToQDPProof (SOUND)
Removed the integers and created a QDP-Problem.
----------------------------------------

(129)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   f290_in(s(x66:0)) -> f290_in(x66:0)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.
----------------------------------------

(130) 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:
*f290_in(s(x66:0)) -> f290_in(x66:0)
The graph contains the following edges 1 > 1


----------------------------------------

(131)
YES

----------------------------------------

(132)
Obligation:
Rules:
f434_out(T94) -> f430_out(T94) :|: TRUE
f430_in(x) -> f434_in(x) :|: TRUE
f452_out(T108) -> f446_out(T108) :|: TRUE
f453_out(x1) -> f446_out(x1) :|: TRUE
f446_in(x2) -> f453_in(x2) :|: TRUE
f446_in(x3) -> f452_in(x3) :|: TRUE
f440_out(x4) -> f437_out(x4) :|: TRUE
f437_in(x5) -> f441_in :|: TRUE
f437_in(x6) -> f440_in(x6) :|: TRUE
f441_out -> f437_out(x7) :|: TRUE
f443_out(x8) -> f440_out(x8) :|: TRUE
f440_in(x9) -> f442_in(x9) :|: TRUE
f442_out(x10) -> f443_in(x10) :|: TRUE
f442_in(x11) -> f430_in(x11) :|: TRUE
f430_out(x12) -> f442_out(x12) :|: TRUE
f434_in(x13) -> f435_in(x13) :|: TRUE
f435_out(x14) -> f434_out(x14) :|: TRUE
f444_out(x15) -> f443_out(x15) :|: TRUE
f443_in(x16) -> f444_in(x16) :|: TRUE
f445_out(x17) -> f444_out(x17) :|: TRUE
f444_in(x18) -> f446_in(x18) :|: TRUE
f444_in(x19) -> f445_in(x19) :|: TRUE
f446_out(x20) -> f444_out(x20) :|: TRUE
f435_in(x21) -> f436_in(x21) :|: TRUE
f437_out(x22) -> f435_out(x22) :|: TRUE
f436_out(x23) -> f435_out(x23) :|: TRUE
f435_in(x24) -> f437_in(x24) :|: TRUE
f453_in(x25) -> f466_in :|: TRUE
f465_out(T128) -> f453_out(s(T128)) :|: TRUE
f453_in(s(x26)) -> f465_in(x26) :|: TRUE
f466_out -> f453_out(x27) :|: TRUE
f440_out(x28) -> f465_out(x28) :|: TRUE
f465_in(x29) -> f440_in(x29) :|: TRUE
f6_out(T1, T3) -> f2_out(T1, T3) :|: TRUE
f2_in(x30, x31) -> f6_in(x30, x31) :|: TRUE
f6_in(x32, x33) -> f7_in(x32, x33) :|: TRUE
f6_in(x34, x35) -> f8_in(x34, x35) :|: TRUE
f7_out(x36, x37) -> f6_out(x36, x37) :|: TRUE
f8_out(x38, x39) -> f6_out(x38, x39) :|: TRUE
f8_in(x40, x41) -> f49_in(x40, x41) :|: TRUE
f44_out(x42, x43) -> f8_out(x42, x43) :|: TRUE
f49_out(x44, x45) -> f8_out(x44, x45) :|: TRUE
f8_in(x46, x47) -> f44_in(x46, x47) :|: TRUE
f49_in(x48, x49) -> f426_in :|: TRUE
f426_out -> f49_out(x50, x51) :|: TRUE
f49_in(s(x52), x53) -> f424_in(x52, x53) :|: TRUE
f424_out(x54, x55) -> f49_out(s(x54), x55) :|: TRUE
f424_in(x56, x57) -> f430_in(x56) :|: TRUE
f430_out(x58) -> f431_in(x58, x59) :|: TRUE
f431_out(x60, x61) -> f424_out(x60, x61) :|: TRUE
Start term: f2_in(T1, T3)

----------------------------------------

(133) IRSwTSimpleDependencyGraphProof (EQUIVALENT)
Constructed simple dependency graph.

Simplified to the following IRSwTs:

intTRSProblem:
f430_in(x) -> f434_in(x) :|: TRUE
f437_in(x6) -> f440_in(x6) :|: TRUE
f440_in(x9) -> f442_in(x9) :|: TRUE
f442_in(x11) -> f430_in(x11) :|: TRUE
f434_in(x13) -> f435_in(x13) :|: TRUE
f435_in(x24) -> f437_in(x24) :|: TRUE


----------------------------------------

(134)
Obligation:
Rules:
f430_in(x) -> f434_in(x) :|: TRUE
f437_in(x6) -> f440_in(x6) :|: TRUE
f440_in(x9) -> f442_in(x9) :|: TRUE
f442_in(x11) -> f430_in(x11) :|: TRUE
f434_in(x13) -> f435_in(x13) :|: TRUE
f435_in(x24) -> f437_in(x24) :|: TRUE

----------------------------------------

(135) IntTRSCompressionProof (EQUIVALENT)
Compressed rules.
----------------------------------------

(136)
Obligation:
Rules:
f437_in(x6:0) -> f437_in(x6:0) :|: TRUE

----------------------------------------

(137) IRSFormatTransformerProof (EQUIVALENT)
Reformatted IRS to match normalized format (transformed away non-linear left-hand sides, !=, / and %).
----------------------------------------

(138)
Obligation:
Rules:
f437_in(x6:0) -> f437_in(x6:0) :|: TRUE

----------------------------------------

(139) IRSwTTerminationDigraphProof (EQUIVALENT)
Constructed termination digraph!
Nodes:
(1) f437_in(x6:0) -> f437_in(x6:0) :|: TRUE

Arcs:
(1) -> (1)

This digraph is fully evaluated!
----------------------------------------

(140)
Obligation:

Termination digraph:
Nodes:
(1) f437_in(x6:0) -> f437_in(x6:0) :|: TRUE

Arcs:
(1) -> (1)

This digraph is fully evaluated!

----------------------------------------

(141) FilterProof (EQUIVALENT)
Used the following sort dictionary for filtering: 
f437_in(VARIABLE)
Replaced non-predefined constructor symbols by 0.
----------------------------------------

(142)
Obligation:
Rules:
f437_in(x6:0) -> f437_in(x6:0) :|: TRUE

----------------------------------------

(143) IntTRSPeriodicNontermProof (COMPLETE)
Normalized system to the following form:
f(pc, x6:0) -> f(1, x6:0) :|: pc = 1 && TRUE
Witness term starting non-terminating reduction: f(1, -8)
----------------------------------------

(144)
NO

----------------------------------------

(145)
Obligation:
Rules:
f394_out(T53, T54) -> f395_in(T53, T55) :|: TRUE
f368_in(x, x1) -> f394_in(x, x1) :|: TRUE
f395_out(x2, x3) -> f368_out(x2, x4) :|: TRUE
f222_in(T24) -> f396_in :|: TRUE
f396_out -> f222_out(x5) :|: TRUE
f397_in(x6, x7, x8) -> f398_in(x6, x7, x8) :|: TRUE
f397_in(x9, x10, x11) -> f399_in(x9, x10, x11) :|: TRUE
f399_out(x12, x13, x14) -> f397_out(x12, x13, x14) :|: TRUE
f398_out(x15, x16, x17) -> f397_out(x15, x16, x17) :|: TRUE
f413_out(T82, T83, T84) -> f407_out(s(T82), s(T83), T84) :|: TRUE
f407_in(x18, x19, x20) -> f414_in :|: TRUE
f407_in(s(x21), s(x22), x23) -> f413_in(x21, x22, x23) :|: TRUE
f414_out -> f407_out(x24, x25, x26) :|: TRUE
f361_in -> f361_out :|: TRUE
f418_in(x27, x28, x29) -> f190_in(x27, x28, x29) :|: TRUE
f190_out(x30, x31, x32) -> f418_out(x30, x31, x32) :|: TRUE
f226_out(T31) -> f221_out(T31) :|: TRUE
f221_in(x33) -> f226_in(x33) :|: TRUE
f290_in(T35) -> f356_in(T35) :|: TRUE
f357_out(x34, x35) -> f290_out(x34) :|: TRUE
f356_out(x36) -> f357_in(x36, x37) :|: TRUE
f77_in(T17, T18) -> f123_in(T17, T18) :|: TRUE
f123_out(x38, x39) -> f77_out(x38, x39) :|: TRUE
f356_in(x40) -> f189_in(x40) :|: TRUE
f189_out(x41) -> f356_out(x41) :|: TRUE
f190_in(x42, x43, x44) -> f397_in(x42, x43, x44) :|: TRUE
f397_out(x45, x46, x47) -> f190_out(x45, x46, x47) :|: TRUE
f215_in(x48) -> f221_in(x48) :|: TRUE
f221_out(x49) -> f215_out(x49) :|: TRUE
f222_out(x50) -> f215_out(x50) :|: TRUE
f215_in(x51) -> f222_in(x51) :|: TRUE
f226_in(x52) -> f229_in(x52) :|: TRUE
f229_out(x53) -> f226_out(x53) :|: TRUE
f359_in(0, T43) -> f361_in :|: TRUE
f362_out -> f359_out(x54, x55) :|: TRUE
f359_in(x56, x57) -> f362_in :|: TRUE
f361_out -> f359_out(0, x58) :|: TRUE
f212_out(x59) -> f189_out(x59) :|: TRUE
f189_in(x60) -> f212_in(x60) :|: TRUE
f237_in(x61) -> f251_in :|: TRUE
f249_out -> f237_out(0) :|: TRUE
f237_in(0) -> f249_in :|: TRUE
f251_out -> f237_out(x62) :|: TRUE
f395_in(x63, x64) -> f357_in(x63, x64) :|: TRUE
f357_out(x65, x66) -> f395_out(x65, x66) :|: TRUE
f130_in(x67, x68) -> f147_in(x67, x68) :|: TRUE
f147_out(x69, x70) -> f130_out(x69, x70) :|: TRUE
f259_in(x71) -> f291_in :|: TRUE
f259_in(s(x72)) -> f290_in(x72) :|: TRUE
f291_out -> f259_out(x73) :|: TRUE
f290_out(x74) -> f259_out(s(x74)) :|: TRUE
f357_out(s(x75), x76) -> f394_out(x75, x76) :|: TRUE
f394_in(x77, x78) -> f357_in(s(x77), x78) :|: TRUE
f77_out(T74, T75) -> f409_out(T74, T75) :|: TRUE
f409_in(x79, x80) -> f77_in(x79, x80) :|: TRUE
f259_out(x81) -> f239_out(x81) :|: TRUE
f239_in(x82) -> f259_in(x82) :|: TRUE
f358_in(x83, x84) -> f360_in(x83, x84) :|: TRUE
f359_out(x85, x86) -> f358_out(x85, x86) :|: TRUE
f360_out(x87, x88) -> f358_out(x87, x88) :|: TRUE
f358_in(x89, x90) -> f359_in(x89, x90) :|: TRUE
f229_in(x91) -> f237_in(x91) :|: TRUE
f239_out(x92) -> f229_out(x92) :|: TRUE
f237_out(x93) -> f229_out(x93) :|: TRUE
f229_in(x94) -> f239_in(x94) :|: TRUE
f212_in(x95) -> f215_in(x95) :|: TRUE
f215_out(x96) -> f212_out(x96) :|: TRUE
f406_in(s(x97), 0, x98) -> f409_in(x97, x98) :|: TRUE
f409_out(x99, x100) -> f406_out(s(x99), 0, x100) :|: TRUE
f406_in(x101, x102, x103) -> f410_in :|: TRUE
f410_out -> f406_out(x104, x105, x106) :|: TRUE
f399_in(x107, x108, x109) -> f407_in(x107, x108, x109) :|: TRUE
f407_out(x110, x111, x112) -> f399_out(x110, x111, x112) :|: TRUE
f406_out(x113, x114, x115) -> f399_out(x113, x114, x115) :|: TRUE
f399_in(x116, x117, x118) -> f406_in(x116, x117, x118) :|: TRUE
f147_in(x119, x120) -> f173_in :|: TRUE
f170_out(x121, x122) -> f147_out(s(x121), x122) :|: TRUE
f173_out -> f147_out(x123, x124) :|: TRUE
f147_in(s(x125), x126) -> f170_in(x125, x126) :|: TRUE
f360_in(x127, x128) -> f365_in(x127, x128) :|: TRUE
f365_out(x129, x130) -> f360_out(x129, x130) :|: TRUE
f360_in(x131, x132) -> f364_in(x131, x132) :|: TRUE
f364_out(x133, x134) -> f360_out(x133, x134) :|: TRUE
f358_out(x135, x136) -> f357_out(x135, x136) :|: TRUE
f357_in(x137, x138) -> f358_in(x137, x138) :|: TRUE
f365_in(x139, x140) -> f369_in :|: TRUE
f368_out(x141, x142) -> f365_out(s(x141), s(x142)) :|: TRUE
f365_in(s(x143), s(x144)) -> f368_in(x143, x144) :|: TRUE
f369_out -> f365_out(x145, x146) :|: TRUE
f413_in(x147, x148, x149) -> f417_in(x147, x148) :|: TRUE
f418_out(x150, x151, x152) -> f413_out(x150, x153, x152) :|: TRUE
f417_out(x154, x155) -> f418_in(x154, x156, x157) :|: TRUE
f226_out(T48) -> f366_out(T48) :|: TRUE
f366_in(x158) -> f226_in(x158) :|: TRUE
f249_in -> f249_out :|: TRUE
f190_out(x159, x160, x161) -> f170_out(x159, x161) :|: TRUE
f170_in(x162, x163) -> f189_in(x162) :|: TRUE
f189_out(x164) -> f190_in(x164, x165, x166) :|: TRUE
f130_out(x167, x168) -> f123_out(x167, x168) :|: TRUE
f123_in(x169, x170) -> f129_in(x169, x170) :|: TRUE
f123_in(x171, x172) -> f130_in(x171, x172) :|: TRUE
f129_out(x173, x174) -> f123_out(x173, x174) :|: TRUE
f364_in(x175, x176) -> f367_in :|: TRUE
f367_out -> f364_out(x177, x178) :|: TRUE
f364_in(s(x179), 0) -> f366_in(x179) :|: TRUE
f366_out(x180) -> f364_out(s(x180), 0) :|: TRUE
f417_in(x181, x182) -> f357_in(s(x181), x182) :|: TRUE
f357_out(s(x183), x184) -> f417_out(x183, x184) :|: TRUE
f6_out(T1, T3) -> f2_out(T1, T3) :|: TRUE
f2_in(x185, x186) -> f6_in(x185, x186) :|: TRUE
f6_in(x187, x188) -> f7_in(x187, x188) :|: TRUE
f6_in(x189, x190) -> f8_in(x189, x190) :|: TRUE
f7_out(x191, x192) -> f6_out(x191, x192) :|: TRUE
f8_out(x193, x194) -> f6_out(x193, x194) :|: TRUE
f8_in(x195, x196) -> f49_in(x195, x196) :|: TRUE
f44_out(x197, x198) -> f8_out(x197, x198) :|: TRUE
f49_out(x199, x200) -> f8_out(x199, x200) :|: TRUE
f8_in(x201, x202) -> f44_in(x201, x202) :|: TRUE
f78_out -> f44_out(x203, x204) :|: TRUE
f44_in(s(x205), x206) -> f77_in(x205, x206) :|: TRUE
f44_in(x207, x208) -> f78_in :|: TRUE
f77_out(x209, x210) -> f44_out(s(x209), x210) :|: TRUE
Start term: f2_in(T1, T3)

----------------------------------------

(146) IRSwTSimpleDependencyGraphProof (EQUIVALENT)
Constructed simple dependency graph.

Simplified to the following IRSwTs:

intTRSProblem:
f394_out(T53, T54) -> f395_in(T53, T55) :|: TRUE
f368_in(x, x1) -> f394_in(x, x1) :|: TRUE
f395_out(x2, x3) -> f368_out(x2, x4) :|: TRUE
f397_in(x9, x10, x11) -> f399_in(x9, x10, x11) :|: TRUE
f407_in(s(x21), s(x22), x23) -> f413_in(x21, x22, x23) :|: TRUE
f361_in -> f361_out :|: TRUE
f418_in(x27, x28, x29) -> f190_in(x27, x28, x29) :|: TRUE
f226_out(T31) -> f221_out(T31) :|: TRUE
f221_in(x33) -> f226_in(x33) :|: TRUE
f290_in(T35) -> f356_in(T35) :|: TRUE
f357_out(x34, x35) -> f290_out(x34) :|: TRUE
f356_out(x36) -> f357_in(x36, x37) :|: TRUE
f77_in(T17, T18) -> f123_in(T17, T18) :|: TRUE
f356_in(x40) -> f189_in(x40) :|: TRUE
f189_out(x41) -> f356_out(x41) :|: TRUE
f190_in(x42, x43, x44) -> f397_in(x42, x43, x44) :|: TRUE
f215_in(x48) -> f221_in(x48) :|: TRUE
f221_out(x49) -> f215_out(x49) :|: TRUE
f226_in(x52) -> f229_in(x52) :|: TRUE
f229_out(x53) -> f226_out(x53) :|: TRUE
f359_in(0, T43) -> f361_in :|: TRUE
f361_out -> f359_out(0, x58) :|: TRUE
f212_out(x59) -> f189_out(x59) :|: TRUE
f189_in(x60) -> f212_in(x60) :|: TRUE
f249_out -> f237_out(0) :|: TRUE
f237_in(0) -> f249_in :|: TRUE
f395_in(x63, x64) -> f357_in(x63, x64) :|: TRUE
f357_out(x65, x66) -> f395_out(x65, x66) :|: TRUE
f130_in(x67, x68) -> f147_in(x67, x68) :|: TRUE
f259_in(s(x72)) -> f290_in(x72) :|: TRUE
f290_out(x74) -> f259_out(s(x74)) :|: TRUE
f357_out(s(x75), x76) -> f394_out(x75, x76) :|: TRUE
f394_in(x77, x78) -> f357_in(s(x77), x78) :|: TRUE
f409_in(x79, x80) -> f77_in(x79, x80) :|: TRUE
f259_out(x81) -> f239_out(x81) :|: TRUE
f239_in(x82) -> f259_in(x82) :|: TRUE
f358_in(x83, x84) -> f360_in(x83, x84) :|: TRUE
f359_out(x85, x86) -> f358_out(x85, x86) :|: TRUE
f360_out(x87, x88) -> f358_out(x87, x88) :|: TRUE
f358_in(x89, x90) -> f359_in(x89, x90) :|: TRUE
f229_in(x91) -> f237_in(x91) :|: TRUE
f239_out(x92) -> f229_out(x92) :|: TRUE
f237_out(x93) -> f229_out(x93) :|: TRUE
f229_in(x94) -> f239_in(x94) :|: TRUE
f212_in(x95) -> f215_in(x95) :|: TRUE
f215_out(x96) -> f212_out(x96) :|: TRUE
f406_in(s(x97), 0, x98) -> f409_in(x97, x98) :|: TRUE
f399_in(x107, x108, x109) -> f407_in(x107, x108, x109) :|: TRUE
f399_in(x116, x117, x118) -> f406_in(x116, x117, x118) :|: TRUE
f147_in(s(x125), x126) -> f170_in(x125, x126) :|: TRUE
f360_in(x127, x128) -> f365_in(x127, x128) :|: TRUE
f365_out(x129, x130) -> f360_out(x129, x130) :|: TRUE
f360_in(x131, x132) -> f364_in(x131, x132) :|: TRUE
f364_out(x133, x134) -> f360_out(x133, x134) :|: TRUE
f358_out(x135, x136) -> f357_out(x135, x136) :|: TRUE
f357_in(x137, x138) -> f358_in(x137, x138) :|: TRUE
f368_out(x141, x142) -> f365_out(s(x141), s(x142)) :|: TRUE
f365_in(s(x143), s(x144)) -> f368_in(x143, x144) :|: TRUE
f413_in(x147, x148, x149) -> f417_in(x147, x148) :|: TRUE
f417_out(x154, x155) -> f418_in(x154, x156, x157) :|: TRUE
f226_out(T48) -> f366_out(T48) :|: TRUE
f366_in(x158) -> f226_in(x158) :|: TRUE
f249_in -> f249_out :|: TRUE
f170_in(x162, x163) -> f189_in(x162) :|: TRUE
f189_out(x164) -> f190_in(x164, x165, x166) :|: TRUE
f123_in(x171, x172) -> f130_in(x171, x172) :|: TRUE
f364_in(s(x179), 0) -> f366_in(x179) :|: TRUE
f366_out(x180) -> f364_out(s(x180), 0) :|: TRUE
f417_in(x181, x182) -> f357_in(s(x181), x182) :|: TRUE
f357_out(s(x183), x184) -> f417_out(x183, x184) :|: TRUE


----------------------------------------

(147)
Obligation:
Rules:
f394_out(T53, T54) -> f395_in(T53, T55) :|: TRUE
f368_in(x, x1) -> f394_in(x, x1) :|: TRUE
f395_out(x2, x3) -> f368_out(x2, x4) :|: TRUE
f397_in(x9, x10, x11) -> f399_in(x9, x10, x11) :|: TRUE
f407_in(s(x21), s(x22), x23) -> f413_in(x21, x22, x23) :|: TRUE
f361_in -> f361_out :|: TRUE
f418_in(x27, x28, x29) -> f190_in(x27, x28, x29) :|: TRUE
f226_out(T31) -> f221_out(T31) :|: TRUE
f221_in(x33) -> f226_in(x33) :|: TRUE
f290_in(T35) -> f356_in(T35) :|: TRUE
f357_out(x34, x35) -> f290_out(x34) :|: TRUE
f356_out(x36) -> f357_in(x36, x37) :|: TRUE
f77_in(T17, T18) -> f123_in(T17, T18) :|: TRUE
f356_in(x40) -> f189_in(x40) :|: TRUE
f189_out(x41) -> f356_out(x41) :|: TRUE
f190_in(x42, x43, x44) -> f397_in(x42, x43, x44) :|: TRUE
f215_in(x48) -> f221_in(x48) :|: TRUE
f221_out(x49) -> f215_out(x49) :|: TRUE
f226_in(x52) -> f229_in(x52) :|: TRUE
f229_out(x53) -> f226_out(x53) :|: TRUE
f359_in(0, T43) -> f361_in :|: TRUE
f361_out -> f359_out(0, x58) :|: TRUE
f212_out(x59) -> f189_out(x59) :|: TRUE
f189_in(x60) -> f212_in(x60) :|: TRUE
f249_out -> f237_out(0) :|: TRUE
f237_in(0) -> f249_in :|: TRUE
f395_in(x63, x64) -> f357_in(x63, x64) :|: TRUE
f357_out(x65, x66) -> f395_out(x65, x66) :|: TRUE
f130_in(x67, x68) -> f147_in(x67, x68) :|: TRUE
f259_in(s(x72)) -> f290_in(x72) :|: TRUE
f290_out(x74) -> f259_out(s(x74)) :|: TRUE
f357_out(s(x75), x76) -> f394_out(x75, x76) :|: TRUE
f394_in(x77, x78) -> f357_in(s(x77), x78) :|: TRUE
f409_in(x79, x80) -> f77_in(x79, x80) :|: TRUE
f259_out(x81) -> f239_out(x81) :|: TRUE
f239_in(x82) -> f259_in(x82) :|: TRUE
f358_in(x83, x84) -> f360_in(x83, x84) :|: TRUE
f359_out(x85, x86) -> f358_out(x85, x86) :|: TRUE
f360_out(x87, x88) -> f358_out(x87, x88) :|: TRUE
f358_in(x89, x90) -> f359_in(x89, x90) :|: TRUE
f229_in(x91) -> f237_in(x91) :|: TRUE
f239_out(x92) -> f229_out(x92) :|: TRUE
f237_out(x93) -> f229_out(x93) :|: TRUE
f229_in(x94) -> f239_in(x94) :|: TRUE
f212_in(x95) -> f215_in(x95) :|: TRUE
f215_out(x96) -> f212_out(x96) :|: TRUE
f406_in(s(x97), 0, x98) -> f409_in(x97, x98) :|: TRUE
f399_in(x107, x108, x109) -> f407_in(x107, x108, x109) :|: TRUE
f399_in(x116, x117, x118) -> f406_in(x116, x117, x118) :|: TRUE
f147_in(s(x125), x126) -> f170_in(x125, x126) :|: TRUE
f360_in(x127, x128) -> f365_in(x127, x128) :|: TRUE
f365_out(x129, x130) -> f360_out(x129, x130) :|: TRUE
f360_in(x131, x132) -> f364_in(x131, x132) :|: TRUE
f364_out(x133, x134) -> f360_out(x133, x134) :|: TRUE
f358_out(x135, x136) -> f357_out(x135, x136) :|: TRUE
f357_in(x137, x138) -> f358_in(x137, x138) :|: TRUE
f368_out(x141, x142) -> f365_out(s(x141), s(x142)) :|: TRUE
f365_in(s(x143), s(x144)) -> f368_in(x143, x144) :|: TRUE
f413_in(x147, x148, x149) -> f417_in(x147, x148) :|: TRUE
f417_out(x154, x155) -> f418_in(x154, x156, x157) :|: TRUE
f226_out(T48) -> f366_out(T48) :|: TRUE
f366_in(x158) -> f226_in(x158) :|: TRUE
f249_in -> f249_out :|: TRUE
f170_in(x162, x163) -> f189_in(x162) :|: TRUE
f189_out(x164) -> f190_in(x164, x165, x166) :|: TRUE
f123_in(x171, x172) -> f130_in(x171, x172) :|: TRUE
f364_in(s(x179), 0) -> f366_in(x179) :|: TRUE
f366_out(x180) -> f364_out(s(x180), 0) :|: TRUE
f417_in(x181, x182) -> f357_in(s(x181), x182) :|: TRUE
f357_out(s(x183), x184) -> f417_out(x183, x184) :|: TRUE

----------------------------------------

(148)
Obligation:
Rules:
f8_in(T1, T3) -> f49_in(T1, T3) :|: TRUE
f44_out(x, x1) -> f8_out(x, x1) :|: TRUE
f49_out(x2, x3) -> f8_out(x2, x3) :|: TRUE
f8_in(x4, x5) -> f44_in(x4, x5) :|: TRUE
f6_in(x6, x7) -> f7_in(x6, x7) :|: TRUE
f6_in(x8, x9) -> f8_in(x8, x9) :|: TRUE
f7_out(x10, x11) -> f6_out(x10, x11) :|: TRUE
f8_out(x12, x13) -> f6_out(x12, x13) :|: TRUE
f440_out(T108) -> f437_out(T108) :|: TRUE
f437_in(T94) -> f441_in :|: TRUE
f437_in(x14) -> f440_in(x14) :|: TRUE
f441_out -> f437_out(x15) :|: TRUE
f222_in(T24) -> f396_in :|: TRUE
f396_out -> f222_out(x16) :|: TRUE
f424_in(x17, x18) -> f430_in(x17) :|: TRUE
f430_out(x19) -> f431_in(x19, x20) :|: TRUE
f431_out(x21, x22) -> f424_out(x21, x22) :|: TRUE
f361_in -> f361_out :|: TRUE
f215_in(x23) -> f221_in(x23) :|: TRUE
f221_out(x24) -> f215_out(x24) :|: TRUE
f222_out(x25) -> f215_out(x25) :|: TRUE
f215_in(x26) -> f222_in(x26) :|: TRUE
f226_in(T31) -> f229_in(T31) :|: TRUE
f229_out(x27) -> f226_out(x27) :|: TRUE
f212_out(x28) -> f189_out(x28) :|: TRUE
f189_in(x29) -> f212_in(x29) :|: TRUE
f237_in(x30) -> f251_in :|: TRUE
f249_out -> f237_out(0) :|: TRUE
f237_in(0) -> f249_in :|: TRUE
f251_out -> f237_out(x31) :|: TRUE
f460_out -> f452_out(x32) :|: TRUE
f452_in(s(T123)) -> f459_in(T123) :|: TRUE
f459_out(x33) -> f452_out(s(x33)) :|: TRUE
f452_in(x34) -> f460_in :|: TRUE
f259_in(x35) -> f291_in :|: TRUE
f259_in(s(T35)) -> f290_in(T35) :|: TRUE
f291_out -> f259_out(x36) :|: TRUE
f290_out(x37) -> f259_out(s(x37)) :|: TRUE
f453_in(x38) -> f466_in :|: TRUE
f465_out(T128) -> f453_out(s(T128)) :|: TRUE
f453_in(s(x39)) -> f465_in(x39) :|: TRUE
f466_out -> f453_out(x40) :|: TRUE
f259_out(x41) -> f239_out(x41) :|: TRUE
f239_in(x42) -> f259_in(x42) :|: TRUE
f229_in(x43) -> f237_in(x43) :|: TRUE
f239_out(x44) -> f229_out(x44) :|: TRUE
f237_out(x45) -> f229_out(x45) :|: TRUE
f229_in(x46) -> f239_in(x46) :|: TRUE
f212_in(x47) -> f215_in(x47) :|: TRUE
f215_out(x48) -> f212_out(x48) :|: TRUE
f445_out(x49) -> f444_out(x49) :|: TRUE
f444_in(x50) -> f446_in(x50) :|: TRUE
f444_in(x51) -> f445_in(x51) :|: TRUE
f446_out(x52) -> f444_out(x52) :|: TRUE
f440_out(x53) -> f465_out(x53) :|: TRUE
f465_in(x54) -> f440_in(x54) :|: TRUE
f365_in(x55, x56) -> f369_in :|: TRUE
f368_out(T53, T54) -> f365_out(s(T53), s(T54)) :|: TRUE
f365_in(s(x57), s(x58)) -> f368_in(x57, x58) :|: TRUE
f369_out -> f365_out(x59, x60) :|: TRUE
f226_out(T103) -> f438_out(T103) :|: TRUE
f438_in(x61) -> f226_in(x61) :|: TRUE
f431_in(x62, x63) -> f2_in(x62, x63) :|: TRUE
f2_out(x64, x65) -> f431_out(x64, x65) :|: TRUE
f442_in(x66) -> f430_in(x66) :|: TRUE
f430_out(x67) -> f442_out(x67) :|: TRUE
f444_out(x68) -> f443_out(x68) :|: TRUE
f443_in(x69) -> f444_in(x69) :|: TRUE
f394_out(x70, x71) -> f395_in(x70, x72) :|: TRUE
f368_in(x73, x74) -> f394_in(x73, x74) :|: TRUE
f395_out(x75, x76) -> f368_out(x75, x77) :|: TRUE
f439_out -> f436_out(x78) :|: TRUE
f436_in(x79) -> f439_in :|: TRUE
f436_in(x80) -> f438_in(x80) :|: TRUE
f438_out(x81) -> f436_out(x81) :|: TRUE
f6_out(x82, x83) -> f2_out(x82, x83) :|: TRUE
f2_in(x84, x85) -> f6_in(x84, x85) :|: TRUE
f435_in(x86) -> f436_in(x86) :|: TRUE
f437_out(x87) -> f435_out(x87) :|: TRUE
f436_out(x88) -> f435_out(x88) :|: TRUE
f435_in(x89) -> f437_in(x89) :|: TRUE
f290_in(x90) -> f356_in(x90) :|: TRUE
f357_out(x91, x92) -> f290_out(x91) :|: TRUE
f356_out(x93) -> f357_in(x93, x94) :|: TRUE
f226_out(x95) -> f221_out(x95) :|: TRUE
f221_in(x96) -> f226_in(x96) :|: TRUE
f447_out -> f445_out(0) :|: TRUE
f445_in(x97) -> f448_in :|: TRUE
f445_in(0) -> f447_in :|: TRUE
f448_out -> f445_out(x98) :|: TRUE
f452_out(x99) -> f446_out(x99) :|: TRUE
f453_out(x100) -> f446_out(x100) :|: TRUE
f446_in(x101) -> f453_in(x101) :|: TRUE
f446_in(x102) -> f452_in(x102) :|: TRUE
f356_in(x103) -> f189_in(x103) :|: TRUE
f189_out(x104) -> f356_out(x104) :|: TRUE
f49_in(x105, x106) -> f426_in :|: TRUE
f426_out -> f49_out(x107, x108) :|: TRUE
f49_in(s(x109), x110) -> f424_in(x109, x110) :|: TRUE
f424_out(x111, x112) -> f49_out(s(x111), x112) :|: TRUE
f447_in -> f447_out :|: TRUE
f226_out(x113) -> f459_out(x113) :|: TRUE
f459_in(x114) -> f226_in(x114) :|: TRUE
f359_in(0, T43) -> f361_in :|: TRUE
f362_out -> f359_out(x115, x116) :|: TRUE
f359_in(x117, x118) -> f362_in :|: TRUE
f361_out -> f359_out(0, x119) :|: TRUE
f395_in(x120, x121) -> f357_in(x120, x121) :|: TRUE
f357_out(x122, x123) -> f395_out(x122, x123) :|: TRUE
f434_in(x124) -> f435_in(x124) :|: TRUE
f435_out(x125) -> f434_out(x125) :|: TRUE
f357_out(s(x126), x127) -> f394_out(x126, x127) :|: TRUE
f394_in(x128, x129) -> f357_in(s(x128), x129) :|: TRUE
f358_in(x130, x131) -> f360_in(x130, x131) :|: TRUE
f359_out(x132, x133) -> f358_out(x132, x133) :|: TRUE
f360_out(x134, x135) -> f358_out(x134, x135) :|: TRUE
f358_in(x136, x137) -> f359_in(x136, x137) :|: TRUE
f360_in(x138, x139) -> f365_in(x138, x139) :|: TRUE
f365_out(x140, x141) -> f360_out(x140, x141) :|: TRUE
f360_in(x142, x143) -> f364_in(x142, x143) :|: TRUE
f364_out(x144, x145) -> f360_out(x144, x145) :|: TRUE
f358_out(x146, x147) -> f357_out(x146, x147) :|: TRUE
f357_in(x148, x149) -> f358_in(x148, x149) :|: TRUE
f434_out(x150) -> f430_out(x150) :|: TRUE
f430_in(x151) -> f434_in(x151) :|: TRUE
f226_out(T48) -> f366_out(T48) :|: TRUE
f366_in(x152) -> f226_in(x152) :|: TRUE
f249_in -> f249_out :|: TRUE
f364_in(x153, x154) -> f367_in :|: TRUE
f367_out -> f364_out(x155, x156) :|: TRUE
f364_in(s(x157), 0) -> f366_in(x157) :|: TRUE
f366_out(x158) -> f364_out(s(x158), 0) :|: TRUE
f443_out(x159) -> f440_out(x159) :|: TRUE
f440_in(x160) -> f442_in(x160) :|: TRUE
f442_out(x161) -> f443_in(x161) :|: TRUE
Start term: f2_in(T1, T3)

----------------------------------------

(149) PrologToTRSTransformerProof (SOUND)
Transformed Prolog program to TRS.

{
    "root": 1,
    "program": {
        "directives": [],
        "clauses": [
            [
                "(ackermann (0) N (s N))",
                null
            ],
            [
                "(ackermann (s M) (0) Val)",
                "(ackermann M (s (0)) Val)"
            ],
            [
                "(ackermann (s M) (s N) Val)",
                "(',' (ackermann (s M) N Val1) (ackermann M Val1 Val))"
            ]
        ]
    },
    "graph": {
        "nodes": {
            "48": {
                "goal": [{
                    "clause": 2,
                    "scope": 1,
                    "term": "(ackermann T1 T2 T3)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "type": "Nodes",
            "350": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 5,
                        "term": "(ackermann T35 T36 X82)"
                    },
                    {
                        "clause": 1,
                        "scope": 5,
                        "term": "(ackermann T35 T36 X82)"
                    },
                    {
                        "clause": 2,
                        "scope": 5,
                        "term": "(ackermann T35 T36 X82)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T35",
                        "T36"
                    ],
                    "free": ["X82"],
                    "exprvars": []
                }
            },
            "351": {
                "goal": [{
                    "clause": 0,
                    "scope": 5,
                    "term": "(ackermann T35 T36 X82)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T35",
                        "T36"
                    ],
                    "free": ["X82"],
                    "exprvars": []
                }
            },
            "352": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 5,
                        "term": "(ackermann T35 T36 X82)"
                    },
                    {
                        "clause": 2,
                        "scope": 5,
                        "term": "(ackermann T35 T36 X82)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T35",
                        "T36"
                    ],
                    "free": ["X82"],
                    "exprvars": []
                }
            },
            "353": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "310": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 3,
                        "term": "(ackermann (s T24) (0) X35)"
                    },
                    {
                        "clause": 2,
                        "scope": 3,
                        "term": "(ackermann (s T24) (0) X35)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T24"],
                    "free": ["X35"],
                    "exprvars": []
                }
            },
            "354": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "311": {
                "goal": [{
                    "clause": 1,
                    "scope": 3,
                    "term": "(ackermann (s T24) (0) X35)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T24"],
                    "free": ["X35"],
                    "exprvars": []
                }
            },
            "355": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "432": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T74 (s (0)) T75)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T74",
                        "T75"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "312": {
                "goal": [{
                    "clause": 2,
                    "scope": 3,
                    "term": "(ackermann (s T24) (0) X35)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T24"],
                    "free": ["X35"],
                    "exprvars": []
                }
            },
            "433": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "510": {
                "goal": [{
                    "clause": 0,
                    "scope": 8,
                    "term": "(ackermann T108 T111 X216)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T108"],
                    "free": ["X216"],
                    "exprvars": []
                }
            },
            "313": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T31 (s (0)) X59)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T31"],
                    "free": ["X59"],
                    "exprvars": []
                }
            },
            "511": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 8,
                        "term": "(ackermann T108 T111 X216)"
                    },
                    {
                        "clause": 2,
                        "scope": 8,
                        "term": "(ackermann T108 T111 X216)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T108"],
                    "free": ["X216"],
                    "exprvars": []
                }
            },
            "314": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 4,
                        "term": "(ackermann T31 (s (0)) X59)"
                    },
                    {
                        "clause": 1,
                        "scope": 4,
                        "term": "(ackermann T31 (s (0)) X59)"
                    },
                    {
                        "clause": 2,
                        "scope": 4,
                        "term": "(ackermann T31 (s (0)) X59)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T31"],
                    "free": ["X59"],
                    "exprvars": []
                }
            },
            "512": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "315": {
                "goal": [{
                    "clause": 0,
                    "scope": 4,
                    "term": "(ackermann T31 (s (0)) X59)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T31"],
                    "free": ["X59"],
                    "exprvars": []
                }
            },
            "513": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "316": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 4,
                        "term": "(ackermann T31 (s (0)) X59)"
                    },
                    {
                        "clause": 2,
                        "scope": 4,
                        "term": "(ackermann T31 (s (0)) X59)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T31"],
                    "free": ["X59"],
                    "exprvars": []
                }
            },
            "514": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "317": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "515": {
                "goal": [{
                    "clause": 1,
                    "scope": 8,
                    "term": "(ackermann T108 T111 X216)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T108"],
                    "free": ["X216"],
                    "exprvars": []
                }
            },
            "318": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "516": {
                "goal": [{
                    "clause": 2,
                    "scope": 8,
                    "term": "(ackermann T108 T111 X216)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T108"],
                    "free": ["X216"],
                    "exprvars": []
                }
            },
            "319": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "517": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T123 (s (0)) X242)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T123"],
                    "free": ["X242"],
                    "exprvars": []
                }
            },
            "518": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "519": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T128) T130 X257) (ackermann T128 X257 X258))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T128"],
                    "free": [
                        "X258",
                        "X257"
                    ],
                    "exprvars": []
                }
            },
            "10": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(ackermann T1 T2 T3)"
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(ackermann T1 T2 T3)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "1": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T1 T2 T3)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "320": {
                "goal": [{
                    "clause": 2,
                    "scope": 4,
                    "term": "(ackermann T31 (s (0)) X59)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T31"],
                    "free": ["X59"],
                    "exprvars": []
                }
            },
            "520": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "4": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 1,
                        "term": "(ackermann T1 T2 T3)"
                    },
                    {
                        "clause": 1,
                        "scope": 1,
                        "term": "(ackermann T1 T2 T3)"
                    },
                    {
                        "clause": 2,
                        "scope": 1,
                        "term": "(ackermann T1 T2 T3)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "400": {
                "goal": [{
                    "clause": 1,
                    "scope": 5,
                    "term": "(ackermann T35 T36 X82)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T35",
                        "T36"
                    ],
                    "free": ["X82"],
                    "exprvars": []
                }
            },
            "401": {
                "goal": [{
                    "clause": 2,
                    "scope": 5,
                    "term": "(ackermann T35 T36 X82)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T35",
                        "T36"
                    ],
                    "free": ["X82"],
                    "exprvars": []
                }
            },
            "9": {
                "goal": [{
                    "clause": 0,
                    "scope": 1,
                    "term": "(ackermann T1 T2 T3)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "405": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T48 (s (0)) X108)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T48"],
                    "free": ["X108"],
                    "exprvars": []
                }
            },
            "408": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "29": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "292": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T17 (s (0)) T18)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T17",
                        "T18"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "293": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "491": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T82) T83 X163) (ackermann T82 X163 T84))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T82",
                        "T83",
                        "T84"
                    ],
                    "free": ["X163"],
                    "exprvars": []
                }
            },
            "492": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "295": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 2,
                        "term": "(ackermann T17 (s (0)) T18)"
                    },
                    {
                        "clause": 1,
                        "scope": 2,
                        "term": "(ackermann T17 (s (0)) T18)"
                    },
                    {
                        "clause": 2,
                        "scope": 2,
                        "term": "(ackermann T17 (s (0)) T18)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T17",
                        "T18"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "493": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann (s T82) T83 X163)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T82",
                        "T83"
                    ],
                    "free": ["X163"],
                    "exprvars": []
                }
            },
            "494": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T82 T85 T84)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T82",
                        "T84",
                        "T85"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "297": {
                "goal": [{
                    "clause": 0,
                    "scope": 2,
                    "term": "(ackermann T17 (s (0)) T18)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T17",
                        "T18"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "495": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T94) T97 X180) (ackermann T94 X180 T96))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T94",
                        "T96"
                    ],
                    "free": ["X180"],
                    "exprvars": []
                }
            },
            "298": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 2,
                        "term": "(ackermann T17 (s (0)) T18)"
                    },
                    {
                        "clause": 2,
                        "scope": 2,
                        "term": "(ackermann T17 (s (0)) T18)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T17",
                        "T18"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "496": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "299": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "497": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann (s T94) T97 X180)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": ["X180"],
                    "exprvars": []
                }
            },
            "498": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T94 T98 T96)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T94",
                        "T96"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "411": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T53) T54 X123) (ackermann T53 X123 X124))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T53",
                        "T54"
                    ],
                    "free": [
                        "X124",
                        "X123"
                    ],
                    "exprvars": []
                }
            },
            "499": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 7,
                        "term": "(ackermann (s T94) T97 X180)"
                    },
                    {
                        "clause": 1,
                        "scope": 7,
                        "term": "(ackermann (s T94) T97 X180)"
                    },
                    {
                        "clause": 2,
                        "scope": 7,
                        "term": "(ackermann (s T94) T97 X180)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": ["X180"],
                    "exprvars": []
                }
            },
            "412": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "415": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann (s T53) T54 X123)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T53",
                        "T54"
                    ],
                    "free": ["X123"],
                    "exprvars": []
                }
            },
            "416": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T53 T55 X124)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T53",
                        "T55"
                    ],
                    "free": ["X124"],
                    "exprvars": []
                }
            },
            "419": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "30": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "31": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "420": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 6,
                        "term": "(ackermann T24 T26 T25)"
                    },
                    {
                        "clause": 1,
                        "scope": 6,
                        "term": "(ackermann T24 T26 T25)"
                    },
                    {
                        "clause": 2,
                        "scope": 6,
                        "term": "(ackermann T24 T26 T25)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T24",
                        "T25",
                        "T26"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "421": {
                "goal": [{
                    "clause": 0,
                    "scope": 6,
                    "term": "(ackermann T24 T26 T25)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T24",
                        "T25",
                        "T26"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "345": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T35) (0) X81) (ackermann T35 X81 X82))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T35"],
                    "free": [
                        "X82",
                        "X81"
                    ],
                    "exprvars": []
                }
            },
            "422": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 6,
                        "term": "(ackermann T24 T26 T25)"
                    },
                    {
                        "clause": 2,
                        "scope": 6,
                        "term": "(ackermann T24 T26 T25)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T24",
                        "T25",
                        "T26"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "302": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "346": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "423": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(true)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "500": {
                "goal": [
                    {
                        "clause": 1,
                        "scope": 7,
                        "term": "(ackermann (s T94) T97 X180)"
                    },
                    {
                        "clause": 2,
                        "scope": 7,
                        "term": "(ackermann (s T94) T97 X180)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": ["X180"],
                    "exprvars": []
                }
            },
            "303": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "347": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann (s T35) (0) X81)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T35"],
                    "free": ["X81"],
                    "exprvars": []
                }
            },
            "501": {
                "goal": [{
                    "clause": 1,
                    "scope": 7,
                    "term": "(ackermann (s T94) T97 X180)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": ["X180"],
                    "exprvars": []
                }
            },
            "304": {
                "goal": [{
                    "clause": 2,
                    "scope": 2,
                    "term": "(ackermann T17 (s (0)) T18)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T17",
                        "T18"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "348": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T35 T36 X82)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T35",
                        "T36"
                    ],
                    "free": ["X82"],
                    "exprvars": []
                }
            },
            "425": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "502": {
                "goal": [{
                    "clause": 2,
                    "scope": 7,
                    "term": "(ackermann (s T94) T97 X180)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T94"],
                    "free": ["X180"],
                    "exprvars": []
                }
            },
            "305": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T24) (0) X35) (ackermann T24 X35 T25))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T24",
                        "T25"
                    ],
                    "free": ["X35"],
                    "exprvars": []
                }
            },
            "503": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T103 (s (0)) X200)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T103"],
                    "free": ["X200"],
                    "exprvars": []
                }
            },
            "306": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "427": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "504": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "307": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann (s T24) (0) X35)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T24"],
                    "free": ["X35"],
                    "exprvars": []
                }
            },
            "428": {
                "goal": [{
                    "clause": 1,
                    "scope": 6,
                    "term": "(ackermann T24 T26 T25)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T24",
                        "T25",
                        "T26"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "505": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(',' (ackermann (s T108) T110 X215) (ackermann T108 X215 X216))"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T108"],
                    "free": [
                        "X216",
                        "X215"
                    ],
                    "exprvars": []
                }
            },
            "308": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T24 T26 T25)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T24",
                        "T25",
                        "T26"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "429": {
                "goal": [{
                    "clause": 2,
                    "scope": 6,
                    "term": "(ackermann T24 T26 T25)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T24",
                        "T25",
                        "T26"
                    ],
                    "free": [],
                    "exprvars": []
                }
            },
            "506": {
                "goal": [],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [],
                    "free": [],
                    "exprvars": []
                }
            },
            "309": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 3,
                        "term": "(ackermann (s T24) (0) X35)"
                    },
                    {
                        "clause": 1,
                        "scope": 3,
                        "term": "(ackermann (s T24) (0) X35)"
                    },
                    {
                        "clause": 2,
                        "scope": 3,
                        "term": "(ackermann (s T24) (0) X35)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T24"],
                    "free": ["X35"],
                    "exprvars": []
                }
            },
            "507": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann (s T108) T110 X215)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T108"],
                    "free": ["X215"],
                    "exprvars": []
                }
            },
            "508": {
                "goal": [{
                    "clause": -1,
                    "scope": -1,
                    "term": "(ackermann T108 T111 X216)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T108"],
                    "free": ["X216"],
                    "exprvars": []
                }
            },
            "509": {
                "goal": [
                    {
                        "clause": 0,
                        "scope": 8,
                        "term": "(ackermann T108 T111 X216)"
                    },
                    {
                        "clause": 1,
                        "scope": 8,
                        "term": "(ackermann T108 T111 X216)"
                    },
                    {
                        "clause": 2,
                        "scope": 8,
                        "term": "(ackermann T108 T111 X216)"
                    }
                ],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": ["T108"],
                    "free": ["X216"],
                    "exprvars": []
                }
            },
            "43": {
                "goal": [{
                    "clause": 1,
                    "scope": 1,
                    "term": "(ackermann T1 T2 T3)"
                }],
                "kb": {
                    "nonunifying": [],
                    "intvars": {},
                    "arithmetic": {
                        "type": "PlainIntegerRelationState",
                        "relations": []
                    },
                    "ground": [
                        "T1",
                        "T3"
                    ],
                    "free": [],
                    "exprvars": []
                }
            }
        },
        "edges": [
            {
                "from": 1,
                "to": 4,
                "label": "CASE"
            },
            {
                "from": 4,
                "to": 9,
                "label": "PARALLEL"
            },
            {
                "from": 4,
                "to": 10,
                "label": "PARALLEL"
            },
            {
                "from": 9,
                "to": 29,
                "label": "EVAL with clause\nackermann(0, X5, s(X5)).\nand substitutionT1 -> 0,\nT2 -> T8,\nX5 -> T8,\nT3 -> s(T8)"
            },
            {
                "from": 9,
                "to": 30,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 10,
                "to": 43,
                "label": "PARALLEL"
            },
            {
                "from": 10,
                "to": 48,
                "label": "PARALLEL"
            },
            {
                "from": 29,
                "to": 31,
                "label": "SUCCESS"
            },
            {
                "from": 43,
                "to": 292,
                "label": "EVAL with clause\nackermann(s(X14), 0, X15) :- ackermann(X14, s(0), X15).\nand substitutionX14 -> T17,\nT1 -> s(T17),\nT2 -> 0,\nT3 -> T18,\nX15 -> T18"
            },
            {
                "from": 43,
                "to": 293,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 48,
                "to": 495,
                "label": "EVAL with clause\nackermann(s(X177), s(X178), X179) :- ','(ackermann(s(X177), X178, X180), ackermann(X177, X180, X179)).\nand substitutionX177 -> T94,\nT1 -> s(T94),\nX178 -> T97,\nT2 -> s(T97),\nT3 -> T96,\nX179 -> T96,\nT95 -> T97"
            },
            {
                "from": 48,
                "to": 496,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 292,
                "to": 295,
                "label": "CASE"
            },
            {
                "from": 295,
                "to": 297,
                "label": "PARALLEL"
            },
            {
                "from": 295,
                "to": 298,
                "label": "PARALLEL"
            },
            {
                "from": 297,
                "to": 299,
                "label": "EVAL with clause\nackermann(0, X22, s(X22)).\nand substitutionT17 -> 0,\nX22 -> s(0),\nT18 -> s(s(0))"
            },
            {
                "from": 297,
                "to": 302,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 298,
                "to": 304,
                "label": "BACKTRACK\nfor clause: ackermann(s(M), 0, Val) :- ackermann(M, s(0), Val)because of non-unification"
            },
            {
                "from": 299,
                "to": 303,
                "label": "SUCCESS"
            },
            {
                "from": 304,
                "to": 305,
                "label": "EVAL with clause\nackermann(s(X32), s(X33), X34) :- ','(ackermann(s(X32), X33, X35), ackermann(X32, X35, X34)).\nand substitutionX32 -> T24,\nT17 -> s(T24),\nX33 -> 0,\nT18 -> T25,\nX34 -> T25"
            },
            {
                "from": 304,
                "to": 306,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 305,
                "to": 307,
                "label": "SPLIT 1"
            },
            {
                "from": 305,
                "to": 308,
                "label": "SPLIT 2\nnew knowledge:\nT24 is ground\nT26 is ground\nreplacements:X35 -> T26"
            },
            {
                "from": 307,
                "to": 309,
                "label": "CASE"
            },
            {
                "from": 308,
                "to": 420,
                "label": "CASE"
            },
            {
                "from": 309,
                "to": 310,
                "label": "BACKTRACK\nfor clause: ackermann(0, N, s(N))because of non-unification"
            },
            {
                "from": 310,
                "to": 311,
                "label": "PARALLEL"
            },
            {
                "from": 310,
                "to": 312,
                "label": "PARALLEL"
            },
            {
                "from": 311,
                "to": 313,
                "label": "ONLY EVAL with clause\nackermann(s(X57), 0, X58) :- ackermann(X57, s(0), X58).\nand substitutionT24 -> T31,\nX57 -> T31,\nX35 -> X59,\nX58 -> X59"
            },
            {
                "from": 312,
                "to": 419,
                "label": "BACKTRACK\nfor clause: ackermann(s(M), s(N), Val) :- ','(ackermann(s(M), N, Val1), ackermann(M, Val1, Val))because of non-unification"
            },
            {
                "from": 313,
                "to": 314,
                "label": "CASE"
            },
            {
                "from": 314,
                "to": 315,
                "label": "PARALLEL"
            },
            {
                "from": 314,
                "to": 316,
                "label": "PARALLEL"
            },
            {
                "from": 315,
                "to": 317,
                "label": "EVAL with clause\nackermann(0, X66, s(X66)).\nand substitutionT31 -> 0,\nX66 -> s(0),\nX59 -> s(s(0))"
            },
            {
                "from": 315,
                "to": 318,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 316,
                "to": 320,
                "label": "BACKTRACK\nfor clause: ackermann(s(M), 0, Val) :- ackermann(M, s(0), Val)because of non-unification"
            },
            {
                "from": 317,
                "to": 319,
                "label": "SUCCESS"
            },
            {
                "from": 320,
                "to": 345,
                "label": "EVAL with clause\nackermann(s(X78), s(X79), X80) :- ','(ackermann(s(X78), X79, X81), ackermann(X78, X81, X80)).\nand substitutionX78 -> T35,\nT31 -> s(T35),\nX79 -> 0,\nX59 -> X82,\nX80 -> X82"
            },
            {
                "from": 320,
                "to": 346,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 345,
                "to": 347,
                "label": "SPLIT 1"
            },
            {
                "from": 345,
                "to": 348,
                "label": "SPLIT 2\nnew knowledge:\nT35 is ground\nT36 is ground\nreplacements:X81 -> T36"
            },
            {
                "from": 347,
                "to": 307,
                "label": "INSTANCE with matching:\nT24 -> T35\nX35 -> X81"
            },
            {
                "from": 348,
                "to": 350,
                "label": "CASE"
            },
            {
                "from": 350,
                "to": 351,
                "label": "PARALLEL"
            },
            {
                "from": 350,
                "to": 352,
                "label": "PARALLEL"
            },
            {
                "from": 351,
                "to": 353,
                "label": "EVAL with clause\nackermann(0, X93, s(X93)).\nand substitutionT35 -> 0,\nT36 -> T43,\nX93 -> T43,\nX82 -> s(T43)"
            },
            {
                "from": 351,
                "to": 354,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 352,
                "to": 400,
                "label": "PARALLEL"
            },
            {
                "from": 352,
                "to": 401,
                "label": "PARALLEL"
            },
            {
                "from": 353,
                "to": 355,
                "label": "SUCCESS"
            },
            {
                "from": 400,
                "to": 405,
                "label": "EVAL with clause\nackermann(s(X106), 0, X107) :- ackermann(X106, s(0), X107).\nand substitutionX106 -> T48,\nT35 -> s(T48),\nT36 -> 0,\nX82 -> X108,\nX107 -> X108"
            },
            {
                "from": 400,
                "to": 408,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 401,
                "to": 411,
                "label": "EVAL with clause\nackermann(s(X120), s(X121), X122) :- ','(ackermann(s(X120), X121, X123), ackermann(X120, X123, X122)).\nand substitutionX120 -> T53,\nT35 -> s(T53),\nX121 -> T54,\nT36 -> s(T54),\nX82 -> X124,\nX122 -> X124"
            },
            {
                "from": 401,
                "to": 412,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 405,
                "to": 313,
                "label": "INSTANCE with matching:\nT31 -> T48\nX59 -> X108"
            },
            {
                "from": 411,
                "to": 415,
                "label": "SPLIT 1"
            },
            {
                "from": 411,
                "to": 416,
                "label": "SPLIT 2\nnew knowledge:\nT53 is ground\nT54 is ground\nT55 is ground\nreplacements:X123 -> T55"
            },
            {
                "from": 415,
                "to": 348,
                "label": "INSTANCE with matching:\nT35 -> s(T53)\nT36 -> T54\nX82 -> X123"
            },
            {
                "from": 416,
                "to": 348,
                "label": "INSTANCE with matching:\nT35 -> T53\nT36 -> T55\nX82 -> X124"
            },
            {
                "from": 420,
                "to": 421,
                "label": "PARALLEL"
            },
            {
                "from": 420,
                "to": 422,
                "label": "PARALLEL"
            },
            {
                "from": 421,
                "to": 423,
                "label": "EVAL with clause\nackermann(0, X140, s(X140)).\nand substitutionT24 -> 0,\nT26 -> T65,\nX140 -> T65,\nT25 -> s(T65)"
            },
            {
                "from": 421,
                "to": 425,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 422,
                "to": 428,
                "label": "PARALLEL"
            },
            {
                "from": 422,
                "to": 429,
                "label": "PARALLEL"
            },
            {
                "from": 423,
                "to": 427,
                "label": "SUCCESS"
            },
            {
                "from": 428,
                "to": 432,
                "label": "EVAL with clause\nackermann(s(X149), 0, X150) :- ackermann(X149, s(0), X150).\nand substitutionX149 -> T74,\nT24 -> s(T74),\nT26 -> 0,\nT25 -> T75,\nX150 -> T75"
            },
            {
                "from": 428,
                "to": 433,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 429,
                "to": 491,
                "label": "EVAL with clause\nackermann(s(X160), s(X161), X162) :- ','(ackermann(s(X160), X161, X163), ackermann(X160, X163, X162)).\nand substitutionX160 -> T82,\nT24 -> s(T82),\nX161 -> T83,\nT26 -> s(T83),\nT25 -> T84,\nX162 -> T84"
            },
            {
                "from": 429,
                "to": 492,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 432,
                "to": 292,
                "label": "INSTANCE with matching:\nT17 -> T74\nT18 -> T75"
            },
            {
                "from": 491,
                "to": 493,
                "label": "SPLIT 1"
            },
            {
                "from": 491,
                "to": 494,
                "label": "SPLIT 2\nnew knowledge:\nT82 is ground\nT83 is ground\nT85 is ground\nreplacements:X163 -> T85"
            },
            {
                "from": 493,
                "to": 348,
                "label": "INSTANCE with matching:\nT35 -> s(T82)\nT36 -> T83\nX82 -> X163"
            },
            {
                "from": 494,
                "to": 308,
                "label": "INSTANCE with matching:\nT24 -> T82\nT26 -> T85\nT25 -> T84"
            },
            {
                "from": 495,
                "to": 497,
                "label": "SPLIT 1"
            },
            {
                "from": 495,
                "to": 498,
                "label": "SPLIT 2\nnew knowledge:\nT94 is ground\nreplacements:X180 -> T98"
            },
            {
                "from": 497,
                "to": 499,
                "label": "CASE"
            },
            {
                "from": 498,
                "to": 1,
                "label": "INSTANCE with matching:\nT1 -> T94\nT2 -> T98\nT3 -> T96"
            },
            {
                "from": 499,
                "to": 500,
                "label": "BACKTRACK\nfor clause: ackermann(0, N, s(N))because of non-unification"
            },
            {
                "from": 500,
                "to": 501,
                "label": "PARALLEL"
            },
            {
                "from": 500,
                "to": 502,
                "label": "PARALLEL"
            },
            {
                "from": 501,
                "to": 503,
                "label": "EVAL with clause\nackermann(s(X198), 0, X199) :- ackermann(X198, s(0), X199).\nand substitutionT94 -> T103,\nX198 -> T103,\nT97 -> 0,\nX180 -> X200,\nX199 -> X200"
            },
            {
                "from": 501,
                "to": 504,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 502,
                "to": 505,
                "label": "EVAL with clause\nackermann(s(X212), s(X213), X214) :- ','(ackermann(s(X212), X213, X215), ackermann(X212, X215, X214)).\nand substitutionT94 -> T108,\nX212 -> T108,\nX213 -> T110,\nT97 -> s(T110),\nX180 -> X216,\nX214 -> X216,\nT109 -> T110"
            },
            {
                "from": 502,
                "to": 506,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 503,
                "to": 313,
                "label": "INSTANCE with matching:\nT31 -> T103\nX59 -> X200"
            },
            {
                "from": 505,
                "to": 507,
                "label": "SPLIT 1"
            },
            {
                "from": 505,
                "to": 508,
                "label": "SPLIT 2\nnew knowledge:\nT108 is ground\nreplacements:X215 -> T111"
            },
            {
                "from": 507,
                "to": 497,
                "label": "INSTANCE with matching:\nT94 -> T108\nT97 -> T110\nX180 -> X215"
            },
            {
                "from": 508,
                "to": 509,
                "label": "CASE"
            },
            {
                "from": 509,
                "to": 510,
                "label": "PARALLEL"
            },
            {
                "from": 509,
                "to": 511,
                "label": "PARALLEL"
            },
            {
                "from": 510,
                "to": 512,
                "label": "EVAL with clause\nackermann(0, X227, s(X227)).\nand substitutionT108 -> 0,\nT111 -> T118,\nX227 -> T118,\nX216 -> s(T118)"
            },
            {
                "from": 510,
                "to": 513,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 511,
                "to": 515,
                "label": "PARALLEL"
            },
            {
                "from": 511,
                "to": 516,
                "label": "PARALLEL"
            },
            {
                "from": 512,
                "to": 514,
                "label": "SUCCESS"
            },
            {
                "from": 515,
                "to": 517,
                "label": "EVAL with clause\nackermann(s(X240), 0, X241) :- ackermann(X240, s(0), X241).\nand substitutionX240 -> T123,\nT108 -> s(T123),\nT111 -> 0,\nX216 -> X242,\nX241 -> X242"
            },
            {
                "from": 515,
                "to": 518,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 516,
                "to": 519,
                "label": "EVAL with clause\nackermann(s(X254), s(X255), X256) :- ','(ackermann(s(X254), X255, X257), ackermann(X254, X257, X256)).\nand substitutionX254 -> T128,\nT108 -> s(T128),\nX255 -> T130,\nT111 -> s(T130),\nX216 -> X258,\nX256 -> X258,\nT129 -> T130"
            },
            {
                "from": 516,
                "to": 520,
                "label": "EVAL-BACKTRACK"
            },
            {
                "from": 517,
                "to": 313,
                "label": "INSTANCE with matching:\nT31 -> T123\nX59 -> X242"
            },
            {
                "from": 519,
                "to": 505,
                "label": "INSTANCE with matching:\nT108 -> T128\nT110 -> T130\nX215 -> X257\nX216 -> X258"
            }
        ],
        "type": "Graph"
    }
}

----------------------------------------

(150)
Obligation:
Q restricted rewrite system:
The TRS R consists of the following rules:

   f1_in(0, s(T8)) -> f1_out1
   f1_in(s(T17), T18) -> U1(f292_in(T17, T18), s(T17), T18)
   U1(f292_out1, s(T17), T18) -> f1_out1
   f1_in(s(T94), T96) -> U2(f495_in(T94, T96), s(T94), T96)
   U2(f495_out1, s(T94), T96) -> f1_out1
   f307_in(T31) -> U3(f313_in(T31), T31)
   U3(f313_out1(X59), T31) -> f307_out1(X59)
   f313_in(0) -> f313_out1(s(s(0)))
   f313_in(s(T35)) -> U4(f345_in(T35), s(T35))
   U4(f345_out1(X81, X82), s(T35)) -> f313_out1(X82)
   f348_in(0, T43) -> f348_out1(s(T43))
   f348_in(s(T48), 0) -> U5(f313_in(T48), s(T48), 0)
   U5(f313_out1(X108), s(T48), 0) -> f348_out1(X108)
   f348_in(s(T53), s(T54)) -> U6(f411_in(T53, T54), s(T53), s(T54))
   U6(f411_out1(X123, X124), s(T53), s(T54)) -> f348_out1(X124)
   f292_in(0, s(s(0))) -> f292_out1
   f292_in(s(T24), T25) -> U7(f305_in(T24, T25), s(T24), T25)
   U7(f305_out1(X35), s(T24), T25) -> f292_out1
   f308_in(0, T65, s(T65)) -> f308_out1
   f308_in(s(T74), 0, T75) -> U8(f292_in(T74, T75), s(T74), 0, T75)
   U8(f292_out1, s(T74), 0, T75) -> f308_out1
   f308_in(s(T82), s(T83), T84) -> U9(f491_in(T82, T83, T84), s(T82), s(T83), T84)
   U9(f491_out1(X163), s(T82), s(T83), T84) -> f308_out1
   f497_in(T103) -> U10(f313_in(T103), T103)
   U10(f313_out1(X200), T103) -> f497_out1
   f497_in(T108) -> U11(f505_in(T108), T108)
   U11(f505_out1, T108) -> f497_out1
   f508_in(0) -> f508_out1
   f508_in(s(T123)) -> U12(f313_in(T123), s(T123))
   U12(f313_out1(X242), s(T123)) -> f508_out1
   f508_in(s(T128)) -> U13(f505_in(T128), s(T128))
   U13(f505_out1, s(T128)) -> f508_out1
   f305_in(T24, T25) -> U14(f307_in(T24), T24, T25)
   U14(f307_out1(T26), T24, T25) -> U15(f308_in(T24, T26, T25), T24, T25, T26)
   U15(f308_out1, T24, T25, T26) -> f305_out1(T26)
   f345_in(T35) -> U16(f307_in(T35), T35)
   U16(f307_out1(T36), T35) -> U17(f348_in(T35, T36), T35, T36)
   U17(f348_out1(X82), T35, T36) -> f345_out1(T36, X82)
   f411_in(T53, T54) -> U18(f348_in(s(T53), T54), T53, T54)
   U18(f348_out1(T55), T53, T54) -> U19(f348_in(T53, T55), T53, T54, T55)
   U19(f348_out1(X124), T53, T54, T55) -> f411_out1(T55, X124)
   f491_in(T82, T83, T84) -> U20(f348_in(s(T82), T83), T82, T83, T84)
   U20(f348_out1(T85), T82, T83, T84) -> U21(f308_in(T82, T85, T84), T82, T83, T84, T85)
   U21(f308_out1, T82, T83, T84, T85) -> f491_out1(T85)
   f495_in(T94, T96) -> U22(f497_in(T94), T94, T96)
   U22(f497_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96)
   U23(f1_out1, T94, T96) -> f495_out1
   f505_in(T108) -> U24(f497_in(T108), T108)
   U24(f497_out1, T108) -> U25(f508_in(T108), T108)
   U25(f508_out1, T108) -> f505_out1

Q is empty.

----------------------------------------

(151) DependencyPairsProof (EQUIVALENT)
Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.
----------------------------------------

(152)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F1_IN(s(T17), T18) -> U1^1(f292_in(T17, T18), s(T17), T18)
   F1_IN(s(T17), T18) -> F292_IN(T17, T18)
   F1_IN(s(T94), T96) -> U2^1(f495_in(T94, T96), s(T94), T96)
   F1_IN(s(T94), T96) -> F495_IN(T94, T96)
   F307_IN(T31) -> U3^1(f313_in(T31), T31)
   F307_IN(T31) -> F313_IN(T31)
   F313_IN(s(T35)) -> U4^1(f345_in(T35), s(T35))
   F313_IN(s(T35)) -> F345_IN(T35)
   F348_IN(s(T48), 0) -> U5^1(f313_in(T48), s(T48), 0)
   F348_IN(s(T48), 0) -> F313_IN(T48)
   F348_IN(s(T53), s(T54)) -> U6^1(f411_in(T53, T54), s(T53), s(T54))
   F348_IN(s(T53), s(T54)) -> F411_IN(T53, T54)
   F292_IN(s(T24), T25) -> U7^1(f305_in(T24, T25), s(T24), T25)
   F292_IN(s(T24), T25) -> F305_IN(T24, T25)
   F308_IN(s(T74), 0, T75) -> U8^1(f292_in(T74, T75), s(T74), 0, T75)
   F308_IN(s(T74), 0, T75) -> F292_IN(T74, T75)
   F308_IN(s(T82), s(T83), T84) -> U9^1(f491_in(T82, T83, T84), s(T82), s(T83), T84)
   F308_IN(s(T82), s(T83), T84) -> F491_IN(T82, T83, T84)
   F497_IN(T103) -> U10^1(f313_in(T103), T103)
   F497_IN(T103) -> F313_IN(T103)
   F497_IN(T108) -> U11^1(f505_in(T108), T108)
   F497_IN(T108) -> F505_IN(T108)
   F508_IN(s(T123)) -> U12^1(f313_in(T123), s(T123))
   F508_IN(s(T123)) -> F313_IN(T123)
   F508_IN(s(T128)) -> U13^1(f505_in(T128), s(T128))
   F508_IN(s(T128)) -> F505_IN(T128)
   F305_IN(T24, T25) -> U14^1(f307_in(T24), T24, T25)
   F305_IN(T24, T25) -> F307_IN(T24)
   U14^1(f307_out1(T26), T24, T25) -> U15^1(f308_in(T24, T26, T25), T24, T25, T26)
   U14^1(f307_out1(T26), T24, T25) -> F308_IN(T24, T26, T25)
   F345_IN(T35) -> U16^1(f307_in(T35), T35)
   F345_IN(T35) -> F307_IN(T35)
   U16^1(f307_out1(T36), T35) -> U17^1(f348_in(T35, T36), T35, T36)
   U16^1(f307_out1(T36), T35) -> F348_IN(T35, T36)
   F411_IN(T53, T54) -> U18^1(f348_in(s(T53), T54), T53, T54)
   F411_IN(T53, T54) -> F348_IN(s(T53), T54)
   U18^1(f348_out1(T55), T53, T54) -> U19^1(f348_in(T53, T55), T53, T54, T55)
   U18^1(f348_out1(T55), T53, T54) -> F348_IN(T53, T55)
   F491_IN(T82, T83, T84) -> U20^1(f348_in(s(T82), T83), T82, T83, T84)
   F491_IN(T82, T83, T84) -> F348_IN(s(T82), T83)
   U20^1(f348_out1(T85), T82, T83, T84) -> U21^1(f308_in(T82, T85, T84), T82, T83, T84, T85)
   U20^1(f348_out1(T85), T82, T83, T84) -> F308_IN(T82, T85, T84)
   F495_IN(T94, T96) -> U22^1(f497_in(T94), T94, T96)
   F495_IN(T94, T96) -> F497_IN(T94)
   U22^1(f497_out1, T94, T96) -> U23^1(f1_in(T94, T96), T94, T96)
   U22^1(f497_out1, T94, T96) -> F1_IN(T94, T96)
   F505_IN(T108) -> U24^1(f497_in(T108), T108)
   F505_IN(T108) -> F497_IN(T108)
   U24^1(f497_out1, T108) -> U25^1(f508_in(T108), T108)
   U24^1(f497_out1, T108) -> F508_IN(T108)

The TRS R consists of the following rules:

   f1_in(0, s(T8)) -> f1_out1
   f1_in(s(T17), T18) -> U1(f292_in(T17, T18), s(T17), T18)
   U1(f292_out1, s(T17), T18) -> f1_out1
   f1_in(s(T94), T96) -> U2(f495_in(T94, T96), s(T94), T96)
   U2(f495_out1, s(T94), T96) -> f1_out1
   f307_in(T31) -> U3(f313_in(T31), T31)
   U3(f313_out1(X59), T31) -> f307_out1(X59)
   f313_in(0) -> f313_out1(s(s(0)))
   f313_in(s(T35)) -> U4(f345_in(T35), s(T35))
   U4(f345_out1(X81, X82), s(T35)) -> f313_out1(X82)
   f348_in(0, T43) -> f348_out1(s(T43))
   f348_in(s(T48), 0) -> U5(f313_in(T48), s(T48), 0)
   U5(f313_out1(X108), s(T48), 0) -> f348_out1(X108)
   f348_in(s(T53), s(T54)) -> U6(f411_in(T53, T54), s(T53), s(T54))
   U6(f411_out1(X123, X124), s(T53), s(T54)) -> f348_out1(X124)
   f292_in(0, s(s(0))) -> f292_out1
   f292_in(s(T24), T25) -> U7(f305_in(T24, T25), s(T24), T25)
   U7(f305_out1(X35), s(T24), T25) -> f292_out1
   f308_in(0, T65, s(T65)) -> f308_out1
   f308_in(s(T74), 0, T75) -> U8(f292_in(T74, T75), s(T74), 0, T75)
   U8(f292_out1, s(T74), 0, T75) -> f308_out1
   f308_in(s(T82), s(T83), T84) -> U9(f491_in(T82, T83, T84), s(T82), s(T83), T84)
   U9(f491_out1(X163), s(T82), s(T83), T84) -> f308_out1
   f497_in(T103) -> U10(f313_in(T103), T103)
   U10(f313_out1(X200), T103) -> f497_out1
   f497_in(T108) -> U11(f505_in(T108), T108)
   U11(f505_out1, T108) -> f497_out1
   f508_in(0) -> f508_out1
   f508_in(s(T123)) -> U12(f313_in(T123), s(T123))
   U12(f313_out1(X242), s(T123)) -> f508_out1
   f508_in(s(T128)) -> U13(f505_in(T128), s(T128))
   U13(f505_out1, s(T128)) -> f508_out1
   f305_in(T24, T25) -> U14(f307_in(T24), T24, T25)
   U14(f307_out1(T26), T24, T25) -> U15(f308_in(T24, T26, T25), T24, T25, T26)
   U15(f308_out1, T24, T25, T26) -> f305_out1(T26)
   f345_in(T35) -> U16(f307_in(T35), T35)
   U16(f307_out1(T36), T35) -> U17(f348_in(T35, T36), T35, T36)
   U17(f348_out1(X82), T35, T36) -> f345_out1(T36, X82)
   f411_in(T53, T54) -> U18(f348_in(s(T53), T54), T53, T54)
   U18(f348_out1(T55), T53, T54) -> U19(f348_in(T53, T55), T53, T54, T55)
   U19(f348_out1(X124), T53, T54, T55) -> f411_out1(T55, X124)
   f491_in(T82, T83, T84) -> U20(f348_in(s(T82), T83), T82, T83, T84)
   U20(f348_out1(T85), T82, T83, T84) -> U21(f308_in(T82, T85, T84), T82, T83, T84, T85)
   U21(f308_out1, T82, T83, T84, T85) -> f491_out1(T85)
   f495_in(T94, T96) -> U22(f497_in(T94), T94, T96)
   U22(f497_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96)
   U23(f1_out1, T94, T96) -> f495_out1
   f505_in(T108) -> U24(f497_in(T108), T108)
   U24(f497_out1, T108) -> U25(f508_in(T108), T108)
   U25(f508_out1, T108) -> f505_out1

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(153) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 4 SCCs with 25 less nodes.
----------------------------------------

(154)
Complex Obligation (AND)

----------------------------------------

(155)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F307_IN(T31) -> F313_IN(T31)
   F313_IN(s(T35)) -> F345_IN(T35)
   F345_IN(T35) -> U16^1(f307_in(T35), T35)
   U16^1(f307_out1(T36), T35) -> F348_IN(T35, T36)
   F348_IN(s(T48), 0) -> F313_IN(T48)
   F348_IN(s(T53), s(T54)) -> F411_IN(T53, T54)
   F411_IN(T53, T54) -> U18^1(f348_in(s(T53), T54), T53, T54)
   U18^1(f348_out1(T55), T53, T54) -> F348_IN(T53, T55)
   F411_IN(T53, T54) -> F348_IN(s(T53), T54)
   F345_IN(T35) -> F307_IN(T35)

The TRS R consists of the following rules:

   f1_in(0, s(T8)) -> f1_out1
   f1_in(s(T17), T18) -> U1(f292_in(T17, T18), s(T17), T18)
   U1(f292_out1, s(T17), T18) -> f1_out1
   f1_in(s(T94), T96) -> U2(f495_in(T94, T96), s(T94), T96)
   U2(f495_out1, s(T94), T96) -> f1_out1
   f307_in(T31) -> U3(f313_in(T31), T31)
   U3(f313_out1(X59), T31) -> f307_out1(X59)
   f313_in(0) -> f313_out1(s(s(0)))
   f313_in(s(T35)) -> U4(f345_in(T35), s(T35))
   U4(f345_out1(X81, X82), s(T35)) -> f313_out1(X82)
   f348_in(0, T43) -> f348_out1(s(T43))
   f348_in(s(T48), 0) -> U5(f313_in(T48), s(T48), 0)
   U5(f313_out1(X108), s(T48), 0) -> f348_out1(X108)
   f348_in(s(T53), s(T54)) -> U6(f411_in(T53, T54), s(T53), s(T54))
   U6(f411_out1(X123, X124), s(T53), s(T54)) -> f348_out1(X124)
   f292_in(0, s(s(0))) -> f292_out1
   f292_in(s(T24), T25) -> U7(f305_in(T24, T25), s(T24), T25)
   U7(f305_out1(X35), s(T24), T25) -> f292_out1
   f308_in(0, T65, s(T65)) -> f308_out1
   f308_in(s(T74), 0, T75) -> U8(f292_in(T74, T75), s(T74), 0, T75)
   U8(f292_out1, s(T74), 0, T75) -> f308_out1
   f308_in(s(T82), s(T83), T84) -> U9(f491_in(T82, T83, T84), s(T82), s(T83), T84)
   U9(f491_out1(X163), s(T82), s(T83), T84) -> f308_out1
   f497_in(T103) -> U10(f313_in(T103), T103)
   U10(f313_out1(X200), T103) -> f497_out1
   f497_in(T108) -> U11(f505_in(T108), T108)
   U11(f505_out1, T108) -> f497_out1
   f508_in(0) -> f508_out1
   f508_in(s(T123)) -> U12(f313_in(T123), s(T123))
   U12(f313_out1(X242), s(T123)) -> f508_out1
   f508_in(s(T128)) -> U13(f505_in(T128), s(T128))
   U13(f505_out1, s(T128)) -> f508_out1
   f305_in(T24, T25) -> U14(f307_in(T24), T24, T25)
   U14(f307_out1(T26), T24, T25) -> U15(f308_in(T24, T26, T25), T24, T25, T26)
   U15(f308_out1, T24, T25, T26) -> f305_out1(T26)
   f345_in(T35) -> U16(f307_in(T35), T35)
   U16(f307_out1(T36), T35) -> U17(f348_in(T35, T36), T35, T36)
   U17(f348_out1(X82), T35, T36) -> f345_out1(T36, X82)
   f411_in(T53, T54) -> U18(f348_in(s(T53), T54), T53, T54)
   U18(f348_out1(T55), T53, T54) -> U19(f348_in(T53, T55), T53, T54, T55)
   U19(f348_out1(X124), T53, T54, T55) -> f411_out1(T55, X124)
   f491_in(T82, T83, T84) -> U20(f348_in(s(T82), T83), T82, T83, T84)
   U20(f348_out1(T85), T82, T83, T84) -> U21(f308_in(T82, T85, T84), T82, T83, T84, T85)
   U21(f308_out1, T82, T83, T84, T85) -> f491_out1(T85)
   f495_in(T94, T96) -> U22(f497_in(T94), T94, T96)
   U22(f497_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96)
   U23(f1_out1, T94, T96) -> f495_out1
   f505_in(T108) -> U24(f497_in(T108), T108)
   U24(f497_out1, T108) -> U25(f508_in(T108), T108)
   U25(f508_out1, T108) -> f505_out1

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(156) QDPOrderProof (EQUIVALENT)
We use the reduction pair processor [LPAR04,JAR06].


The following pairs can be oriented strictly and are deleted.

   F307_IN(T31) -> F313_IN(T31)
   F313_IN(s(T35)) -> F345_IN(T35)
   U16^1(f307_out1(T36), T35) -> F348_IN(T35, T36)
   F345_IN(T35) -> F307_IN(T35)
The remaining pairs can at least be oriented weakly.
Used ordering:  Polynomial Order [NEGPOLO,POLO] with Interpretation:

POL( U16^1_2(x_1, x_2) ) = 2x_1 + x_2 + 2
POL( U18^1_3(x_1, ..., x_3) ) = x_2
POL( f307_in_1(x_1) ) = 0
POL( U3_2(x_1, x_2) ) = 0
POL( f313_in_1(x_1) ) = x_1
POL( f348_in_2(x_1, x_2) ) = max{0, x_1 + 2x_2 - 2}
POL( s_1(x_1) ) = 2x_1 + 2
POL( 0 ) = 2
POL( U5_3(x_1, ..., x_3) ) = 2x_1
POL( U6_3(x_1, ..., x_3) ) = 2
POL( f411_in_2(x_1, x_2) ) = 2x_1 + 2
POL( U4_2(x_1, x_2) ) = 2
POL( f345_in_1(x_1) ) = x_1 + 2
POL( f345_out1_2(x_1, x_2) ) = 0
POL( f313_out1_1(x_1) ) = 1
POL( U16_2(x_1, x_2) ) = 2
POL( f307_out1_1(x_1) ) = 0
POL( U17_3(x_1, ..., x_3) ) = 0
POL( U19_4(x_1, ..., x_4) ) = 0
POL( f348_out1_1(x_1) ) = 2
POL( f411_out1_2(x_1, x_2) ) = 0
POL( U18_3(x_1, ..., x_3) ) = 2x_2
POL( F307_IN_1(x_1) ) = 2x_1 + 1
POL( F313_IN_1(x_1) ) = 2x_1
POL( F345_IN_1(x_1) ) = 2x_1 + 2
POL( F348_IN_2(x_1, x_2) ) = max{0, x_1 - 2}
POL( F411_IN_2(x_1, x_2) ) = 2x_1

The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented:

   f307_in(T31) -> U3(f313_in(T31), T31)
   f348_in(s(T48), 0) -> U5(f313_in(T48), s(T48), 0)
   f348_in(s(T53), s(T54)) -> U6(f411_in(T53, T54), s(T53), s(T54))
   f313_in(s(T35)) -> U4(f345_in(T35), s(T35))
   U4(f345_out1(X81, X82), s(T35)) -> f313_out1(X82)
   f345_in(T35) -> U16(f307_in(T35), T35)
   f313_in(0) -> f313_out1(s(s(0)))
   U3(f313_out1(X59), T31) -> f307_out1(X59)
   U16(f307_out1(T36), T35) -> U17(f348_in(T35, T36), T35, T36)
   U17(f348_out1(X82), T35, T36) -> f345_out1(T36, X82)
   U5(f313_out1(X108), s(T48), 0) -> f348_out1(X108)
   U6(f411_out1(X123, X124), s(T53), s(T54)) -> f348_out1(X124)
   f411_in(T53, T54) -> U18(f348_in(s(T53), T54), T53, T54)
   U18(f348_out1(T55), T53, T54) -> U19(f348_in(T53, T55), T53, T54, T55)
   U19(f348_out1(X124), T53, T54, T55) -> f411_out1(T55, X124)


----------------------------------------

(157)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F345_IN(T35) -> U16^1(f307_in(T35), T35)
   F348_IN(s(T48), 0) -> F313_IN(T48)
   F348_IN(s(T53), s(T54)) -> F411_IN(T53, T54)
   F411_IN(T53, T54) -> U18^1(f348_in(s(T53), T54), T53, T54)
   U18^1(f348_out1(T55), T53, T54) -> F348_IN(T53, T55)
   F411_IN(T53, T54) -> F348_IN(s(T53), T54)

The TRS R consists of the following rules:

   f1_in(0, s(T8)) -> f1_out1
   f1_in(s(T17), T18) -> U1(f292_in(T17, T18), s(T17), T18)
   U1(f292_out1, s(T17), T18) -> f1_out1
   f1_in(s(T94), T96) -> U2(f495_in(T94, T96), s(T94), T96)
   U2(f495_out1, s(T94), T96) -> f1_out1
   f307_in(T31) -> U3(f313_in(T31), T31)
   U3(f313_out1(X59), T31) -> f307_out1(X59)
   f313_in(0) -> f313_out1(s(s(0)))
   f313_in(s(T35)) -> U4(f345_in(T35), s(T35))
   U4(f345_out1(X81, X82), s(T35)) -> f313_out1(X82)
   f348_in(0, T43) -> f348_out1(s(T43))
   f348_in(s(T48), 0) -> U5(f313_in(T48), s(T48), 0)
   U5(f313_out1(X108), s(T48), 0) -> f348_out1(X108)
   f348_in(s(T53), s(T54)) -> U6(f411_in(T53, T54), s(T53), s(T54))
   U6(f411_out1(X123, X124), s(T53), s(T54)) -> f348_out1(X124)
   f292_in(0, s(s(0))) -> f292_out1
   f292_in(s(T24), T25) -> U7(f305_in(T24, T25), s(T24), T25)
   U7(f305_out1(X35), s(T24), T25) -> f292_out1
   f308_in(0, T65, s(T65)) -> f308_out1
   f308_in(s(T74), 0, T75) -> U8(f292_in(T74, T75), s(T74), 0, T75)
   U8(f292_out1, s(T74), 0, T75) -> f308_out1
   f308_in(s(T82), s(T83), T84) -> U9(f491_in(T82, T83, T84), s(T82), s(T83), T84)
   U9(f491_out1(X163), s(T82), s(T83), T84) -> f308_out1
   f497_in(T103) -> U10(f313_in(T103), T103)
   U10(f313_out1(X200), T103) -> f497_out1
   f497_in(T108) -> U11(f505_in(T108), T108)
   U11(f505_out1, T108) -> f497_out1
   f508_in(0) -> f508_out1
   f508_in(s(T123)) -> U12(f313_in(T123), s(T123))
   U12(f313_out1(X242), s(T123)) -> f508_out1
   f508_in(s(T128)) -> U13(f505_in(T128), s(T128))
   U13(f505_out1, s(T128)) -> f508_out1
   f305_in(T24, T25) -> U14(f307_in(T24), T24, T25)
   U14(f307_out1(T26), T24, T25) -> U15(f308_in(T24, T26, T25), T24, T25, T26)
   U15(f308_out1, T24, T25, T26) -> f305_out1(T26)
   f345_in(T35) -> U16(f307_in(T35), T35)
   U16(f307_out1(T36), T35) -> U17(f348_in(T35, T36), T35, T36)
   U17(f348_out1(X82), T35, T36) -> f345_out1(T36, X82)
   f411_in(T53, T54) -> U18(f348_in(s(T53), T54), T53, T54)
   U18(f348_out1(T55), T53, T54) -> U19(f348_in(T53, T55), T53, T54, T55)
   U19(f348_out1(X124), T53, T54, T55) -> f411_out1(T55, X124)
   f491_in(T82, T83, T84) -> U20(f348_in(s(T82), T83), T82, T83, T84)
   U20(f348_out1(T85), T82, T83, T84) -> U21(f308_in(T82, T85, T84), T82, T83, T84, T85)
   U21(f308_out1, T82, T83, T84, T85) -> f491_out1(T85)
   f495_in(T94, T96) -> U22(f497_in(T94), T94, T96)
   U22(f497_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96)
   U23(f1_out1, T94, T96) -> f495_out1
   f505_in(T108) -> U24(f497_in(T108), T108)
   U24(f497_out1, T108) -> U25(f508_in(T108), T108)
   U25(f508_out1, T108) -> f505_out1

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(158) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 2 less nodes.
----------------------------------------

(159)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F348_IN(s(T53), s(T54)) -> F411_IN(T53, T54)
   F411_IN(T53, T54) -> U18^1(f348_in(s(T53), T54), T53, T54)
   U18^1(f348_out1(T55), T53, T54) -> F348_IN(T53, T55)
   F411_IN(T53, T54) -> F348_IN(s(T53), T54)

The TRS R consists of the following rules:

   f1_in(0, s(T8)) -> f1_out1
   f1_in(s(T17), T18) -> U1(f292_in(T17, T18), s(T17), T18)
   U1(f292_out1, s(T17), T18) -> f1_out1
   f1_in(s(T94), T96) -> U2(f495_in(T94, T96), s(T94), T96)
   U2(f495_out1, s(T94), T96) -> f1_out1
   f307_in(T31) -> U3(f313_in(T31), T31)
   U3(f313_out1(X59), T31) -> f307_out1(X59)
   f313_in(0) -> f313_out1(s(s(0)))
   f313_in(s(T35)) -> U4(f345_in(T35), s(T35))
   U4(f345_out1(X81, X82), s(T35)) -> f313_out1(X82)
   f348_in(0, T43) -> f348_out1(s(T43))
   f348_in(s(T48), 0) -> U5(f313_in(T48), s(T48), 0)
   U5(f313_out1(X108), s(T48), 0) -> f348_out1(X108)
   f348_in(s(T53), s(T54)) -> U6(f411_in(T53, T54), s(T53), s(T54))
   U6(f411_out1(X123, X124), s(T53), s(T54)) -> f348_out1(X124)
   f292_in(0, s(s(0))) -> f292_out1
   f292_in(s(T24), T25) -> U7(f305_in(T24, T25), s(T24), T25)
   U7(f305_out1(X35), s(T24), T25) -> f292_out1
   f308_in(0, T65, s(T65)) -> f308_out1
   f308_in(s(T74), 0, T75) -> U8(f292_in(T74, T75), s(T74), 0, T75)
   U8(f292_out1, s(T74), 0, T75) -> f308_out1
   f308_in(s(T82), s(T83), T84) -> U9(f491_in(T82, T83, T84), s(T82), s(T83), T84)
   U9(f491_out1(X163), s(T82), s(T83), T84) -> f308_out1
   f497_in(T103) -> U10(f313_in(T103), T103)
   U10(f313_out1(X200), T103) -> f497_out1
   f497_in(T108) -> U11(f505_in(T108), T108)
   U11(f505_out1, T108) -> f497_out1
   f508_in(0) -> f508_out1
   f508_in(s(T123)) -> U12(f313_in(T123), s(T123))
   U12(f313_out1(X242), s(T123)) -> f508_out1
   f508_in(s(T128)) -> U13(f505_in(T128), s(T128))
   U13(f505_out1, s(T128)) -> f508_out1
   f305_in(T24, T25) -> U14(f307_in(T24), T24, T25)
   U14(f307_out1(T26), T24, T25) -> U15(f308_in(T24, T26, T25), T24, T25, T26)
   U15(f308_out1, T24, T25, T26) -> f305_out1(T26)
   f345_in(T35) -> U16(f307_in(T35), T35)
   U16(f307_out1(T36), T35) -> U17(f348_in(T35, T36), T35, T36)
   U17(f348_out1(X82), T35, T36) -> f345_out1(T36, X82)
   f411_in(T53, T54) -> U18(f348_in(s(T53), T54), T53, T54)
   U18(f348_out1(T55), T53, T54) -> U19(f348_in(T53, T55), T53, T54, T55)
   U19(f348_out1(X124), T53, T54, T55) -> f411_out1(T55, X124)
   f491_in(T82, T83, T84) -> U20(f348_in(s(T82), T83), T82, T83, T84)
   U20(f348_out1(T85), T82, T83, T84) -> U21(f308_in(T82, T85, T84), T82, T83, T84, T85)
   U21(f308_out1, T82, T83, T84, T85) -> f491_out1(T85)
   f495_in(T94, T96) -> U22(f497_in(T94), T94, T96)
   U22(f497_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96)
   U23(f1_out1, T94, T96) -> f495_out1
   f505_in(T108) -> U24(f497_in(T108), T108)
   U24(f497_out1, T108) -> U25(f508_in(T108), T108)
   U25(f508_out1, T108) -> f505_out1

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(160) QDPOrderProof (EQUIVALENT)
We use the reduction pair processor [LPAR04,JAR06].


The following pairs can be oriented strictly and are deleted.

   U18^1(f348_out1(T55), T53, T54) -> F348_IN(T53, T55)
The remaining pairs can at least be oriented weakly.
Used ordering:  Polynomial Order [NEGPOLO,POLO] with Interpretation:

POL( U18^1_3(x_1, ..., x_3) ) = x_2 + 1
POL( f348_in_2(x_1, x_2) ) = 0
POL( s_1(x_1) ) = x_1 + 1
POL( 0 ) = 1
POL( U5_3(x_1, ..., x_3) ) = max{0, 2x_3 - 2}
POL( f313_in_1(x_1) ) = 0
POL( U6_3(x_1, ..., x_3) ) = max{0, x_1 - 2}
POL( f411_in_2(x_1, x_2) ) = 0
POL( U4_2(x_1, x_2) ) = max{0, 2x_1 - 2}
POL( f345_in_1(x_1) ) = 0
POL( f345_out1_2(x_1, x_2) ) = 2x_1
POL( f313_out1_1(x_1) ) = max{0, x_1 - 1}
POL( U16_2(x_1, x_2) ) = max{0, 2x_2 - 2}
POL( f307_in_1(x_1) ) = 0
POL( U3_2(x_1, x_2) ) = max{0, 2x_1 - 2}
POL( f307_out1_1(x_1) ) = 2x_1 + 2
POL( U17_3(x_1, ..., x_3) ) = max{0, 2x_1 - 2}
POL( U19_4(x_1, ..., x_4) ) = max{0, x_1 + 2x_4 - 2}
POL( f348_out1_1(x_1) ) = max{0, x_1 - 2}
POL( f411_out1_2(x_1, x_2) ) = x_1
POL( U18_3(x_1, ..., x_3) ) = 2x_2 + 2
POL( F348_IN_2(x_1, x_2) ) = x_1
POL( F411_IN_2(x_1, x_2) ) = x_1 + 1

The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented:
none


----------------------------------------

(161)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F348_IN(s(T53), s(T54)) -> F411_IN(T53, T54)
   F411_IN(T53, T54) -> U18^1(f348_in(s(T53), T54), T53, T54)
   F411_IN(T53, T54) -> F348_IN(s(T53), T54)

The TRS R consists of the following rules:

   f1_in(0, s(T8)) -> f1_out1
   f1_in(s(T17), T18) -> U1(f292_in(T17, T18), s(T17), T18)
   U1(f292_out1, s(T17), T18) -> f1_out1
   f1_in(s(T94), T96) -> U2(f495_in(T94, T96), s(T94), T96)
   U2(f495_out1, s(T94), T96) -> f1_out1
   f307_in(T31) -> U3(f313_in(T31), T31)
   U3(f313_out1(X59), T31) -> f307_out1(X59)
   f313_in(0) -> f313_out1(s(s(0)))
   f313_in(s(T35)) -> U4(f345_in(T35), s(T35))
   U4(f345_out1(X81, X82), s(T35)) -> f313_out1(X82)
   f348_in(0, T43) -> f348_out1(s(T43))
   f348_in(s(T48), 0) -> U5(f313_in(T48), s(T48), 0)
   U5(f313_out1(X108), s(T48), 0) -> f348_out1(X108)
   f348_in(s(T53), s(T54)) -> U6(f411_in(T53, T54), s(T53), s(T54))
   U6(f411_out1(X123, X124), s(T53), s(T54)) -> f348_out1(X124)
   f292_in(0, s(s(0))) -> f292_out1
   f292_in(s(T24), T25) -> U7(f305_in(T24, T25), s(T24), T25)
   U7(f305_out1(X35), s(T24), T25) -> f292_out1
   f308_in(0, T65, s(T65)) -> f308_out1
   f308_in(s(T74), 0, T75) -> U8(f292_in(T74, T75), s(T74), 0, T75)
   U8(f292_out1, s(T74), 0, T75) -> f308_out1
   f308_in(s(T82), s(T83), T84) -> U9(f491_in(T82, T83, T84), s(T82), s(T83), T84)
   U9(f491_out1(X163), s(T82), s(T83), T84) -> f308_out1
   f497_in(T103) -> U10(f313_in(T103), T103)
   U10(f313_out1(X200), T103) -> f497_out1
   f497_in(T108) -> U11(f505_in(T108), T108)
   U11(f505_out1, T108) -> f497_out1
   f508_in(0) -> f508_out1
   f508_in(s(T123)) -> U12(f313_in(T123), s(T123))
   U12(f313_out1(X242), s(T123)) -> f508_out1
   f508_in(s(T128)) -> U13(f505_in(T128), s(T128))
   U13(f505_out1, s(T128)) -> f508_out1
   f305_in(T24, T25) -> U14(f307_in(T24), T24, T25)
   U14(f307_out1(T26), T24, T25) -> U15(f308_in(T24, T26, T25), T24, T25, T26)
   U15(f308_out1, T24, T25, T26) -> f305_out1(T26)
   f345_in(T35) -> U16(f307_in(T35), T35)
   U16(f307_out1(T36), T35) -> U17(f348_in(T35, T36), T35, T36)
   U17(f348_out1(X82), T35, T36) -> f345_out1(T36, X82)
   f411_in(T53, T54) -> U18(f348_in(s(T53), T54), T53, T54)
   U18(f348_out1(T55), T53, T54) -> U19(f348_in(T53, T55), T53, T54, T55)
   U19(f348_out1(X124), T53, T54, T55) -> f411_out1(T55, X124)
   f491_in(T82, T83, T84) -> U20(f348_in(s(T82), T83), T82, T83, T84)
   U20(f348_out1(T85), T82, T83, T84) -> U21(f308_in(T82, T85, T84), T82, T83, T84, T85)
   U21(f308_out1, T82, T83, T84, T85) -> f491_out1(T85)
   f495_in(T94, T96) -> U22(f497_in(T94), T94, T96)
   U22(f497_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96)
   U23(f1_out1, T94, T96) -> f495_out1
   f505_in(T108) -> U24(f497_in(T108), T108)
   U24(f497_out1, T108) -> U25(f508_in(T108), T108)
   U25(f508_out1, T108) -> f505_out1

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(162) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.
----------------------------------------

(163)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F411_IN(T53, T54) -> F348_IN(s(T53), T54)
   F348_IN(s(T53), s(T54)) -> F411_IN(T53, T54)

The TRS R consists of the following rules:

   f1_in(0, s(T8)) -> f1_out1
   f1_in(s(T17), T18) -> U1(f292_in(T17, T18), s(T17), T18)
   U1(f292_out1, s(T17), T18) -> f1_out1
   f1_in(s(T94), T96) -> U2(f495_in(T94, T96), s(T94), T96)
   U2(f495_out1, s(T94), T96) -> f1_out1
   f307_in(T31) -> U3(f313_in(T31), T31)
   U3(f313_out1(X59), T31) -> f307_out1(X59)
   f313_in(0) -> f313_out1(s(s(0)))
   f313_in(s(T35)) -> U4(f345_in(T35), s(T35))
   U4(f345_out1(X81, X82), s(T35)) -> f313_out1(X82)
   f348_in(0, T43) -> f348_out1(s(T43))
   f348_in(s(T48), 0) -> U5(f313_in(T48), s(T48), 0)
   U5(f313_out1(X108), s(T48), 0) -> f348_out1(X108)
   f348_in(s(T53), s(T54)) -> U6(f411_in(T53, T54), s(T53), s(T54))
   U6(f411_out1(X123, X124), s(T53), s(T54)) -> f348_out1(X124)
   f292_in(0, s(s(0))) -> f292_out1
   f292_in(s(T24), T25) -> U7(f305_in(T24, T25), s(T24), T25)
   U7(f305_out1(X35), s(T24), T25) -> f292_out1
   f308_in(0, T65, s(T65)) -> f308_out1
   f308_in(s(T74), 0, T75) -> U8(f292_in(T74, T75), s(T74), 0, T75)
   U8(f292_out1, s(T74), 0, T75) -> f308_out1
   f308_in(s(T82), s(T83), T84) -> U9(f491_in(T82, T83, T84), s(T82), s(T83), T84)
   U9(f491_out1(X163), s(T82), s(T83), T84) -> f308_out1
   f497_in(T103) -> U10(f313_in(T103), T103)
   U10(f313_out1(X200), T103) -> f497_out1
   f497_in(T108) -> U11(f505_in(T108), T108)
   U11(f505_out1, T108) -> f497_out1
   f508_in(0) -> f508_out1
   f508_in(s(T123)) -> U12(f313_in(T123), s(T123))
   U12(f313_out1(X242), s(T123)) -> f508_out1
   f508_in(s(T128)) -> U13(f505_in(T128), s(T128))
   U13(f505_out1, s(T128)) -> f508_out1
   f305_in(T24, T25) -> U14(f307_in(T24), T24, T25)
   U14(f307_out1(T26), T24, T25) -> U15(f308_in(T24, T26, T25), T24, T25, T26)
   U15(f308_out1, T24, T25, T26) -> f305_out1(T26)
   f345_in(T35) -> U16(f307_in(T35), T35)
   U16(f307_out1(T36), T35) -> U17(f348_in(T35, T36), T35, T36)
   U17(f348_out1(X82), T35, T36) -> f345_out1(T36, X82)
   f411_in(T53, T54) -> U18(f348_in(s(T53), T54), T53, T54)
   U18(f348_out1(T55), T53, T54) -> U19(f348_in(T53, T55), T53, T54, T55)
   U19(f348_out1(X124), T53, T54, T55) -> f411_out1(T55, X124)
   f491_in(T82, T83, T84) -> U20(f348_in(s(T82), T83), T82, T83, T84)
   U20(f348_out1(T85), T82, T83, T84) -> U21(f308_in(T82, T85, T84), T82, T83, T84, T85)
   U21(f308_out1, T82, T83, T84, T85) -> f491_out1(T85)
   f495_in(T94, T96) -> U22(f497_in(T94), T94, T96)
   U22(f497_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96)
   U23(f1_out1, T94, T96) -> f495_out1
   f505_in(T108) -> U24(f497_in(T108), T108)
   U24(f497_out1, T108) -> U25(f508_in(T108), T108)
   U25(f508_out1, T108) -> f505_out1

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(164) UsableRulesProof (EQUIVALENT)
We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.
----------------------------------------

(165)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F411_IN(T53, T54) -> F348_IN(s(T53), T54)
   F348_IN(s(T53), s(T54)) -> F411_IN(T53, T54)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(166) 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:
*F348_IN(s(T53), s(T54)) -> F411_IN(T53, T54)
The graph contains the following edges 1 > 1, 2 > 2


*F411_IN(T53, T54) -> F348_IN(s(T53), T54)
The graph contains the following edges 2 >= 2


----------------------------------------

(167)
YES

----------------------------------------

(168)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F497_IN(T108) -> F505_IN(T108)
   F505_IN(T108) -> U24^1(f497_in(T108), T108)
   U24^1(f497_out1, T108) -> F508_IN(T108)
   F508_IN(s(T128)) -> F505_IN(T128)
   F505_IN(T108) -> F497_IN(T108)

The TRS R consists of the following rules:

   f1_in(0, s(T8)) -> f1_out1
   f1_in(s(T17), T18) -> U1(f292_in(T17, T18), s(T17), T18)
   U1(f292_out1, s(T17), T18) -> f1_out1
   f1_in(s(T94), T96) -> U2(f495_in(T94, T96), s(T94), T96)
   U2(f495_out1, s(T94), T96) -> f1_out1
   f307_in(T31) -> U3(f313_in(T31), T31)
   U3(f313_out1(X59), T31) -> f307_out1(X59)
   f313_in(0) -> f313_out1(s(s(0)))
   f313_in(s(T35)) -> U4(f345_in(T35), s(T35))
   U4(f345_out1(X81, X82), s(T35)) -> f313_out1(X82)
   f348_in(0, T43) -> f348_out1(s(T43))
   f348_in(s(T48), 0) -> U5(f313_in(T48), s(T48), 0)
   U5(f313_out1(X108), s(T48), 0) -> f348_out1(X108)
   f348_in(s(T53), s(T54)) -> U6(f411_in(T53, T54), s(T53), s(T54))
   U6(f411_out1(X123, X124), s(T53), s(T54)) -> f348_out1(X124)
   f292_in(0, s(s(0))) -> f292_out1
   f292_in(s(T24), T25) -> U7(f305_in(T24, T25), s(T24), T25)
   U7(f305_out1(X35), s(T24), T25) -> f292_out1
   f308_in(0, T65, s(T65)) -> f308_out1
   f308_in(s(T74), 0, T75) -> U8(f292_in(T74, T75), s(T74), 0, T75)
   U8(f292_out1, s(T74), 0, T75) -> f308_out1
   f308_in(s(T82), s(T83), T84) -> U9(f491_in(T82, T83, T84), s(T82), s(T83), T84)
   U9(f491_out1(X163), s(T82), s(T83), T84) -> f308_out1
   f497_in(T103) -> U10(f313_in(T103), T103)
   U10(f313_out1(X200), T103) -> f497_out1
   f497_in(T108) -> U11(f505_in(T108), T108)
   U11(f505_out1, T108) -> f497_out1
   f508_in(0) -> f508_out1
   f508_in(s(T123)) -> U12(f313_in(T123), s(T123))
   U12(f313_out1(X242), s(T123)) -> f508_out1
   f508_in(s(T128)) -> U13(f505_in(T128), s(T128))
   U13(f505_out1, s(T128)) -> f508_out1
   f305_in(T24, T25) -> U14(f307_in(T24), T24, T25)
   U14(f307_out1(T26), T24, T25) -> U15(f308_in(T24, T26, T25), T24, T25, T26)
   U15(f308_out1, T24, T25, T26) -> f305_out1(T26)
   f345_in(T35) -> U16(f307_in(T35), T35)
   U16(f307_out1(T36), T35) -> U17(f348_in(T35, T36), T35, T36)
   U17(f348_out1(X82), T35, T36) -> f345_out1(T36, X82)
   f411_in(T53, T54) -> U18(f348_in(s(T53), T54), T53, T54)
   U18(f348_out1(T55), T53, T54) -> U19(f348_in(T53, T55), T53, T54, T55)
   U19(f348_out1(X124), T53, T54, T55) -> f411_out1(T55, X124)
   f491_in(T82, T83, T84) -> U20(f348_in(s(T82), T83), T82, T83, T84)
   U20(f348_out1(T85), T82, T83, T84) -> U21(f308_in(T82, T85, T84), T82, T83, T84, T85)
   U21(f308_out1, T82, T83, T84, T85) -> f491_out1(T85)
   f495_in(T94, T96) -> U22(f497_in(T94), T94, T96)
   U22(f497_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96)
   U23(f1_out1, T94, T96) -> f495_out1
   f505_in(T108) -> U24(f497_in(T108), T108)
   U24(f497_out1, T108) -> U25(f508_in(T108), T108)
   U25(f508_out1, T108) -> f505_out1

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(169) QDPOrderProof (EQUIVALENT)
We use the reduction pair processor [LPAR04,JAR06].


The following pairs can be oriented strictly and are deleted.

   U24^1(f497_out1, T108) -> F508_IN(T108)
   F508_IN(s(T128)) -> F505_IN(T128)
The remaining pairs can at least be oriented weakly.
Used ordering:  Polynomial Order [NEGPOLO,POLO] with Interpretation:

POL( U24^1_2(x_1, x_2) ) = 2x_2 + 2
POL( f497_in_1(x_1) ) = 2
POL( U10_2(x_1, x_2) ) = max{0, 2x_2 - 2}
POL( f313_in_1(x_1) ) = 2x_1
POL( U11_2(x_1, x_2) ) = max{0, 2x_2 - 2}
POL( f505_in_1(x_1) ) = 0
POL( f505_out1 ) = 2
POL( f497_out1 ) = 2
POL( U24_2(x_1, x_2) ) = max{0, 2x_2 - 2}
POL( U25_2(x_1, x_2) ) = max{0, 2x_1 - 2}
POL( f508_in_1(x_1) ) = 2
POL( 0 ) = 0
POL( f508_out1 ) = 1
POL( s_1(x_1) ) = x_1 + 2
POL( U12_2(x_1, x_2) ) = max{0, 2x_1 + 2x_2 - 2}
POL( U13_2(x_1, x_2) ) = max{0, 2x_1 - 2}
POL( f313_out1_1(x_1) ) = max{0, x_1 - 2}
POL( U4_2(x_1, x_2) ) = 2x_1 + 2
POL( f345_in_1(x_1) ) = 0
POL( f345_out1_2(x_1, x_2) ) = x_2
POL( U16_2(x_1, x_2) ) = 2x_2 + 2
POL( f307_in_1(x_1) ) = 2x_1 + 1
POL( U3_2(x_1, x_2) ) = max{0, 2x_1 - 2}
POL( f307_out1_1(x_1) ) = 2x_1 + 2
POL( U17_3(x_1, ..., x_3) ) = max{0, 2x_1 + 2x_3 - 2}
POL( f348_in_2(x_1, x_2) ) = max{0, 2x_2 - 2}
POL( U19_4(x_1, ..., x_4) ) = max{0, 2x_1 - 2}
POL( f348_out1_1(x_1) ) = max{0, 2x_1 - 2}
POL( U5_3(x_1, ..., x_3) ) = 2x_3 + 2
POL( U6_3(x_1, ..., x_3) ) = 2x_1 + x_2 + 2
POL( f411_in_2(x_1, x_2) ) = x_1 + 2
POL( f411_out1_2(x_1, x_2) ) = 2x_1 + 1
POL( U18_3(x_1, ..., x_3) ) = 2
POL( F497_IN_1(x_1) ) = 2x_1 + 2
POL( F505_IN_1(x_1) ) = 2x_1 + 2
POL( F508_IN_1(x_1) ) = 2x_1 + 1

The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented:
none


----------------------------------------

(170)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F497_IN(T108) -> F505_IN(T108)
   F505_IN(T108) -> U24^1(f497_in(T108), T108)
   F505_IN(T108) -> F497_IN(T108)

The TRS R consists of the following rules:

   f1_in(0, s(T8)) -> f1_out1
   f1_in(s(T17), T18) -> U1(f292_in(T17, T18), s(T17), T18)
   U1(f292_out1, s(T17), T18) -> f1_out1
   f1_in(s(T94), T96) -> U2(f495_in(T94, T96), s(T94), T96)
   U2(f495_out1, s(T94), T96) -> f1_out1
   f307_in(T31) -> U3(f313_in(T31), T31)
   U3(f313_out1(X59), T31) -> f307_out1(X59)
   f313_in(0) -> f313_out1(s(s(0)))
   f313_in(s(T35)) -> U4(f345_in(T35), s(T35))
   U4(f345_out1(X81, X82), s(T35)) -> f313_out1(X82)
   f348_in(0, T43) -> f348_out1(s(T43))
   f348_in(s(T48), 0) -> U5(f313_in(T48), s(T48), 0)
   U5(f313_out1(X108), s(T48), 0) -> f348_out1(X108)
   f348_in(s(T53), s(T54)) -> U6(f411_in(T53, T54), s(T53), s(T54))
   U6(f411_out1(X123, X124), s(T53), s(T54)) -> f348_out1(X124)
   f292_in(0, s(s(0))) -> f292_out1
   f292_in(s(T24), T25) -> U7(f305_in(T24, T25), s(T24), T25)
   U7(f305_out1(X35), s(T24), T25) -> f292_out1
   f308_in(0, T65, s(T65)) -> f308_out1
   f308_in(s(T74), 0, T75) -> U8(f292_in(T74, T75), s(T74), 0, T75)
   U8(f292_out1, s(T74), 0, T75) -> f308_out1
   f308_in(s(T82), s(T83), T84) -> U9(f491_in(T82, T83, T84), s(T82), s(T83), T84)
   U9(f491_out1(X163), s(T82), s(T83), T84) -> f308_out1
   f497_in(T103) -> U10(f313_in(T103), T103)
   U10(f313_out1(X200), T103) -> f497_out1
   f497_in(T108) -> U11(f505_in(T108), T108)
   U11(f505_out1, T108) -> f497_out1
   f508_in(0) -> f508_out1
   f508_in(s(T123)) -> U12(f313_in(T123), s(T123))
   U12(f313_out1(X242), s(T123)) -> f508_out1
   f508_in(s(T128)) -> U13(f505_in(T128), s(T128))
   U13(f505_out1, s(T128)) -> f508_out1
   f305_in(T24, T25) -> U14(f307_in(T24), T24, T25)
   U14(f307_out1(T26), T24, T25) -> U15(f308_in(T24, T26, T25), T24, T25, T26)
   U15(f308_out1, T24, T25, T26) -> f305_out1(T26)
   f345_in(T35) -> U16(f307_in(T35), T35)
   U16(f307_out1(T36), T35) -> U17(f348_in(T35, T36), T35, T36)
   U17(f348_out1(X82), T35, T36) -> f345_out1(T36, X82)
   f411_in(T53, T54) -> U18(f348_in(s(T53), T54), T53, T54)
   U18(f348_out1(T55), T53, T54) -> U19(f348_in(T53, T55), T53, T54, T55)
   U19(f348_out1(X124), T53, T54, T55) -> f411_out1(T55, X124)
   f491_in(T82, T83, T84) -> U20(f348_in(s(T82), T83), T82, T83, T84)
   U20(f348_out1(T85), T82, T83, T84) -> U21(f308_in(T82, T85, T84), T82, T83, T84, T85)
   U21(f308_out1, T82, T83, T84, T85) -> f491_out1(T85)
   f495_in(T94, T96) -> U22(f497_in(T94), T94, T96)
   U22(f497_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96)
   U23(f1_out1, T94, T96) -> f495_out1
   f505_in(T108) -> U24(f497_in(T108), T108)
   U24(f497_out1, T108) -> U25(f508_in(T108), T108)
   U25(f508_out1, T108) -> f505_out1

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(171) DependencyGraphProof (EQUIVALENT)
The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.
----------------------------------------

(172)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F505_IN(T108) -> F497_IN(T108)
   F497_IN(T108) -> F505_IN(T108)

The TRS R consists of the following rules:

   f1_in(0, s(T8)) -> f1_out1
   f1_in(s(T17), T18) -> U1(f292_in(T17, T18), s(T17), T18)
   U1(f292_out1, s(T17), T18) -> f1_out1
   f1_in(s(T94), T96) -> U2(f495_in(T94, T96), s(T94), T96)
   U2(f495_out1, s(T94), T96) -> f1_out1
   f307_in(T31) -> U3(f313_in(T31), T31)
   U3(f313_out1(X59), T31) -> f307_out1(X59)
   f313_in(0) -> f313_out1(s(s(0)))
   f313_in(s(T35)) -> U4(f345_in(T35), s(T35))
   U4(f345_out1(X81, X82), s(T35)) -> f313_out1(X82)
   f348_in(0, T43) -> f348_out1(s(T43))
   f348_in(s(T48), 0) -> U5(f313_in(T48), s(T48), 0)
   U5(f313_out1(X108), s(T48), 0) -> f348_out1(X108)
   f348_in(s(T53), s(T54)) -> U6(f411_in(T53, T54), s(T53), s(T54))
   U6(f411_out1(X123, X124), s(T53), s(T54)) -> f348_out1(X124)
   f292_in(0, s(s(0))) -> f292_out1
   f292_in(s(T24), T25) -> U7(f305_in(T24, T25), s(T24), T25)
   U7(f305_out1(X35), s(T24), T25) -> f292_out1
   f308_in(0, T65, s(T65)) -> f308_out1
   f308_in(s(T74), 0, T75) -> U8(f292_in(T74, T75), s(T74), 0, T75)
   U8(f292_out1, s(T74), 0, T75) -> f308_out1
   f308_in(s(T82), s(T83), T84) -> U9(f491_in(T82, T83, T84), s(T82), s(T83), T84)
   U9(f491_out1(X163), s(T82), s(T83), T84) -> f308_out1
   f497_in(T103) -> U10(f313_in(T103), T103)
   U10(f313_out1(X200), T103) -> f497_out1
   f497_in(T108) -> U11(f505_in(T108), T108)
   U11(f505_out1, T108) -> f497_out1
   f508_in(0) -> f508_out1
   f508_in(s(T123)) -> U12(f313_in(T123), s(T123))
   U12(f313_out1(X242), s(T123)) -> f508_out1
   f508_in(s(T128)) -> U13(f505_in(T128), s(T128))
   U13(f505_out1, s(T128)) -> f508_out1
   f305_in(T24, T25) -> U14(f307_in(T24), T24, T25)
   U14(f307_out1(T26), T24, T25) -> U15(f308_in(T24, T26, T25), T24, T25, T26)
   U15(f308_out1, T24, T25, T26) -> f305_out1(T26)
   f345_in(T35) -> U16(f307_in(T35), T35)
   U16(f307_out1(T36), T35) -> U17(f348_in(T35, T36), T35, T36)
   U17(f348_out1(X82), T35, T36) -> f345_out1(T36, X82)
   f411_in(T53, T54) -> U18(f348_in(s(T53), T54), T53, T54)
   U18(f348_out1(T55), T53, T54) -> U19(f348_in(T53, T55), T53, T54, T55)
   U19(f348_out1(X124), T53, T54, T55) -> f411_out1(T55, X124)
   f491_in(T82, T83, T84) -> U20(f348_in(s(T82), T83), T82, T83, T84)
   U20(f348_out1(T85), T82, T83, T84) -> U21(f308_in(T82, T85, T84), T82, T83, T84, T85)
   U21(f308_out1, T82, T83, T84, T85) -> f491_out1(T85)
   f495_in(T94, T96) -> U22(f497_in(T94), T94, T96)
   U22(f497_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96)
   U23(f1_out1, T94, T96) -> f495_out1
   f505_in(T108) -> U24(f497_in(T108), T108)
   U24(f497_out1, T108) -> U25(f508_in(T108), T108)
   U25(f508_out1, T108) -> f505_out1

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(173) UsableRulesProof (EQUIVALENT)
We can use the usable rules and reduction pair processor [LPAR04] with the Ce-compatible extension of the polynomial order that maps every function symbol to the sum of its arguments. Then, we can delete all non-usable rules [FROCOS05] from R.
----------------------------------------

(174)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F505_IN(T108) -> F497_IN(T108)
   F497_IN(T108) -> F505_IN(T108)

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(175) NonTerminationLoopProof (COMPLETE)
We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = F497_IN(T108') evaluates to  t =F497_IN(T108')

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
* Matcher: [ ]
* Semiunifier: [ ]

--------------------------------------------------------------------------------
Rewriting sequence

F497_IN(T108') -> F505_IN(T108')
with rule F497_IN(T108'') -> F505_IN(T108'') at position [] and matcher [T108'' / T108']

F505_IN(T108') -> F497_IN(T108')
with rule F505_IN(T108) -> F497_IN(T108)

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.




----------------------------------------

(176)
NO

----------------------------------------

(177)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F305_IN(T24, T25) -> U14^1(f307_in(T24), T24, T25)
   U14^1(f307_out1(T26), T24, T25) -> F308_IN(T24, T26, T25)
   F308_IN(s(T74), 0, T75) -> F292_IN(T74, T75)
   F292_IN(s(T24), T25) -> F305_IN(T24, T25)
   F308_IN(s(T82), s(T83), T84) -> F491_IN(T82, T83, T84)
   F491_IN(T82, T83, T84) -> U20^1(f348_in(s(T82), T83), T82, T83, T84)
   U20^1(f348_out1(T85), T82, T83, T84) -> F308_IN(T82, T85, T84)

The TRS R consists of the following rules:

   f1_in(0, s(T8)) -> f1_out1
   f1_in(s(T17), T18) -> U1(f292_in(T17, T18), s(T17), T18)
   U1(f292_out1, s(T17), T18) -> f1_out1
   f1_in(s(T94), T96) -> U2(f495_in(T94, T96), s(T94), T96)
   U2(f495_out1, s(T94), T96) -> f1_out1
   f307_in(T31) -> U3(f313_in(T31), T31)
   U3(f313_out1(X59), T31) -> f307_out1(X59)
   f313_in(0) -> f313_out1(s(s(0)))
   f313_in(s(T35)) -> U4(f345_in(T35), s(T35))
   U4(f345_out1(X81, X82), s(T35)) -> f313_out1(X82)
   f348_in(0, T43) -> f348_out1(s(T43))
   f348_in(s(T48), 0) -> U5(f313_in(T48), s(T48), 0)
   U5(f313_out1(X108), s(T48), 0) -> f348_out1(X108)
   f348_in(s(T53), s(T54)) -> U6(f411_in(T53, T54), s(T53), s(T54))
   U6(f411_out1(X123, X124), s(T53), s(T54)) -> f348_out1(X124)
   f292_in(0, s(s(0))) -> f292_out1
   f292_in(s(T24), T25) -> U7(f305_in(T24, T25), s(T24), T25)
   U7(f305_out1(X35), s(T24), T25) -> f292_out1
   f308_in(0, T65, s(T65)) -> f308_out1
   f308_in(s(T74), 0, T75) -> U8(f292_in(T74, T75), s(T74), 0, T75)
   U8(f292_out1, s(T74), 0, T75) -> f308_out1
   f308_in(s(T82), s(T83), T84) -> U9(f491_in(T82, T83, T84), s(T82), s(T83), T84)
   U9(f491_out1(X163), s(T82), s(T83), T84) -> f308_out1
   f497_in(T103) -> U10(f313_in(T103), T103)
   U10(f313_out1(X200), T103) -> f497_out1
   f497_in(T108) -> U11(f505_in(T108), T108)
   U11(f505_out1, T108) -> f497_out1
   f508_in(0) -> f508_out1
   f508_in(s(T123)) -> U12(f313_in(T123), s(T123))
   U12(f313_out1(X242), s(T123)) -> f508_out1
   f508_in(s(T128)) -> U13(f505_in(T128), s(T128))
   U13(f505_out1, s(T128)) -> f508_out1
   f305_in(T24, T25) -> U14(f307_in(T24), T24, T25)
   U14(f307_out1(T26), T24, T25) -> U15(f308_in(T24, T26, T25), T24, T25, T26)
   U15(f308_out1, T24, T25, T26) -> f305_out1(T26)
   f345_in(T35) -> U16(f307_in(T35), T35)
   U16(f307_out1(T36), T35) -> U17(f348_in(T35, T36), T35, T36)
   U17(f348_out1(X82), T35, T36) -> f345_out1(T36, X82)
   f411_in(T53, T54) -> U18(f348_in(s(T53), T54), T53, T54)
   U18(f348_out1(T55), T53, T54) -> U19(f348_in(T53, T55), T53, T54, T55)
   U19(f348_out1(X124), T53, T54, T55) -> f411_out1(T55, X124)
   f491_in(T82, T83, T84) -> U20(f348_in(s(T82), T83), T82, T83, T84)
   U20(f348_out1(T85), T82, T83, T84) -> U21(f308_in(T82, T85, T84), T82, T83, T84, T85)
   U21(f308_out1, T82, T83, T84, T85) -> f491_out1(T85)
   f495_in(T94, T96) -> U22(f497_in(T94), T94, T96)
   U22(f497_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96)
   U23(f1_out1, T94, T96) -> f495_out1
   f505_in(T108) -> U24(f497_in(T108), T108)
   U24(f497_out1, T108) -> U25(f508_in(T108), T108)
   U25(f508_out1, T108) -> f505_out1

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(178) 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:
*U14^1(f307_out1(T26), T24, T25) -> F308_IN(T24, T26, T25)
The graph contains the following edges 2 >= 1, 1 > 2, 3 >= 3


*F292_IN(s(T24), T25) -> F305_IN(T24, T25)
The graph contains the following edges 1 > 1, 2 >= 2


*F305_IN(T24, T25) -> U14^1(f307_in(T24), T24, T25)
The graph contains the following edges 1 >= 2, 2 >= 3


*U20^1(f348_out1(T85), T82, T83, T84) -> F308_IN(T82, T85, T84)
The graph contains the following edges 2 >= 1, 1 > 2, 4 >= 3


*F491_IN(T82, T83, T84) -> U20^1(f348_in(s(T82), T83), T82, T83, T84)
The graph contains the following edges 1 >= 2, 2 >= 3, 3 >= 4


*F308_IN(s(T74), 0, T75) -> F292_IN(T74, T75)
The graph contains the following edges 1 > 1, 3 >= 2


*F308_IN(s(T82), s(T83), T84) -> F491_IN(T82, T83, T84)
The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3


----------------------------------------

(179)
YES

----------------------------------------

(180)
Obligation:
Q DP problem:
The TRS P consists of the following rules:

   F1_IN(s(T94), T96) -> F495_IN(T94, T96)
   F495_IN(T94, T96) -> U22^1(f497_in(T94), T94, T96)
   U22^1(f497_out1, T94, T96) -> F1_IN(T94, T96)

The TRS R consists of the following rules:

   f1_in(0, s(T8)) -> f1_out1
   f1_in(s(T17), T18) -> U1(f292_in(T17, T18), s(T17), T18)
   U1(f292_out1, s(T17), T18) -> f1_out1
   f1_in(s(T94), T96) -> U2(f495_in(T94, T96), s(T94), T96)
   U2(f495_out1, s(T94), T96) -> f1_out1
   f307_in(T31) -> U3(f313_in(T31), T31)
   U3(f313_out1(X59), T31) -> f307_out1(X59)
   f313_in(0) -> f313_out1(s(s(0)))
   f313_in(s(T35)) -> U4(f345_in(T35), s(T35))
   U4(f345_out1(X81, X82), s(T35)) -> f313_out1(X82)
   f348_in(0, T43) -> f348_out1(s(T43))
   f348_in(s(T48), 0) -> U5(f313_in(T48), s(T48), 0)
   U5(f313_out1(X108), s(T48), 0) -> f348_out1(X108)
   f348_in(s(T53), s(T54)) -> U6(f411_in(T53, T54), s(T53), s(T54))
   U6(f411_out1(X123, X124), s(T53), s(T54)) -> f348_out1(X124)
   f292_in(0, s(s(0))) -> f292_out1
   f292_in(s(T24), T25) -> U7(f305_in(T24, T25), s(T24), T25)
   U7(f305_out1(X35), s(T24), T25) -> f292_out1
   f308_in(0, T65, s(T65)) -> f308_out1
   f308_in(s(T74), 0, T75) -> U8(f292_in(T74, T75), s(T74), 0, T75)
   U8(f292_out1, s(T74), 0, T75) -> f308_out1
   f308_in(s(T82), s(T83), T84) -> U9(f491_in(T82, T83, T84), s(T82), s(T83), T84)
   U9(f491_out1(X163), s(T82), s(T83), T84) -> f308_out1
   f497_in(T103) -> U10(f313_in(T103), T103)
   U10(f313_out1(X200), T103) -> f497_out1
   f497_in(T108) -> U11(f505_in(T108), T108)
   U11(f505_out1, T108) -> f497_out1
   f508_in(0) -> f508_out1
   f508_in(s(T123)) -> U12(f313_in(T123), s(T123))
   U12(f313_out1(X242), s(T123)) -> f508_out1
   f508_in(s(T128)) -> U13(f505_in(T128), s(T128))
   U13(f505_out1, s(T128)) -> f508_out1
   f305_in(T24, T25) -> U14(f307_in(T24), T24, T25)
   U14(f307_out1(T26), T24, T25) -> U15(f308_in(T24, T26, T25), T24, T25, T26)
   U15(f308_out1, T24, T25, T26) -> f305_out1(T26)
   f345_in(T35) -> U16(f307_in(T35), T35)
   U16(f307_out1(T36), T35) -> U17(f348_in(T35, T36), T35, T36)
   U17(f348_out1(X82), T35, T36) -> f345_out1(T36, X82)
   f411_in(T53, T54) -> U18(f348_in(s(T53), T54), T53, T54)
   U18(f348_out1(T55), T53, T54) -> U19(f348_in(T53, T55), T53, T54, T55)
   U19(f348_out1(X124), T53, T54, T55) -> f411_out1(T55, X124)
   f491_in(T82, T83, T84) -> U20(f348_in(s(T82), T83), T82, T83, T84)
   U20(f348_out1(T85), T82, T83, T84) -> U21(f308_in(T82, T85, T84), T82, T83, T84, T85)
   U21(f308_out1, T82, T83, T84, T85) -> f491_out1(T85)
   f495_in(T94, T96) -> U22(f497_in(T94), T94, T96)
   U22(f497_out1, T94, T96) -> U23(f1_in(T94, T96), T94, T96)
   U23(f1_out1, T94, T96) -> f495_out1
   f505_in(T108) -> U24(f497_in(T108), T108)
   U24(f497_out1, T108) -> U25(f508_in(T108), T108)
   U25(f508_out1, T108) -> f505_out1

Q is empty.
We have to consider all minimal (P,Q,R)-chains.
----------------------------------------

(181) QDPSizeChangeProof (EQUIVALENT)
By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem. 

From the DPs we obtained the following set of size-change graphs:
*F495_IN(T94, T96) -> U22^1(f497_in(T94), T94, T96)
The graph contains the following edges 1 >= 2, 2 >= 3


*U22^1(f497_out1, T94, T96) -> F1_IN(T94, T96)
The graph contains the following edges 2 >= 1, 3 >= 2


*F1_IN(s(T94), T96) -> F495_IN(T94, T96)
The graph contains the following edges 1 > 1, 2 >= 2


----------------------------------------

(182)
YES
