(0) Obligation:

Clauses:

ack(0, N, s(N)).
ack(s(M), 0, A) :- ack(M, s(0), A).
ack(s(M), s(N), A) :- ','(ack(s(M), N, A1), ack(M, A1, A)).

Queries:

ack(g,g,a).

(1) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph.

(2) Obligation:

Triples:

ack21(T30, X73) :- ack27(T30, X73).
ack27(s(T34), X97) :- ack21(T34, X96).
ack27(s(T34), X97) :- ','(ackc21(T34, T36), ack38(T34, T36, X97)).
ack38(s(T49), 0, X133) :- ack27(T49, X133).
ack38(s(T54), s(T55), X151) :- ack38(s(T54), T55, X150).
ack38(s(T54), s(T55), X151) :- ','(ackc38(s(T54), T55, T57), ack38(T54, T57, X151)).
ack1(s(s(T20)), 0, T22) :- ack21(T20, X40).
ack1(s(s(T20)), 0, T22) :- ','(ackc21(T20, T24), ack1(T20, T24, T22)).
ack1(s(T76), s(0), T71) :- ack27(T76, X200).
ack1(s(T76), s(0), T71) :- ','(ackc27(T76, T77), ack1(T76, T77, T71)).
ack1(s(T84), s(s(T85)), T71) :- ack38(s(T84), T85, X221).
ack1(s(T84), s(s(T85)), T71) :- ','(ackc38(s(T84), T85, T87), ack38(T84, T87, X222)).
ack1(s(T84), s(s(T85)), T71) :- ','(ackc38(s(T84), T85, T87), ','(ackc38(T84, T87, T91), ack1(T84, T91, T71))).

Clauses:

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

Afs:

ack1(x1, x2, x3)  =  ack1(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:
ack1_in: (b,b,f)
ack21_in: (b,f)
ack27_in: (b,f)
ackc21_in: (b,f)
ackc27_in: (b,f)
ackc38_in: (b,b,f)
ack38_in: (b,b,f)
Transforming TRIPLES into the following Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:

ACK1_IN_GGA(s(s(T20)), 0, T22) → U9_GGA(T20, T22, ack21_in_ga(T20, X40))
ACK1_IN_GGA(s(s(T20)), 0, T22) → ACK21_IN_GA(T20, X40)
ACK21_IN_GA(T30, X73) → U1_GA(T30, X73, ack27_in_ga(T30, X73))
ACK21_IN_GA(T30, X73) → ACK27_IN_GA(T30, X73)
ACK27_IN_GA(s(T34), X97) → U2_GA(T34, X97, ack21_in_ga(T34, X96))
ACK27_IN_GA(s(T34), X97) → ACK21_IN_GA(T34, X96)
ACK27_IN_GA(s(T34), X97) → U3_GA(T34, X97, ackc21_in_ga(T34, T36))
U3_GA(T34, X97, ackc21_out_ga(T34, T36)) → U4_GA(T34, X97, ack38_in_gga(T34, T36, X97))
U3_GA(T34, X97, ackc21_out_ga(T34, T36)) → ACK38_IN_GGA(T34, T36, X97)
ACK38_IN_GGA(s(T49), 0, X133) → U5_GGA(T49, X133, ack27_in_ga(T49, X133))
ACK38_IN_GGA(s(T49), 0, X133) → ACK27_IN_GA(T49, X133)
ACK38_IN_GGA(s(T54), s(T55), X151) → U6_GGA(T54, T55, X151, ack38_in_gga(s(T54), T55, X150))
ACK38_IN_GGA(s(T54), s(T55), X151) → ACK38_IN_GGA(s(T54), T55, X150)
ACK38_IN_GGA(s(T54), s(T55), X151) → U7_GGA(T54, T55, X151, ackc38_in_gga(s(T54), T55, T57))
U7_GGA(T54, T55, X151, ackc38_out_gga(s(T54), T55, T57)) → U8_GGA(T54, T55, X151, ack38_in_gga(T54, T57, X151))
U7_GGA(T54, T55, X151, ackc38_out_gga(s(T54), T55, T57)) → ACK38_IN_GGA(T54, T57, X151)
ACK1_IN_GGA(s(s(T20)), 0, T22) → U10_GGA(T20, T22, ackc21_in_ga(T20, T24))
U10_GGA(T20, T22, ackc21_out_ga(T20, T24)) → U11_GGA(T20, T22, ack1_in_gga(T20, T24, T22))
U10_GGA(T20, T22, ackc21_out_ga(T20, T24)) → ACK1_IN_GGA(T20, T24, T22)
ACK1_IN_GGA(s(T76), s(0), T71) → U12_GGA(T76, T71, ack27_in_ga(T76, X200))
ACK1_IN_GGA(s(T76), s(0), T71) → ACK27_IN_GA(T76, X200)
ACK1_IN_GGA(s(T76), s(0), T71) → U13_GGA(T76, T71, ackc27_in_ga(T76, T77))
U13_GGA(T76, T71, ackc27_out_ga(T76, T77)) → U14_GGA(T76, T71, ack1_in_gga(T76, T77, T71))
U13_GGA(T76, T71, ackc27_out_ga(T76, T77)) → ACK1_IN_GGA(T76, T77, T71)
ACK1_IN_GGA(s(T84), s(s(T85)), T71) → U15_GGA(T84, T85, T71, ack38_in_gga(s(T84), T85, X221))
ACK1_IN_GGA(s(T84), s(s(T85)), T71) → ACK38_IN_GGA(s(T84), T85, X221)
ACK1_IN_GGA(s(T84), s(s(T85)), T71) → U16_GGA(T84, T85, T71, ackc38_in_gga(s(T84), T85, T87))
U16_GGA(T84, T85, T71, ackc38_out_gga(s(T84), T85, T87)) → U17_GGA(T84, T85, T71, ack38_in_gga(T84, T87, X222))
U16_GGA(T84, T85, T71, ackc38_out_gga(s(T84), T85, T87)) → ACK38_IN_GGA(T84, T87, X222)
U16_GGA(T84, T85, T71, ackc38_out_gga(s(T84), T85, T87)) → U18_GGA(T84, T85, T71, ackc38_in_gga(T84, T87, T91))
U18_GGA(T84, T85, T71, ackc38_out_gga(T84, T87, T91)) → U19_GGA(T84, T85, T71, ack1_in_gga(T84, T91, T71))
U18_GGA(T84, T85, T71, ackc38_out_gga(T84, T87, T91)) → ACK1_IN_GGA(T84, T91, T71)

The TRS R consists of the following rules:

ackc21_in_ga(T30, X73) → U28_ga(T30, X73, ackc27_in_ga(T30, X73))
ackc27_in_ga(0, s(s(0))) → ackc27_out_ga(0, s(s(0)))
ackc27_in_ga(s(T34), X97) → U29_ga(T34, X97, ackc21_in_ga(T34, T36))
U29_ga(T34, X97, ackc21_out_ga(T34, T36)) → U30_ga(T34, X97, ackc38_in_gga(T34, T36, X97))
ackc38_in_gga(0, T44, s(T44)) → ackc38_out_gga(0, T44, s(T44))
ackc38_in_gga(s(T49), 0, X133) → U31_gga(T49, X133, ackc27_in_ga(T49, X133))
U31_gga(T49, X133, ackc27_out_ga(T49, X133)) → ackc38_out_gga(s(T49), 0, X133)
ackc38_in_gga(s(T54), s(T55), X151) → U32_gga(T54, T55, X151, ackc38_in_gga(s(T54), T55, T57))
U32_gga(T54, T55, X151, ackc38_out_gga(s(T54), T55, T57)) → U33_gga(T54, T55, X151, ackc38_in_gga(T54, T57, X151))
U33_gga(T54, T55, X151, ackc38_out_gga(T54, T57, X151)) → ackc38_out_gga(s(T54), s(T55), X151)
U30_ga(T34, X97, ackc38_out_gga(T34, T36, X97)) → ackc27_out_ga(s(T34), X97)
U28_ga(T30, X73, ackc27_out_ga(T30, X73)) → ackc21_out_ga(T30, X73)

The argument filtering Pi contains the following mapping:
ack1_in_gga(x1, x2, x3)  =  ack1_in_gga(x1, x2)
s(x1)  =  s(x1)
0  =  0
ack21_in_ga(x1, x2)  =  ack21_in_ga(x1)
ack27_in_ga(x1, x2)  =  ack27_in_ga(x1)
ackc21_in_ga(x1, x2)  =  ackc21_in_ga(x1)
U28_ga(x1, x2, x3)  =  U28_ga(x1, x3)
ackc27_in_ga(x1, x2)  =  ackc27_in_ga(x1)
ackc27_out_ga(x1, x2)  =  ackc27_out_ga(x1, x2)
U29_ga(x1, x2, x3)  =  U29_ga(x1, x3)
ackc21_out_ga(x1, x2)  =  ackc21_out_ga(x1, x2)
U30_ga(x1, x2, x3)  =  U30_ga(x1, x3)
ackc38_in_gga(x1, x2, x3)  =  ackc38_in_gga(x1, x2)
ackc38_out_gga(x1, x2, x3)  =  ackc38_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)
ack38_in_gga(x1, x2, x3)  =  ack38_in_gga(x1, x2)
ACK1_IN_GGA(x1, x2, x3)  =  ACK1_IN_GGA(x1, x2)
U9_GGA(x1, x2, x3)  =  U9_GGA(x1, x3)
ACK21_IN_GA(x1, x2)  =  ACK21_IN_GA(x1)
U1_GA(x1, x2, x3)  =  U1_GA(x1, x3)
ACK27_IN_GA(x1, x2)  =  ACK27_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)
ACK38_IN_GGA(x1, x2, x3)  =  ACK38_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:

ACK1_IN_GGA(s(s(T20)), 0, T22) → U9_GGA(T20, T22, ack21_in_ga(T20, X40))
ACK1_IN_GGA(s(s(T20)), 0, T22) → ACK21_IN_GA(T20, X40)
ACK21_IN_GA(T30, X73) → U1_GA(T30, X73, ack27_in_ga(T30, X73))
ACK21_IN_GA(T30, X73) → ACK27_IN_GA(T30, X73)
ACK27_IN_GA(s(T34), X97) → U2_GA(T34, X97, ack21_in_ga(T34, X96))
ACK27_IN_GA(s(T34), X97) → ACK21_IN_GA(T34, X96)
ACK27_IN_GA(s(T34), X97) → U3_GA(T34, X97, ackc21_in_ga(T34, T36))
U3_GA(T34, X97, ackc21_out_ga(T34, T36)) → U4_GA(T34, X97, ack38_in_gga(T34, T36, X97))
U3_GA(T34, X97, ackc21_out_ga(T34, T36)) → ACK38_IN_GGA(T34, T36, X97)
ACK38_IN_GGA(s(T49), 0, X133) → U5_GGA(T49, X133, ack27_in_ga(T49, X133))
ACK38_IN_GGA(s(T49), 0, X133) → ACK27_IN_GA(T49, X133)
ACK38_IN_GGA(s(T54), s(T55), X151) → U6_GGA(T54, T55, X151, ack38_in_gga(s(T54), T55, X150))
ACK38_IN_GGA(s(T54), s(T55), X151) → ACK38_IN_GGA(s(T54), T55, X150)
ACK38_IN_GGA(s(T54), s(T55), X151) → U7_GGA(T54, T55, X151, ackc38_in_gga(s(T54), T55, T57))
U7_GGA(T54, T55, X151, ackc38_out_gga(s(T54), T55, T57)) → U8_GGA(T54, T55, X151, ack38_in_gga(T54, T57, X151))
U7_GGA(T54, T55, X151, ackc38_out_gga(s(T54), T55, T57)) → ACK38_IN_GGA(T54, T57, X151)
ACK1_IN_GGA(s(s(T20)), 0, T22) → U10_GGA(T20, T22, ackc21_in_ga(T20, T24))
U10_GGA(T20, T22, ackc21_out_ga(T20, T24)) → U11_GGA(T20, T22, ack1_in_gga(T20, T24, T22))
U10_GGA(T20, T22, ackc21_out_ga(T20, T24)) → ACK1_IN_GGA(T20, T24, T22)
ACK1_IN_GGA(s(T76), s(0), T71) → U12_GGA(T76, T71, ack27_in_ga(T76, X200))
ACK1_IN_GGA(s(T76), s(0), T71) → ACK27_IN_GA(T76, X200)
ACK1_IN_GGA(s(T76), s(0), T71) → U13_GGA(T76, T71, ackc27_in_ga(T76, T77))
U13_GGA(T76, T71, ackc27_out_ga(T76, T77)) → U14_GGA(T76, T71, ack1_in_gga(T76, T77, T71))
U13_GGA(T76, T71, ackc27_out_ga(T76, T77)) → ACK1_IN_GGA(T76, T77, T71)
ACK1_IN_GGA(s(T84), s(s(T85)), T71) → U15_GGA(T84, T85, T71, ack38_in_gga(s(T84), T85, X221))
ACK1_IN_GGA(s(T84), s(s(T85)), T71) → ACK38_IN_GGA(s(T84), T85, X221)
ACK1_IN_GGA(s(T84), s(s(T85)), T71) → U16_GGA(T84, T85, T71, ackc38_in_gga(s(T84), T85, T87))
U16_GGA(T84, T85, T71, ackc38_out_gga(s(T84), T85, T87)) → U17_GGA(T84, T85, T71, ack38_in_gga(T84, T87, X222))
U16_GGA(T84, T85, T71, ackc38_out_gga(s(T84), T85, T87)) → ACK38_IN_GGA(T84, T87, X222)
U16_GGA(T84, T85, T71, ackc38_out_gga(s(T84), T85, T87)) → U18_GGA(T84, T85, T71, ackc38_in_gga(T84, T87, T91))
U18_GGA(T84, T85, T71, ackc38_out_gga(T84, T87, T91)) → U19_GGA(T84, T85, T71, ack1_in_gga(T84, T91, T71))
U18_GGA(T84, T85, T71, ackc38_out_gga(T84, T87, T91)) → ACK1_IN_GGA(T84, T91, T71)

The TRS R consists of the following rules:

ackc21_in_ga(T30, X73) → U28_ga(T30, X73, ackc27_in_ga(T30, X73))
ackc27_in_ga(0, s(s(0))) → ackc27_out_ga(0, s(s(0)))
ackc27_in_ga(s(T34), X97) → U29_ga(T34, X97, ackc21_in_ga(T34, T36))
U29_ga(T34, X97, ackc21_out_ga(T34, T36)) → U30_ga(T34, X97, ackc38_in_gga(T34, T36, X97))
ackc38_in_gga(0, T44, s(T44)) → ackc38_out_gga(0, T44, s(T44))
ackc38_in_gga(s(T49), 0, X133) → U31_gga(T49, X133, ackc27_in_ga(T49, X133))
U31_gga(T49, X133, ackc27_out_ga(T49, X133)) → ackc38_out_gga(s(T49), 0, X133)
ackc38_in_gga(s(T54), s(T55), X151) → U32_gga(T54, T55, X151, ackc38_in_gga(s(T54), T55, T57))
U32_gga(T54, T55, X151, ackc38_out_gga(s(T54), T55, T57)) → U33_gga(T54, T55, X151, ackc38_in_gga(T54, T57, X151))
U33_gga(T54, T55, X151, ackc38_out_gga(T54, T57, X151)) → ackc38_out_gga(s(T54), s(T55), X151)
U30_ga(T34, X97, ackc38_out_gga(T34, T36, X97)) → ackc27_out_ga(s(T34), X97)
U28_ga(T30, X73, ackc27_out_ga(T30, X73)) → ackc21_out_ga(T30, X73)

The argument filtering Pi contains the following mapping:
ack1_in_gga(x1, x2, x3)  =  ack1_in_gga(x1, x2)
s(x1)  =  s(x1)
0  =  0
ack21_in_ga(x1, x2)  =  ack21_in_ga(x1)
ack27_in_ga(x1, x2)  =  ack27_in_ga(x1)
ackc21_in_ga(x1, x2)  =  ackc21_in_ga(x1)
U28_ga(x1, x2, x3)  =  U28_ga(x1, x3)
ackc27_in_ga(x1, x2)  =  ackc27_in_ga(x1)
ackc27_out_ga(x1, x2)  =  ackc27_out_ga(x1, x2)
U29_ga(x1, x2, x3)  =  U29_ga(x1, x3)
ackc21_out_ga(x1, x2)  =  ackc21_out_ga(x1, x2)
U30_ga(x1, x2, x3)  =  U30_ga(x1, x3)
ackc38_in_gga(x1, x2, x3)  =  ackc38_in_gga(x1, x2)
ackc38_out_gga(x1, x2, x3)  =  ackc38_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)
ack38_in_gga(x1, x2, x3)  =  ack38_in_gga(x1, x2)
ACK1_IN_GGA(x1, x2, x3)  =  ACK1_IN_GGA(x1, x2)
U9_GGA(x1, x2, x3)  =  U9_GGA(x1, x3)
ACK21_IN_GA(x1, x2)  =  ACK21_IN_GA(x1)
U1_GA(x1, x2, x3)  =  U1_GA(x1, x3)
ACK27_IN_GA(x1, x2)  =  ACK27_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)
ACK38_IN_GGA(x1, x2, x3)  =  ACK38_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:

ACK21_IN_GA(T30, X73) → ACK27_IN_GA(T30, X73)
ACK27_IN_GA(s(T34), X97) → ACK21_IN_GA(T34, X96)
ACK27_IN_GA(s(T34), X97) → U3_GA(T34, X97, ackc21_in_ga(T34, T36))
U3_GA(T34, X97, ackc21_out_ga(T34, T36)) → ACK38_IN_GGA(T34, T36, X97)
ACK38_IN_GGA(s(T49), 0, X133) → ACK27_IN_GA(T49, X133)
ACK38_IN_GGA(s(T54), s(T55), X151) → ACK38_IN_GGA(s(T54), T55, X150)
ACK38_IN_GGA(s(T54), s(T55), X151) → U7_GGA(T54, T55, X151, ackc38_in_gga(s(T54), T55, T57))
U7_GGA(T54, T55, X151, ackc38_out_gga(s(T54), T55, T57)) → ACK38_IN_GGA(T54, T57, X151)

The TRS R consists of the following rules:

ackc21_in_ga(T30, X73) → U28_ga(T30, X73, ackc27_in_ga(T30, X73))
ackc27_in_ga(0, s(s(0))) → ackc27_out_ga(0, s(s(0)))
ackc27_in_ga(s(T34), X97) → U29_ga(T34, X97, ackc21_in_ga(T34, T36))
U29_ga(T34, X97, ackc21_out_ga(T34, T36)) → U30_ga(T34, X97, ackc38_in_gga(T34, T36, X97))
ackc38_in_gga(0, T44, s(T44)) → ackc38_out_gga(0, T44, s(T44))
ackc38_in_gga(s(T49), 0, X133) → U31_gga(T49, X133, ackc27_in_ga(T49, X133))
U31_gga(T49, X133, ackc27_out_ga(T49, X133)) → ackc38_out_gga(s(T49), 0, X133)
ackc38_in_gga(s(T54), s(T55), X151) → U32_gga(T54, T55, X151, ackc38_in_gga(s(T54), T55, T57))
U32_gga(T54, T55, X151, ackc38_out_gga(s(T54), T55, T57)) → U33_gga(T54, T55, X151, ackc38_in_gga(T54, T57, X151))
U33_gga(T54, T55, X151, ackc38_out_gga(T54, T57, X151)) → ackc38_out_gga(s(T54), s(T55), X151)
U30_ga(T34, X97, ackc38_out_gga(T34, T36, X97)) → ackc27_out_ga(s(T34), X97)
U28_ga(T30, X73, ackc27_out_ga(T30, X73)) → ackc21_out_ga(T30, X73)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
0  =  0
ackc21_in_ga(x1, x2)  =  ackc21_in_ga(x1)
U28_ga(x1, x2, x3)  =  U28_ga(x1, x3)
ackc27_in_ga(x1, x2)  =  ackc27_in_ga(x1)
ackc27_out_ga(x1, x2)  =  ackc27_out_ga(x1, x2)
U29_ga(x1, x2, x3)  =  U29_ga(x1, x3)
ackc21_out_ga(x1, x2)  =  ackc21_out_ga(x1, x2)
U30_ga(x1, x2, x3)  =  U30_ga(x1, x3)
ackc38_in_gga(x1, x2, x3)  =  ackc38_in_gga(x1, x2)
ackc38_out_gga(x1, x2, x3)  =  ackc38_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)
ACK21_IN_GA(x1, x2)  =  ACK21_IN_GA(x1)
ACK27_IN_GA(x1, x2)  =  ACK27_IN_GA(x1)
U3_GA(x1, x2, x3)  =  U3_GA(x1, x3)
ACK38_IN_GGA(x1, x2, x3)  =  ACK38_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:

ACK21_IN_GA(T30) → ACK27_IN_GA(T30)
ACK27_IN_GA(s(T34)) → ACK21_IN_GA(T34)
ACK27_IN_GA(s(T34)) → U3_GA(T34, ackc21_in_ga(T34))
U3_GA(T34, ackc21_out_ga(T34, T36)) → ACK38_IN_GGA(T34, T36)
ACK38_IN_GGA(s(T49), 0) → ACK27_IN_GA(T49)
ACK38_IN_GGA(s(T54), s(T55)) → ACK38_IN_GGA(s(T54), T55)
ACK38_IN_GGA(s(T54), s(T55)) → U7_GGA(T54, T55, ackc38_in_gga(s(T54), T55))
U7_GGA(T54, T55, ackc38_out_gga(s(T54), T55, T57)) → ACK38_IN_GGA(T54, T57)

The TRS R consists of the following rules:

ackc21_in_ga(T30) → U28_ga(T30, ackc27_in_ga(T30))
ackc27_in_ga(0) → ackc27_out_ga(0, s(s(0)))
ackc27_in_ga(s(T34)) → U29_ga(T34, ackc21_in_ga(T34))
U29_ga(T34, ackc21_out_ga(T34, T36)) → U30_ga(T34, ackc38_in_gga(T34, T36))
ackc38_in_gga(0, T44) → ackc38_out_gga(0, T44, s(T44))
ackc38_in_gga(s(T49), 0) → U31_gga(T49, ackc27_in_ga(T49))
U31_gga(T49, ackc27_out_ga(T49, X133)) → ackc38_out_gga(s(T49), 0, X133)
ackc38_in_gga(s(T54), s(T55)) → U32_gga(T54, T55, ackc38_in_gga(s(T54), T55))
U32_gga(T54, T55, ackc38_out_gga(s(T54), T55, T57)) → U33_gga(T54, T55, ackc38_in_gga(T54, T57))
U33_gga(T54, T55, ackc38_out_gga(T54, T57, X151)) → ackc38_out_gga(s(T54), s(T55), X151)
U30_ga(T34, ackc38_out_gga(T34, T36, X97)) → ackc27_out_ga(s(T34), X97)
U28_ga(T30, ackc27_out_ga(T30, X73)) → ackc21_out_ga(T30, X73)

The set Q consists of the following terms:

ackc21_in_ga(x0)
ackc27_in_ga(x0)
U29_ga(x0, x1)
ackc38_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:

  • ACK27_IN_GA(s(T34)) → ACK21_IN_GA(T34)
    The graph contains the following edges 1 > 1

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

  • ACK21_IN_GA(T30) → ACK27_IN_GA(T30)
    The graph contains the following edges 1 >= 1

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

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

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

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

  • ACK38_IN_GGA(s(T54), s(T55)) → U7_GGA(T54, T55, ackc38_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:

ACK1_IN_GGA(s(s(T20)), 0, T22) → U10_GGA(T20, T22, ackc21_in_ga(T20, T24))
U10_GGA(T20, T22, ackc21_out_ga(T20, T24)) → ACK1_IN_GGA(T20, T24, T22)
ACK1_IN_GGA(s(T76), s(0), T71) → U13_GGA(T76, T71, ackc27_in_ga(T76, T77))
U13_GGA(T76, T71, ackc27_out_ga(T76, T77)) → ACK1_IN_GGA(T76, T77, T71)
ACK1_IN_GGA(s(T84), s(s(T85)), T71) → U16_GGA(T84, T85, T71, ackc38_in_gga(s(T84), T85, T87))
U16_GGA(T84, T85, T71, ackc38_out_gga(s(T84), T85, T87)) → U18_GGA(T84, T85, T71, ackc38_in_gga(T84, T87, T91))
U18_GGA(T84, T85, T71, ackc38_out_gga(T84, T87, T91)) → ACK1_IN_GGA(T84, T91, T71)

The TRS R consists of the following rules:

ackc21_in_ga(T30, X73) → U28_ga(T30, X73, ackc27_in_ga(T30, X73))
ackc27_in_ga(0, s(s(0))) → ackc27_out_ga(0, s(s(0)))
ackc27_in_ga(s(T34), X97) → U29_ga(T34, X97, ackc21_in_ga(T34, T36))
U29_ga(T34, X97, ackc21_out_ga(T34, T36)) → U30_ga(T34, X97, ackc38_in_gga(T34, T36, X97))
ackc38_in_gga(0, T44, s(T44)) → ackc38_out_gga(0, T44, s(T44))
ackc38_in_gga(s(T49), 0, X133) → U31_gga(T49, X133, ackc27_in_ga(T49, X133))
U31_gga(T49, X133, ackc27_out_ga(T49, X133)) → ackc38_out_gga(s(T49), 0, X133)
ackc38_in_gga(s(T54), s(T55), X151) → U32_gga(T54, T55, X151, ackc38_in_gga(s(T54), T55, T57))
U32_gga(T54, T55, X151, ackc38_out_gga(s(T54), T55, T57)) → U33_gga(T54, T55, X151, ackc38_in_gga(T54, T57, X151))
U33_gga(T54, T55, X151, ackc38_out_gga(T54, T57, X151)) → ackc38_out_gga(s(T54), s(T55), X151)
U30_ga(T34, X97, ackc38_out_gga(T34, T36, X97)) → ackc27_out_ga(s(T34), X97)
U28_ga(T30, X73, ackc27_out_ga(T30, X73)) → ackc21_out_ga(T30, X73)

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
0  =  0
ackc21_in_ga(x1, x2)  =  ackc21_in_ga(x1)
U28_ga(x1, x2, x3)  =  U28_ga(x1, x3)
ackc27_in_ga(x1, x2)  =  ackc27_in_ga(x1)
ackc27_out_ga(x1, x2)  =  ackc27_out_ga(x1, x2)
U29_ga(x1, x2, x3)  =  U29_ga(x1, x3)
ackc21_out_ga(x1, x2)  =  ackc21_out_ga(x1, x2)
U30_ga(x1, x2, x3)  =  U30_ga(x1, x3)
ackc38_in_gga(x1, x2, x3)  =  ackc38_in_gga(x1, x2)
ackc38_out_gga(x1, x2, x3)  =  ackc38_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)
ACK1_IN_GGA(x1, x2, x3)  =  ACK1_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:

ACK1_IN_GGA(s(s(T20)), 0) → U10_GGA(T20, ackc21_in_ga(T20))
U10_GGA(T20, ackc21_out_ga(T20, T24)) → ACK1_IN_GGA(T20, T24)
ACK1_IN_GGA(s(T76), s(0)) → U13_GGA(T76, ackc27_in_ga(T76))
U13_GGA(T76, ackc27_out_ga(T76, T77)) → ACK1_IN_GGA(T76, T77)
ACK1_IN_GGA(s(T84), s(s(T85))) → U16_GGA(T84, T85, ackc38_in_gga(s(T84), T85))
U16_GGA(T84, T85, ackc38_out_gga(s(T84), T85, T87)) → U18_GGA(T84, T85, ackc38_in_gga(T84, T87))
U18_GGA(T84, T85, ackc38_out_gga(T84, T87, T91)) → ACK1_IN_GGA(T84, T91)

The TRS R consists of the following rules:

ackc21_in_ga(T30) → U28_ga(T30, ackc27_in_ga(T30))
ackc27_in_ga(0) → ackc27_out_ga(0, s(s(0)))
ackc27_in_ga(s(T34)) → U29_ga(T34, ackc21_in_ga(T34))
U29_ga(T34, ackc21_out_ga(T34, T36)) → U30_ga(T34, ackc38_in_gga(T34, T36))
ackc38_in_gga(0, T44) → ackc38_out_gga(0, T44, s(T44))
ackc38_in_gga(s(T49), 0) → U31_gga(T49, ackc27_in_ga(T49))
U31_gga(T49, ackc27_out_ga(T49, X133)) → ackc38_out_gga(s(T49), 0, X133)
ackc38_in_gga(s(T54), s(T55)) → U32_gga(T54, T55, ackc38_in_gga(s(T54), T55))
U32_gga(T54, T55, ackc38_out_gga(s(T54), T55, T57)) → U33_gga(T54, T55, ackc38_in_gga(T54, T57))
U33_gga(T54, T55, ackc38_out_gga(T54, T57, X151)) → ackc38_out_gga(s(T54), s(T55), X151)
U30_ga(T34, ackc38_out_gga(T34, T36, X97)) → ackc27_out_ga(s(T34), X97)
U28_ga(T30, ackc27_out_ga(T30, X73)) → ackc21_out_ga(T30, X73)

The set Q consists of the following terms:

ackc21_in_ga(x0)
ackc27_in_ga(x0)
U29_ga(x0, x1)
ackc38_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, ackc21_out_ga(T20, T24)) → ACK1_IN_GGA(T20, T24)
    The graph contains the following edges 1 >= 1, 2 > 1, 2 > 2

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

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

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

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

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

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

(16) YES