(0) Obligation:

Clauses:

ackermann(0, N, s(N)).
ackermann(s(M), 0, Res) :- ackermann(M, s(0), Res).
ackermann(s(M), s(N), Res) :- ','(ackermann(s(M), N, Res1), ackermann(M, Res1, Res)).

Queries:

ackermann(g,g,a).

(1) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph.

(2) Obligation:

Triples:

ackermann21(T30, X73) :- ackermann27(T30, X73).
ackermann27(s(T34), X97) :- ackermann21(T34, X96).
ackermann27(s(T34), X97) :- ','(ackermannc21(T34, T36), ackermann38(T34, T36, X97)).
ackermann38(s(T49), 0, X133) :- ackermann27(T49, X133).
ackermann38(s(T54), s(T55), X151) :- ackermann38(s(T54), T55, X150).
ackermann38(s(T54), s(T55), X151) :- ','(ackermannc38(s(T54), T55, T57), ackermann38(T54, T57, X151)).
ackermann1(s(s(T20)), 0, T22) :- ackermann21(T20, X40).
ackermann1(s(s(T20)), 0, T22) :- ','(ackermannc21(T20, T24), ackermann1(T20, T24, T22)).
ackermann1(s(T76), s(0), T71) :- ackermann27(T76, X200).
ackermann1(s(T76), s(0), T71) :- ','(ackermannc27(T76, T77), ackermann1(T76, T77, T71)).
ackermann1(s(T84), s(s(T85)), T71) :- ackermann38(s(T84), T85, X221).
ackermann1(s(T84), s(s(T85)), T71) :- ','(ackermannc38(s(T84), T85, T87), ackermann38(T84, T87, X222)).
ackermann1(s(T84), s(s(T85)), T71) :- ','(ackermannc38(s(T84), T85, T87), ','(ackermannc38(T84, T87, T91), ackermann1(T84, T91, T71))).

Clauses:

ackermannc1(0, T5, s(T5)).
ackermannc1(s(0), 0, s(s(0))).
ackermannc1(s(s(T20)), 0, T22) :- ','(ackermannc21(T20, T24), ackermannc1(T20, T24, T22)).
ackermannc1(s(T76), s(0), T71) :- ','(ackermannc27(T76, T77), ackermannc1(T76, T77, T71)).
ackermannc1(s(T84), s(s(T85)), T71) :- ','(ackermannc38(s(T84), T85, T87), ','(ackermannc38(T84, T87, T91), ackermannc1(T84, T91, T71))).
ackermannc21(T30, X73) :- ackermannc27(T30, X73).
ackermannc27(0, s(s(0))).
ackermannc27(s(T34), X97) :- ','(ackermannc21(T34, T36), ackermannc38(T34, T36, X97)).
ackermannc38(0, T44, s(T44)).
ackermannc38(s(T49), 0, X133) :- ackermannc27(T49, X133).
ackermannc38(s(T54), s(T55), X151) :- ','(ackermannc38(s(T54), T55, T57), ackermannc38(T54, T57, X151)).

Afs:

ackermann1(x1, x2, x3)  =  ackermann1(x1, x2)

(3) TriplesToPiDPProof (SOUND transformation)

We use the technique of [LOPSTR]. With regard to the inferred argument filtering the predicates were used in the following modes:
ackermann1_in: (b,b,f)
ackermann21_in: (b,f)
ackermann27_in: (b,f)
ackermannc21_in: (b,f)
ackermannc27_in: (b,f)
ackermannc38_in: (b,b,f)
ackermann38_in: (b,b,f)
Transforming TRIPLES into the following Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:

ACKERMANN1_IN_GGA(s(s(T20)), 0, T22) → U9_GGA(T20, T22, ackermann21_in_ga(T20, X40))
ACKERMANN1_IN_GGA(s(s(T20)), 0, T22) → ACKERMANN21_IN_GA(T20, X40)
ACKERMANN21_IN_GA(T30, X73) → U1_GA(T30, X73, ackermann27_in_ga(T30, X73))
ACKERMANN21_IN_GA(T30, X73) → ACKERMANN27_IN_GA(T30, X73)
ACKERMANN27_IN_GA(s(T34), X97) → U2_GA(T34, X97, ackermann21_in_ga(T34, X96))
ACKERMANN27_IN_GA(s(T34), X97) → ACKERMANN21_IN_GA(T34, X96)
ACKERMANN27_IN_GA(s(T34), X97) → U3_GA(T34, X97, ackermannc21_in_ga(T34, T36))
U3_GA(T34, X97, ackermannc21_out_ga(T34, T36)) → U4_GA(T34, X97, ackermann38_in_gga(T34, T36, X97))
U3_GA(T34, X97, ackermannc21_out_ga(T34, T36)) → ACKERMANN38_IN_GGA(T34, T36, X97)
ACKERMANN38_IN_GGA(s(T49), 0, X133) → U5_GGA(T49, X133, ackermann27_in_ga(T49, X133))
ACKERMANN38_IN_GGA(s(T49), 0, X133) → ACKERMANN27_IN_GA(T49, X133)
ACKERMANN38_IN_GGA(s(T54), s(T55), X151) → U6_GGA(T54, T55, X151, ackermann38_in_gga(s(T54), T55, X150))
ACKERMANN38_IN_GGA(s(T54), s(T55), X151) → ACKERMANN38_IN_GGA(s(T54), T55, X150)
ACKERMANN38_IN_GGA(s(T54), s(T55), X151) → U7_GGA(T54, T55, X151, ackermannc38_in_gga(s(T54), T55, T57))
U7_GGA(T54, T55, X151, ackermannc38_out_gga(s(T54), T55, T57)) → U8_GGA(T54, T55, X151, ackermann38_in_gga(T54, T57, X151))
U7_GGA(T54, T55, X151, ackermannc38_out_gga(s(T54), T55, T57)) → ACKERMANN38_IN_GGA(T54, T57, X151)
ACKERMANN1_IN_GGA(s(s(T20)), 0, T22) → U10_GGA(T20, T22, ackermannc21_in_ga(T20, T24))
U10_GGA(T20, T22, ackermannc21_out_ga(T20, T24)) → U11_GGA(T20, T22, ackermann1_in_gga(T20, T24, T22))
U10_GGA(T20, T22, ackermannc21_out_ga(T20, T24)) → ACKERMANN1_IN_GGA(T20, T24, T22)
ACKERMANN1_IN_GGA(s(T76), s(0), T71) → U12_GGA(T76, T71, ackermann27_in_ga(T76, X200))
ACKERMANN1_IN_GGA(s(T76), s(0), T71) → ACKERMANN27_IN_GA(T76, X200)
ACKERMANN1_IN_GGA(s(T76), s(0), T71) → U13_GGA(T76, T71, ackermannc27_in_ga(T76, T77))
U13_GGA(T76, T71, ackermannc27_out_ga(T76, T77)) → U14_GGA(T76, T71, ackermann1_in_gga(T76, T77, T71))
U13_GGA(T76, T71, ackermannc27_out_ga(T76, T77)) → ACKERMANN1_IN_GGA(T76, T77, T71)
ACKERMANN1_IN_GGA(s(T84), s(s(T85)), T71) → U15_GGA(T84, T85, T71, ackermann38_in_gga(s(T84), T85, X221))
ACKERMANN1_IN_GGA(s(T84), s(s(T85)), T71) → ACKERMANN38_IN_GGA(s(T84), T85, X221)
ACKERMANN1_IN_GGA(s(T84), s(s(T85)), T71) → U16_GGA(T84, T85, T71, ackermannc38_in_gga(s(T84), T85, T87))
U16_GGA(T84, T85, T71, ackermannc38_out_gga(s(T84), T85, T87)) → U17_GGA(T84, T85, T71, ackermann38_in_gga(T84, T87, X222))
U16_GGA(T84, T85, T71, ackermannc38_out_gga(s(T84), T85, T87)) → ACKERMANN38_IN_GGA(T84, T87, X222)
U16_GGA(T84, T85, T71, ackermannc38_out_gga(s(T84), T85, T87)) → U18_GGA(T84, T85, T71, ackermannc38_in_gga(T84, T87, T91))
U18_GGA(T84, T85, T71, ackermannc38_out_gga(T84, T87, T91)) → U19_GGA(T84, T85, T71, ackermann1_in_gga(T84, T91, T71))
U18_GGA(T84, T85, T71, ackermannc38_out_gga(T84, T87, T91)) → ACKERMANN1_IN_GGA(T84, T91, T71)

The TRS R consists of the following rules:

ackermannc21_in_ga(T30, X73) → U28_ga(T30, X73, ackermannc27_in_ga(T30, X73))
ackermannc27_in_ga(0, s(s(0))) → ackermannc27_out_ga(0, s(s(0)))
ackermannc27_in_ga(s(T34), X97) → U29_ga(T34, X97, ackermannc21_in_ga(T34, T36))
U29_ga(T34, X97, ackermannc21_out_ga(T34, T36)) → U30_ga(T34, X97, ackermannc38_in_gga(T34, T36, X97))
ackermannc38_in_gga(0, T44, s(T44)) → ackermannc38_out_gga(0, T44, s(T44))
ackermannc38_in_gga(s(T49), 0, X133) → U31_gga(T49, X133, ackermannc27_in_ga(T49, X133))
U31_gga(T49, X133, ackermannc27_out_ga(T49, X133)) → ackermannc38_out_gga(s(T49), 0, X133)
ackermannc38_in_gga(s(T54), s(T55), X151) → U32_gga(T54, T55, X151, ackermannc38_in_gga(s(T54), T55, T57))
U32_gga(T54, T55, X151, ackermannc38_out_gga(s(T54), T55, T57)) → U33_gga(T54, T55, X151, ackermannc38_in_gga(T54, T57, X151))
U33_gga(T54, T55, X151, ackermannc38_out_gga(T54, T57, X151)) → ackermannc38_out_gga(s(T54), s(T55), X151)
U30_ga(T34, X97, ackermannc38_out_gga(T34, T36, X97)) → ackermannc27_out_ga(s(T34), X97)
U28_ga(T30, X73, ackermannc27_out_ga(T30, X73)) → ackermannc21_out_ga(T30, X73)

The argument filtering Pi contains the following mapping:
ackermann1_in_gga(x1, x2, x3)  =  ackermann1_in_gga(x1, x2)
s(x1)  =  s(x1)
0  =  0
ackermann21_in_ga(x1, x2)  =  ackermann21_in_ga(x1)
ackermann27_in_ga(x1, x2)  =  ackermann27_in_ga(x1)
ackermannc21_in_ga(x1, x2)  =  ackermannc21_in_ga(x1)
U28_ga(x1, x2, x3)  =  U28_ga(x1, x3)
ackermannc27_in_ga(x1, x2)  =  ackermannc27_in_ga(x1)
ackermannc27_out_ga(x1, x2)  =  ackermannc27_out_ga(x1, x2)
U29_ga(x1, x2, x3)  =  U29_ga(x1, x3)
ackermannc21_out_ga(x1, x2)  =  ackermannc21_out_ga(x1, x2)
U30_ga(x1, x2, x3)  =  U30_ga(x1, x3)
ackermannc38_in_gga(x1, x2, x3)  =  ackermannc38_in_gga(x1, x2)
ackermannc38_out_gga(x1, x2, x3)  =  ackermannc38_out_gga(x1, x2, x3)
U31_gga(x1, x2, x3)  =  U31_gga(x1, x3)
U32_gga(x1, x2, x3, x4)  =  U32_gga(x1, x2, x4)
U33_gga(x1, x2, x3, x4)  =  U33_gga(x1, x2, x4)
ackermann38_in_gga(x1, x2, x3)  =  ackermann38_in_gga(x1, x2)
ACKERMANN1_IN_GGA(x1, x2, x3)  =  ACKERMANN1_IN_GGA(x1, x2)
U9_GGA(x1, x2, x3)  =  U9_GGA(x1, x3)
ACKERMANN21_IN_GA(x1, x2)  =  ACKERMANN21_IN_GA(x1)
U1_GA(x1, x2, x3)  =  U1_GA(x1, x3)
ACKERMANN27_IN_GA(x1, x2)  =  ACKERMANN27_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)
ACKERMANN38_IN_GGA(x1, x2, x3)  =  ACKERMANN38_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)
U10_GGA(x1, x2, x3)  =  U10_GGA(x1, x3)
U11_GGA(x1, x2, x3)  =  U11_GGA(x1, x3)
U12_GGA(x1, x2, x3)  =  U12_GGA(x1, x3)
U13_GGA(x1, x2, x3)  =  U13_GGA(x1, x3)
U14_GGA(x1, x2, x3)  =  U14_GGA(x1, x3)
U15_GGA(x1, x2, x3, x4)  =  U15_GGA(x1, x2, x4)
U16_GGA(x1, x2, x3, x4)  =  U16_GGA(x1, x2, x4)
U17_GGA(x1, x2, x3, x4)  =  U17_GGA(x1, x2, x4)
U18_GGA(x1, x2, x3, x4)  =  U18_GGA(x1, x2, x4)
U19_GGA(x1, x2, x3, x4)  =  U19_GGA(x1, x2, x4)

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

Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES

(4) Obligation:

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

ACKERMANN1_IN_GGA(s(s(T20)), 0, T22) → U9_GGA(T20, T22, ackermann21_in_ga(T20, X40))
ACKERMANN1_IN_GGA(s(s(T20)), 0, T22) → ACKERMANN21_IN_GA(T20, X40)
ACKERMANN21_IN_GA(T30, X73) → U1_GA(T30, X73, ackermann27_in_ga(T30, X73))
ACKERMANN21_IN_GA(T30, X73) → ACKERMANN27_IN_GA(T30, X73)
ACKERMANN27_IN_GA(s(T34), X97) → U2_GA(T34, X97, ackermann21_in_ga(T34, X96))
ACKERMANN27_IN_GA(s(T34), X97) → ACKERMANN21_IN_GA(T34, X96)
ACKERMANN27_IN_GA(s(T34), X97) → U3_GA(T34, X97, ackermannc21_in_ga(T34, T36))
U3_GA(T34, X97, ackermannc21_out_ga(T34, T36)) → U4_GA(T34, X97, ackermann38_in_gga(T34, T36, X97))
U3_GA(T34, X97, ackermannc21_out_ga(T34, T36)) → ACKERMANN38_IN_GGA(T34, T36, X97)
ACKERMANN38_IN_GGA(s(T49), 0, X133) → U5_GGA(T49, X133, ackermann27_in_ga(T49, X133))
ACKERMANN38_IN_GGA(s(T49), 0, X133) → ACKERMANN27_IN_GA(T49, X133)
ACKERMANN38_IN_GGA(s(T54), s(T55), X151) → U6_GGA(T54, T55, X151, ackermann38_in_gga(s(T54), T55, X150))
ACKERMANN38_IN_GGA(s(T54), s(T55), X151) → ACKERMANN38_IN_GGA(s(T54), T55, X150)
ACKERMANN38_IN_GGA(s(T54), s(T55), X151) → U7_GGA(T54, T55, X151, ackermannc38_in_gga(s(T54), T55, T57))
U7_GGA(T54, T55, X151, ackermannc38_out_gga(s(T54), T55, T57)) → U8_GGA(T54, T55, X151, ackermann38_in_gga(T54, T57, X151))
U7_GGA(T54, T55, X151, ackermannc38_out_gga(s(T54), T55, T57)) → ACKERMANN38_IN_GGA(T54, T57, X151)
ACKERMANN1_IN_GGA(s(s(T20)), 0, T22) → U10_GGA(T20, T22, ackermannc21_in_ga(T20, T24))
U10_GGA(T20, T22, ackermannc21_out_ga(T20, T24)) → U11_GGA(T20, T22, ackermann1_in_gga(T20, T24, T22))
U10_GGA(T20, T22, ackermannc21_out_ga(T20, T24)) → ACKERMANN1_IN_GGA(T20, T24, T22)
ACKERMANN1_IN_GGA(s(T76), s(0), T71) → U12_GGA(T76, T71, ackermann27_in_ga(T76, X200))
ACKERMANN1_IN_GGA(s(T76), s(0), T71) → ACKERMANN27_IN_GA(T76, X200)
ACKERMANN1_IN_GGA(s(T76), s(0), T71) → U13_GGA(T76, T71, ackermannc27_in_ga(T76, T77))
U13_GGA(T76, T71, ackermannc27_out_ga(T76, T77)) → U14_GGA(T76, T71, ackermann1_in_gga(T76, T77, T71))
U13_GGA(T76, T71, ackermannc27_out_ga(T76, T77)) → ACKERMANN1_IN_GGA(T76, T77, T71)
ACKERMANN1_IN_GGA(s(T84), s(s(T85)), T71) → U15_GGA(T84, T85, T71, ackermann38_in_gga(s(T84), T85, X221))
ACKERMANN1_IN_GGA(s(T84), s(s(T85)), T71) → ACKERMANN38_IN_GGA(s(T84), T85, X221)
ACKERMANN1_IN_GGA(s(T84), s(s(T85)), T71) → U16_GGA(T84, T85, T71, ackermannc38_in_gga(s(T84), T85, T87))
U16_GGA(T84, T85, T71, ackermannc38_out_gga(s(T84), T85, T87)) → U17_GGA(T84, T85, T71, ackermann38_in_gga(T84, T87, X222))
U16_GGA(T84, T85, T71, ackermannc38_out_gga(s(T84), T85, T87)) → ACKERMANN38_IN_GGA(T84, T87, X222)
U16_GGA(T84, T85, T71, ackermannc38_out_gga(s(T84), T85, T87)) → U18_GGA(T84, T85, T71, ackermannc38_in_gga(T84, T87, T91))
U18_GGA(T84, T85, T71, ackermannc38_out_gga(T84, T87, T91)) → U19_GGA(T84, T85, T71, ackermann1_in_gga(T84, T91, T71))
U18_GGA(T84, T85, T71, ackermannc38_out_gga(T84, T87, T91)) → ACKERMANN1_IN_GGA(T84, T91, T71)

The TRS R consists of the following rules:

ackermannc21_in_ga(T30, X73) → U28_ga(T30, X73, ackermannc27_in_ga(T30, X73))
ackermannc27_in_ga(0, s(s(0))) → ackermannc27_out_ga(0, s(s(0)))
ackermannc27_in_ga(s(T34), X97) → U29_ga(T34, X97, ackermannc21_in_ga(T34, T36))
U29_ga(T34, X97, ackermannc21_out_ga(T34, T36)) → U30_ga(T34, X97, ackermannc38_in_gga(T34, T36, X97))
ackermannc38_in_gga(0, T44, s(T44)) → ackermannc38_out_gga(0, T44, s(T44))
ackermannc38_in_gga(s(T49), 0, X133) → U31_gga(T49, X133, ackermannc27_in_ga(T49, X133))
U31_gga(T49, X133, ackermannc27_out_ga(T49, X133)) → ackermannc38_out_gga(s(T49), 0, X133)
ackermannc38_in_gga(s(T54), s(T55), X151) → U32_gga(T54, T55, X151, ackermannc38_in_gga(s(T54), T55, T57))
U32_gga(T54, T55, X151, ackermannc38_out_gga(s(T54), T55, T57)) → U33_gga(T54, T55, X151, ackermannc38_in_gga(T54, T57, X151))
U33_gga(T54, T55, X151, ackermannc38_out_gga(T54, T57, X151)) → ackermannc38_out_gga(s(T54), s(T55), X151)
U30_ga(T34, X97, ackermannc38_out_gga(T34, T36, X97)) → ackermannc27_out_ga(s(T34), X97)
U28_ga(T30, X73, ackermannc27_out_ga(T30, X73)) → ackermannc21_out_ga(T30, X73)

The argument filtering Pi contains the following mapping:
ackermann1_in_gga(x1, x2, x3)  =  ackermann1_in_gga(x1, x2)
s(x1)  =  s(x1)
0  =  0
ackermann21_in_ga(x1, x2)  =  ackermann21_in_ga(x1)
ackermann27_in_ga(x1, x2)  =  ackermann27_in_ga(x1)
ackermannc21_in_ga(x1, x2)  =  ackermannc21_in_ga(x1)
U28_ga(x1, x2, x3)  =  U28_ga(x1, x3)
ackermannc27_in_ga(x1, x2)  =  ackermannc27_in_ga(x1)
ackermannc27_out_ga(x1, x2)  =  ackermannc27_out_ga(x1, x2)
U29_ga(x1, x2, x3)  =  U29_ga(x1, x3)
ackermannc21_out_ga(x1, x2)  =  ackermannc21_out_ga(x1, x2)
U30_ga(x1, x2, x3)  =  U30_ga(x1, x3)
ackermannc38_in_gga(x1, x2, x3)  =  ackermannc38_in_gga(x1, x2)
ackermannc38_out_gga(x1, x2, x3)  =  ackermannc38_out_gga(x1, x2, x3)
U31_gga(x1, x2, x3)  =  U31_gga(x1, x3)
U32_gga(x1, x2, x3, x4)  =  U32_gga(x1, x2, x4)
U33_gga(x1, x2, x3, x4)  =  U33_gga(x1, x2, x4)
ackermann38_in_gga(x1, x2, x3)  =  ackermann38_in_gga(x1, x2)
ACKERMANN1_IN_GGA(x1, x2, x3)  =  ACKERMANN1_IN_GGA(x1, x2)
U9_GGA(x1, x2, x3)  =  U9_GGA(x1, x3)
ACKERMANN21_IN_GA(x1, x2)  =  ACKERMANN21_IN_GA(x1)
U1_GA(x1, x2, x3)  =  U1_GA(x1, x3)
ACKERMANN27_IN_GA(x1, x2)  =  ACKERMANN27_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)
ACKERMANN38_IN_GGA(x1, x2, x3)  =  ACKERMANN38_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)
U10_GGA(x1, x2, x3)  =  U10_GGA(x1, x3)
U11_GGA(x1, x2, x3)  =  U11_GGA(x1, x3)
U12_GGA(x1, x2, x3)  =  U12_GGA(x1, x3)
U13_GGA(x1, x2, x3)  =  U13_GGA(x1, x3)
U14_GGA(x1, x2, x3)  =  U14_GGA(x1, x3)
U15_GGA(x1, x2, x3, x4)  =  U15_GGA(x1, x2, x4)
U16_GGA(x1, x2, x3, x4)  =  U16_GGA(x1, x2, x4)
U17_GGA(x1, x2, x3, x4)  =  U17_GGA(x1, x2, x4)
U18_GGA(x1, x2, x3, x4)  =  U18_GGA(x1, x2, x4)
U19_GGA(x1, x2, x3, x4)  =  U19_GGA(x1, x2, x4)

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

(5) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 2 SCCs with 17 less nodes.

(6) Complex Obligation (AND)

(7) Obligation:

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

ACKERMANN21_IN_GA(T30, X73) → ACKERMANN27_IN_GA(T30, X73)
ACKERMANN27_IN_GA(s(T34), X97) → ACKERMANN21_IN_GA(T34, X96)
ACKERMANN27_IN_GA(s(T34), X97) → U3_GA(T34, X97, ackermannc21_in_ga(T34, T36))
U3_GA(T34, X97, ackermannc21_out_ga(T34, T36)) → ACKERMANN38_IN_GGA(T34, T36, X97)
ACKERMANN38_IN_GGA(s(T49), 0, X133) → ACKERMANN27_IN_GA(T49, X133)
ACKERMANN38_IN_GGA(s(T54), s(T55), X151) → ACKERMANN38_IN_GGA(s(T54), T55, X150)
ACKERMANN38_IN_GGA(s(T54), s(T55), X151) → U7_GGA(T54, T55, X151, ackermannc38_in_gga(s(T54), T55, T57))
U7_GGA(T54, T55, X151, ackermannc38_out_gga(s(T54), T55, T57)) → ACKERMANN38_IN_GGA(T54, T57, X151)

The TRS R consists of the following rules:

ackermannc21_in_ga(T30, X73) → U28_ga(T30, X73, ackermannc27_in_ga(T30, X73))
ackermannc27_in_ga(0, s(s(0))) → ackermannc27_out_ga(0, s(s(0)))
ackermannc27_in_ga(s(T34), X97) → U29_ga(T34, X97, ackermannc21_in_ga(T34, T36))
U29_ga(T34, X97, ackermannc21_out_ga(T34, T36)) → U30_ga(T34, X97, ackermannc38_in_gga(T34, T36, X97))
ackermannc38_in_gga(0, T44, s(T44)) → ackermannc38_out_gga(0, T44, s(T44))
ackermannc38_in_gga(s(T49), 0, X133) → U31_gga(T49, X133, ackermannc27_in_ga(T49, X133))
U31_gga(T49, X133, ackermannc27_out_ga(T49, X133)) → ackermannc38_out_gga(s(T49), 0, X133)
ackermannc38_in_gga(s(T54), s(T55), X151) → U32_gga(T54, T55, X151, ackermannc38_in_gga(s(T54), T55, T57))
U32_gga(T54, T55, X151, ackermannc38_out_gga(s(T54), T55, T57)) → U33_gga(T54, T55, X151, ackermannc38_in_gga(T54, T57, X151))
U33_gga(T54, T55, X151, ackermannc38_out_gga(T54, T57, X151)) → ackermannc38_out_gga(s(T54), s(T55), X151)
U30_ga(T34, X97, ackermannc38_out_gga(T34, T36, X97)) → ackermannc27_out_ga(s(T34), X97)
U28_ga(T30, X73, ackermannc27_out_ga(T30, X73)) → ackermannc21_out_ga(T30, X73)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
0  =  0
ackermannc21_in_ga(x1, x2)  =  ackermannc21_in_ga(x1)
U28_ga(x1, x2, x3)  =  U28_ga(x1, x3)
ackermannc27_in_ga(x1, x2)  =  ackermannc27_in_ga(x1)
ackermannc27_out_ga(x1, x2)  =  ackermannc27_out_ga(x1, x2)
U29_ga(x1, x2, x3)  =  U29_ga(x1, x3)
ackermannc21_out_ga(x1, x2)  =  ackermannc21_out_ga(x1, x2)
U30_ga(x1, x2, x3)  =  U30_ga(x1, x3)
ackermannc38_in_gga(x1, x2, x3)  =  ackermannc38_in_gga(x1, x2)
ackermannc38_out_gga(x1, x2, x3)  =  ackermannc38_out_gga(x1, x2, x3)
U31_gga(x1, x2, x3)  =  U31_gga(x1, x3)
U32_gga(x1, x2, x3, x4)  =  U32_gga(x1, x2, x4)
U33_gga(x1, x2, x3, x4)  =  U33_gga(x1, x2, x4)
ACKERMANN21_IN_GA(x1, x2)  =  ACKERMANN21_IN_GA(x1)
ACKERMANN27_IN_GA(x1, x2)  =  ACKERMANN27_IN_GA(x1)
U3_GA(x1, x2, x3)  =  U3_GA(x1, x3)
ACKERMANN38_IN_GGA(x1, x2, x3)  =  ACKERMANN38_IN_GGA(x1, x2)
U7_GGA(x1, x2, x3, x4)  =  U7_GGA(x1, x2, x4)

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

(8) PiDPToQDPProof (SOUND transformation)

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

(9) Obligation:

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

ACKERMANN21_IN_GA(T30) → ACKERMANN27_IN_GA(T30)
ACKERMANN27_IN_GA(s(T34)) → ACKERMANN21_IN_GA(T34)
ACKERMANN27_IN_GA(s(T34)) → U3_GA(T34, ackermannc21_in_ga(T34))
U3_GA(T34, ackermannc21_out_ga(T34, T36)) → ACKERMANN38_IN_GGA(T34, T36)
ACKERMANN38_IN_GGA(s(T49), 0) → ACKERMANN27_IN_GA(T49)
ACKERMANN38_IN_GGA(s(T54), s(T55)) → ACKERMANN38_IN_GGA(s(T54), T55)
ACKERMANN38_IN_GGA(s(T54), s(T55)) → U7_GGA(T54, T55, ackermannc38_in_gga(s(T54), T55))
U7_GGA(T54, T55, ackermannc38_out_gga(s(T54), T55, T57)) → ACKERMANN38_IN_GGA(T54, T57)

The TRS R consists of the following rules:

ackermannc21_in_ga(T30) → U28_ga(T30, ackermannc27_in_ga(T30))
ackermannc27_in_ga(0) → ackermannc27_out_ga(0, s(s(0)))
ackermannc27_in_ga(s(T34)) → U29_ga(T34, ackermannc21_in_ga(T34))
U29_ga(T34, ackermannc21_out_ga(T34, T36)) → U30_ga(T34, ackermannc38_in_gga(T34, T36))
ackermannc38_in_gga(0, T44) → ackermannc38_out_gga(0, T44, s(T44))
ackermannc38_in_gga(s(T49), 0) → U31_gga(T49, ackermannc27_in_ga(T49))
U31_gga(T49, ackermannc27_out_ga(T49, X133)) → ackermannc38_out_gga(s(T49), 0, X133)
ackermannc38_in_gga(s(T54), s(T55)) → U32_gga(T54, T55, ackermannc38_in_gga(s(T54), T55))
U32_gga(T54, T55, ackermannc38_out_gga(s(T54), T55, T57)) → U33_gga(T54, T55, ackermannc38_in_gga(T54, T57))
U33_gga(T54, T55, ackermannc38_out_gga(T54, T57, X151)) → ackermannc38_out_gga(s(T54), s(T55), X151)
U30_ga(T34, ackermannc38_out_gga(T34, T36, X97)) → ackermannc27_out_ga(s(T34), X97)
U28_ga(T30, ackermannc27_out_ga(T30, X73)) → ackermannc21_out_ga(T30, X73)

The set Q consists of the following terms:

ackermannc21_in_ga(x0)
ackermannc27_in_ga(x0)
U29_ga(x0, x1)
ackermannc38_in_gga(x0, x1)
U31_gga(x0, x1)
U32_gga(x0, x1, x2)
U33_gga(x0, x1, x2)
U30_ga(x0, x1)
U28_ga(x0, x1)

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

(10) QDPSizeChangeProof (EQUIVALENT transformation)

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:

  • ACKERMANN27_IN_GA(s(T34)) → ACKERMANN21_IN_GA(T34)
    The graph contains the following edges 1 > 1

  • ACKERMANN27_IN_GA(s(T34)) → U3_GA(T34, ackermannc21_in_ga(T34))
    The graph contains the following edges 1 > 1

  • ACKERMANN21_IN_GA(T30) → ACKERMANN27_IN_GA(T30)
    The graph contains the following edges 1 >= 1

  • ACKERMANN38_IN_GGA(s(T49), 0) → ACKERMANN27_IN_GA(T49)
    The graph contains the following edges 1 > 1

  • U3_GA(T34, ackermannc21_out_ga(T34, T36)) → ACKERMANN38_IN_GGA(T34, T36)
    The graph contains the following edges 1 >= 1, 2 > 1, 2 > 2

  • U7_GGA(T54, T55, ackermannc38_out_gga(s(T54), T55, T57)) → ACKERMANN38_IN_GGA(T54, T57)
    The graph contains the following edges 1 >= 1, 3 > 1, 3 > 2

  • ACKERMANN38_IN_GGA(s(T54), s(T55)) → ACKERMANN38_IN_GGA(s(T54), T55)
    The graph contains the following edges 1 >= 1, 2 > 2

  • ACKERMANN38_IN_GGA(s(T54), s(T55)) → U7_GGA(T54, T55, ackermannc38_in_gga(s(T54), T55))
    The graph contains the following edges 1 > 1, 2 > 2

(11) YES

(12) Obligation:

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

ACKERMANN1_IN_GGA(s(s(T20)), 0, T22) → U10_GGA(T20, T22, ackermannc21_in_ga(T20, T24))
U10_GGA(T20, T22, ackermannc21_out_ga(T20, T24)) → ACKERMANN1_IN_GGA(T20, T24, T22)
ACKERMANN1_IN_GGA(s(T76), s(0), T71) → U13_GGA(T76, T71, ackermannc27_in_ga(T76, T77))
U13_GGA(T76, T71, ackermannc27_out_ga(T76, T77)) → ACKERMANN1_IN_GGA(T76, T77, T71)
ACKERMANN1_IN_GGA(s(T84), s(s(T85)), T71) → U16_GGA(T84, T85, T71, ackermannc38_in_gga(s(T84), T85, T87))
U16_GGA(T84, T85, T71, ackermannc38_out_gga(s(T84), T85, T87)) → U18_GGA(T84, T85, T71, ackermannc38_in_gga(T84, T87, T91))
U18_GGA(T84, T85, T71, ackermannc38_out_gga(T84, T87, T91)) → ACKERMANN1_IN_GGA(T84, T91, T71)

The TRS R consists of the following rules:

ackermannc21_in_ga(T30, X73) → U28_ga(T30, X73, ackermannc27_in_ga(T30, X73))
ackermannc27_in_ga(0, s(s(0))) → ackermannc27_out_ga(0, s(s(0)))
ackermannc27_in_ga(s(T34), X97) → U29_ga(T34, X97, ackermannc21_in_ga(T34, T36))
U29_ga(T34, X97, ackermannc21_out_ga(T34, T36)) → U30_ga(T34, X97, ackermannc38_in_gga(T34, T36, X97))
ackermannc38_in_gga(0, T44, s(T44)) → ackermannc38_out_gga(0, T44, s(T44))
ackermannc38_in_gga(s(T49), 0, X133) → U31_gga(T49, X133, ackermannc27_in_ga(T49, X133))
U31_gga(T49, X133, ackermannc27_out_ga(T49, X133)) → ackermannc38_out_gga(s(T49), 0, X133)
ackermannc38_in_gga(s(T54), s(T55), X151) → U32_gga(T54, T55, X151, ackermannc38_in_gga(s(T54), T55, T57))
U32_gga(T54, T55, X151, ackermannc38_out_gga(s(T54), T55, T57)) → U33_gga(T54, T55, X151, ackermannc38_in_gga(T54, T57, X151))
U33_gga(T54, T55, X151, ackermannc38_out_gga(T54, T57, X151)) → ackermannc38_out_gga(s(T54), s(T55), X151)
U30_ga(T34, X97, ackermannc38_out_gga(T34, T36, X97)) → ackermannc27_out_ga(s(T34), X97)
U28_ga(T30, X73, ackermannc27_out_ga(T30, X73)) → ackermannc21_out_ga(T30, X73)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
0  =  0
ackermannc21_in_ga(x1, x2)  =  ackermannc21_in_ga(x1)
U28_ga(x1, x2, x3)  =  U28_ga(x1, x3)
ackermannc27_in_ga(x1, x2)  =  ackermannc27_in_ga(x1)
ackermannc27_out_ga(x1, x2)  =  ackermannc27_out_ga(x1, x2)
U29_ga(x1, x2, x3)  =  U29_ga(x1, x3)
ackermannc21_out_ga(x1, x2)  =  ackermannc21_out_ga(x1, x2)
U30_ga(x1, x2, x3)  =  U30_ga(x1, x3)
ackermannc38_in_gga(x1, x2, x3)  =  ackermannc38_in_gga(x1, x2)
ackermannc38_out_gga(x1, x2, x3)  =  ackermannc38_out_gga(x1, x2, x3)
U31_gga(x1, x2, x3)  =  U31_gga(x1, x3)
U32_gga(x1, x2, x3, x4)  =  U32_gga(x1, x2, x4)
U33_gga(x1, x2, x3, x4)  =  U33_gga(x1, x2, x4)
ACKERMANN1_IN_GGA(x1, x2, x3)  =  ACKERMANN1_IN_GGA(x1, x2)
U10_GGA(x1, x2, x3)  =  U10_GGA(x1, x3)
U13_GGA(x1, x2, x3)  =  U13_GGA(x1, x3)
U16_GGA(x1, x2, x3, x4)  =  U16_GGA(x1, x2, x4)
U18_GGA(x1, x2, x3, x4)  =  U18_GGA(x1, x2, x4)

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

(13) PiDPToQDPProof (SOUND transformation)

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

(14) Obligation:

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

ACKERMANN1_IN_GGA(s(s(T20)), 0) → U10_GGA(T20, ackermannc21_in_ga(T20))
U10_GGA(T20, ackermannc21_out_ga(T20, T24)) → ACKERMANN1_IN_GGA(T20, T24)
ACKERMANN1_IN_GGA(s(T76), s(0)) → U13_GGA(T76, ackermannc27_in_ga(T76))
U13_GGA(T76, ackermannc27_out_ga(T76, T77)) → ACKERMANN1_IN_GGA(T76, T77)
ACKERMANN1_IN_GGA(s(T84), s(s(T85))) → U16_GGA(T84, T85, ackermannc38_in_gga(s(T84), T85))
U16_GGA(T84, T85, ackermannc38_out_gga(s(T84), T85, T87)) → U18_GGA(T84, T85, ackermannc38_in_gga(T84, T87))
U18_GGA(T84, T85, ackermannc38_out_gga(T84, T87, T91)) → ACKERMANN1_IN_GGA(T84, T91)

The TRS R consists of the following rules:

ackermannc21_in_ga(T30) → U28_ga(T30, ackermannc27_in_ga(T30))
ackermannc27_in_ga(0) → ackermannc27_out_ga(0, s(s(0)))
ackermannc27_in_ga(s(T34)) → U29_ga(T34, ackermannc21_in_ga(T34))
U29_ga(T34, ackermannc21_out_ga(T34, T36)) → U30_ga(T34, ackermannc38_in_gga(T34, T36))
ackermannc38_in_gga(0, T44) → ackermannc38_out_gga(0, T44, s(T44))
ackermannc38_in_gga(s(T49), 0) → U31_gga(T49, ackermannc27_in_ga(T49))
U31_gga(T49, ackermannc27_out_ga(T49, X133)) → ackermannc38_out_gga(s(T49), 0, X133)
ackermannc38_in_gga(s(T54), s(T55)) → U32_gga(T54, T55, ackermannc38_in_gga(s(T54), T55))
U32_gga(T54, T55, ackermannc38_out_gga(s(T54), T55, T57)) → U33_gga(T54, T55, ackermannc38_in_gga(T54, T57))
U33_gga(T54, T55, ackermannc38_out_gga(T54, T57, X151)) → ackermannc38_out_gga(s(T54), s(T55), X151)
U30_ga(T34, ackermannc38_out_gga(T34, T36, X97)) → ackermannc27_out_ga(s(T34), X97)
U28_ga(T30, ackermannc27_out_ga(T30, X73)) → ackermannc21_out_ga(T30, X73)

The set Q consists of the following terms:

ackermannc21_in_ga(x0)
ackermannc27_in_ga(x0)
U29_ga(x0, x1)
ackermannc38_in_gga(x0, x1)
U31_gga(x0, x1)
U32_gga(x0, x1, x2)
U33_gga(x0, x1, x2)
U30_ga(x0, x1)
U28_ga(x0, x1)

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

(15) QDPSizeChangeProof (EQUIVALENT transformation)

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:

  • U10_GGA(T20, ackermannc21_out_ga(T20, T24)) → ACKERMANN1_IN_GGA(T20, T24)
    The graph contains the following edges 1 >= 1, 2 > 1, 2 > 2

  • ACKERMANN1_IN_GGA(s(s(T20)), 0) → U10_GGA(T20, ackermannc21_in_ga(T20))
    The graph contains the following edges 1 > 1

  • U16_GGA(T84, T85, ackermannc38_out_gga(s(T84), T85, T87)) → U18_GGA(T84, T85, ackermannc38_in_gga(T84, T87))
    The graph contains the following edges 1 >= 1, 3 > 1, 2 >= 2, 3 > 2

  • U13_GGA(T76, ackermannc27_out_ga(T76, T77)) → ACKERMANN1_IN_GGA(T76, T77)
    The graph contains the following edges 1 >= 1, 2 > 1, 2 > 2

  • U18_GGA(T84, T85, ackermannc38_out_gga(T84, T87, T91)) → ACKERMANN1_IN_GGA(T84, T91)
    The graph contains the following edges 1 >= 1, 3 > 1, 3 > 2

  • ACKERMANN1_IN_GGA(s(T76), s(0)) → U13_GGA(T76, ackermannc27_in_ga(T76))
    The graph contains the following edges 1 > 1

  • ACKERMANN1_IN_GGA(s(T84), s(s(T85))) → U16_GGA(T84, T85, ackermannc38_in_gga(s(T84), T85))
    The graph contains the following edges 1 > 1, 2 > 2

(16) YES