(0) Obligation:

Clauses:

convert([], X1, Z) :- ','(!, eq(Z, 0)).
convert(X, Y, Z) :- ','(head(X, 0), ','(!, ','(tail(X, T), ','(convert(T, Y, U), times(U, Y, Z))))).
convert(X, Y, Z) :- ','(head(X, H), ','(p(H, P), ','(tail(X, T), ','(convert(.(P, T), Y, U), ','(p(Z, U), !))))).
times(0, Y, Z) :- ','(!, eq(Z, 0)).
times(X, Y, Z) :- ','(p(X, P), ','(times(P, Y, U), plus(Y, U, Z))).
plus(0, Y, Z) :- ','(!, eq(Y, Z)).
plus(X, Y, Z) :- ','(p(X, P), ','(plus(P, Y, U), ','(p(Z, U), !))).
head([], X2).
head(.(H, X3), H).
tail([], []).
tail(.(X4, Xs), Xs).
p(s(X), X).
p(0, 0).
eq(X, X).

Query: convert(g,g,a)

(1) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph DT10.

(2) Obligation:

Triples:

convertA(.(0, X1), X2, X3) :- convertA(X1, X2, X4).
convertA(.(0, X1), X2, X3) :- ','(convertcA(X1, X2, X4), timesB(X4, X2, X3)).
convertA(.(s(X1), X2), X3, X4) :- convertC(.(X1, X2), X3, X5).
timesB(s(X1), X2, X3) :- timesB(X1, X2, X4).
timesB(s(X1), X2, X3) :- ','(timescB(X1, X2, X4), plusD(X2, X4, X3)).
plusD(s(X1), X2, X3) :- plusD(X1, X2, X4).
convertC(.(0, X1), X2, X3) :- convertA(X1, X2, X4).
convertC(.(0, X1), X2, X3) :- ','(convertcA(X1, X2, s(X4)), timesB(X4, X2, X5)).
convertC(.(0, X1), s(X2), X3) :- ','(convertcA(X1, s(X2), s(X4)), ','(timescB(X4, s(X2), X5), plusD(X2, X5, X6))).
convertC(.(s(X1), X2), X3, X4) :- convertC(.(X1, X2), X3, X5).

Clauses:

convertcA([], X1, 0).
convertcA(.(0, X1), X2, X3) :- ','(convertcA(X1, X2, X4), timescB(X4, X2, X3)).
convertcA(.(s(X1), X2), X3, s(X4)) :- convertcC(.(X1, X2), X3, X4).
timescB(0, X1, 0).
timescB(s(X1), X2, X3) :- ','(timescB(X1, X2, X4), pluscD(X2, X4, X3)).
pluscD(0, X1, X1).
pluscD(s(X1), X2, s(X3)) :- pluscD(X1, X2, X3).
convertcC([], X1, 0).
convertcC(.(0, X1), X2, 0) :- convertcA(X1, X2, 0).
convertcC(.(0, X1), 0, X2) :- ','(convertcA(X1, 0, s(X3)), timescB(X3, 0, X2)).
convertcC(.(0, X1), s(X2), s(X3)) :- ','(convertcA(X1, s(X2), s(X4)), ','(timescB(X4, s(X2), X5), pluscD(X2, X5, X3))).
convertcC(.(0, X1), s(X2), 0) :- ','(convertcA(X1, s(X2), s(X3)), ','(timescB(X3, s(X2), X4), pluscD(X2, X4, 0))).
convertcC(.(s(X1), X2), X3, s(X4)) :- convertcC(.(X1, X2), X3, X4).
convertcC(.(s(X1), X2), X3, 0) :- convertcC(.(X1, X2), X3, 0).

Afs:

convertC(x1, x2, x3)  =  convertC(x1, x2)

(3) TriplesToPiDPProof (SOUND transformation)

We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes:
convertC_in: (b,b,f)
convertA_in: (b,b,f)
convertcA_in: (b,b,f) (b,b,b)
convertcC_in: (b,b,f) (b,b,b)
timescB_in: (b,b,b) (b,b,f)
pluscD_in: (b,b,f) (b,b,b)
timesB_in: (b,b,f)
plusD_in: (b,b,f)
Transforming TRIPLES into the following Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:

CONVERTC_IN_GGA(.(0, X1), X2, X3) → U9_GGA(X1, X2, X3, convertA_in_gga(X1, X2, X4))
CONVERTC_IN_GGA(.(0, X1), X2, X3) → CONVERTA_IN_GGA(X1, X2, X4)
CONVERTA_IN_GGA(.(0, X1), X2, X3) → U1_GGA(X1, X2, X3, convertA_in_gga(X1, X2, X4))
CONVERTA_IN_GGA(.(0, X1), X2, X3) → CONVERTA_IN_GGA(X1, X2, X4)
CONVERTA_IN_GGA(.(0, X1), X2, X3) → U2_GGA(X1, X2, X3, convertcA_in_gga(X1, X2, X4))
U2_GGA(X1, X2, X3, convertcA_out_gga(X1, X2, X4)) → U3_GGA(X1, X2, X3, timesB_in_gga(X4, X2, X3))
U2_GGA(X1, X2, X3, convertcA_out_gga(X1, X2, X4)) → TIMESB_IN_GGA(X4, X2, X3)
TIMESB_IN_GGA(s(X1), X2, X3) → U5_GGA(X1, X2, X3, timesB_in_gga(X1, X2, X4))
TIMESB_IN_GGA(s(X1), X2, X3) → TIMESB_IN_GGA(X1, X2, X4)
TIMESB_IN_GGA(s(X1), X2, X3) → U6_GGA(X1, X2, X3, timescB_in_gga(X1, X2, X4))
U6_GGA(X1, X2, X3, timescB_out_gga(X1, X2, X4)) → U7_GGA(X1, X2, X3, plusD_in_gga(X2, X4, X3))
U6_GGA(X1, X2, X3, timescB_out_gga(X1, X2, X4)) → PLUSD_IN_GGA(X2, X4, X3)
PLUSD_IN_GGA(s(X1), X2, X3) → U8_GGA(X1, X2, X3, plusD_in_gga(X1, X2, X4))
PLUSD_IN_GGA(s(X1), X2, X3) → PLUSD_IN_GGA(X1, X2, X4)
CONVERTA_IN_GGA(.(s(X1), X2), X3, X4) → U4_GGA(X1, X2, X3, X4, convertC_in_gga(.(X1, X2), X3, X5))
CONVERTA_IN_GGA(.(s(X1), X2), X3, X4) → CONVERTC_IN_GGA(.(X1, X2), X3, X5)
CONVERTC_IN_GGA(.(0, X1), X2, X3) → U10_GGA(X1, X2, X3, convertcA_in_gga(X1, X2, s(X4)))
U10_GGA(X1, X2, X3, convertcA_out_gga(X1, X2, s(X4))) → U11_GGA(X1, X2, X3, timesB_in_gga(X4, X2, X5))
U10_GGA(X1, X2, X3, convertcA_out_gga(X1, X2, s(X4))) → TIMESB_IN_GGA(X4, X2, X5)
CONVERTC_IN_GGA(.(0, X1), s(X2), X3) → U12_GGA(X1, X2, X3, convertcA_in_gga(X1, s(X2), s(X4)))
U12_GGA(X1, X2, X3, convertcA_out_gga(X1, s(X2), s(X4))) → U13_GGA(X1, X2, X3, timescB_in_gga(X4, s(X2), X5))
U13_GGA(X1, X2, X3, timescB_out_gga(X4, s(X2), X5)) → U14_GGA(X1, X2, X3, plusD_in_gga(X2, X5, X6))
U13_GGA(X1, X2, X3, timescB_out_gga(X4, s(X2), X5)) → PLUSD_IN_GGA(X2, X5, X6)
CONVERTC_IN_GGA(.(s(X1), X2), X3, X4) → U15_GGA(X1, X2, X3, X4, convertC_in_gga(.(X1, X2), X3, X5))
CONVERTC_IN_GGA(.(s(X1), X2), X3, X4) → CONVERTC_IN_GGA(.(X1, X2), X3, X5)

The TRS R consists of the following rules:

convertcA_in_gga([], X1, 0) → convertcA_out_gga([], X1, 0)
convertcA_in_gga(.(0, X1), X2, X3) → U17_gga(X1, X2, X3, convertcA_in_gga(X1, X2, X4))
convertcA_in_gga(.(s(X1), X2), X3, s(X4)) → U19_gga(X1, X2, X3, X4, convertcC_in_gga(.(X1, X2), X3, X4))
convertcC_in_gga([], X1, 0) → convertcC_out_gga([], X1, 0)
convertcC_in_gga(.(0, X1), X2, 0) → U23_gga(X1, X2, convertcA_in_ggg(X1, X2, 0))
convertcA_in_ggg([], X1, 0) → convertcA_out_ggg([], X1, 0)
convertcA_in_ggg(.(0, X1), X2, X3) → U17_ggg(X1, X2, X3, convertcA_in_gga(X1, X2, X4))
U17_ggg(X1, X2, X3, convertcA_out_gga(X1, X2, X4)) → U18_ggg(X1, X2, X3, timescB_in_ggg(X4, X2, X3))
timescB_in_ggg(0, X1, 0) → timescB_out_ggg(0, X1, 0)
timescB_in_ggg(s(X1), X2, X3) → U20_ggg(X1, X2, X3, timescB_in_gga(X1, X2, X4))
timescB_in_gga(0, X1, 0) → timescB_out_gga(0, X1, 0)
timescB_in_gga(s(X1), X2, X3) → U20_gga(X1, X2, X3, timescB_in_gga(X1, X2, X4))
U20_gga(X1, X2, X3, timescB_out_gga(X1, X2, X4)) → U21_gga(X1, X2, X3, pluscD_in_gga(X2, X4, X3))
pluscD_in_gga(0, X1, X1) → pluscD_out_gga(0, X1, X1)
pluscD_in_gga(s(X1), X2, s(X3)) → U22_gga(X1, X2, X3, pluscD_in_gga(X1, X2, X3))
U22_gga(X1, X2, X3, pluscD_out_gga(X1, X2, X3)) → pluscD_out_gga(s(X1), X2, s(X3))
U21_gga(X1, X2, X3, pluscD_out_gga(X2, X4, X3)) → timescB_out_gga(s(X1), X2, X3)
U20_ggg(X1, X2, X3, timescB_out_gga(X1, X2, X4)) → U21_ggg(X1, X2, X3, pluscD_in_ggg(X2, X4, X3))
pluscD_in_ggg(0, X1, X1) → pluscD_out_ggg(0, X1, X1)
pluscD_in_ggg(s(X1), X2, s(X3)) → U22_ggg(X1, X2, X3, pluscD_in_ggg(X1, X2, X3))
U22_ggg(X1, X2, X3, pluscD_out_ggg(X1, X2, X3)) → pluscD_out_ggg(s(X1), X2, s(X3))
U21_ggg(X1, X2, X3, pluscD_out_ggg(X2, X4, X3)) → timescB_out_ggg(s(X1), X2, X3)
U18_ggg(X1, X2, X3, timescB_out_ggg(X4, X2, X3)) → convertcA_out_ggg(.(0, X1), X2, X3)
convertcA_in_ggg(.(s(X1), X2), X3, s(X4)) → U19_ggg(X1, X2, X3, X4, convertcC_in_ggg(.(X1, X2), X3, X4))
convertcC_in_ggg([], X1, 0) → convertcC_out_ggg([], X1, 0)
convertcC_in_ggg(.(0, X1), X2, 0) → U23_ggg(X1, X2, convertcA_in_ggg(X1, X2, 0))
U23_ggg(X1, X2, convertcA_out_ggg(X1, X2, 0)) → convertcC_out_ggg(.(0, X1), X2, 0)
convertcC_in_ggg(.(0, X1), 0, X2) → U24_ggg(X1, X2, convertcA_in_gga(X1, 0, s(X3)))
U24_ggg(X1, X2, convertcA_out_gga(X1, 0, s(X3))) → U25_ggg(X1, X2, timescB_in_ggg(X3, 0, X2))
U25_ggg(X1, X2, timescB_out_ggg(X3, 0, X2)) → convertcC_out_ggg(.(0, X1), 0, X2)
convertcC_in_ggg(.(0, X1), s(X2), s(X3)) → U26_ggg(X1, X2, X3, convertcA_in_gga(X1, s(X2), s(X4)))
U26_ggg(X1, X2, X3, convertcA_out_gga(X1, s(X2), s(X4))) → U27_ggg(X1, X2, X3, timescB_in_gga(X4, s(X2), X5))
U27_ggg(X1, X2, X3, timescB_out_gga(X4, s(X2), X5)) → U28_ggg(X1, X2, X3, pluscD_in_ggg(X2, X5, X3))
U28_ggg(X1, X2, X3, pluscD_out_ggg(X2, X5, X3)) → convertcC_out_ggg(.(0, X1), s(X2), s(X3))
convertcC_in_ggg(.(0, X1), s(X2), 0) → U29_ggg(X1, X2, convertcA_in_gga(X1, s(X2), s(X3)))
U29_ggg(X1, X2, convertcA_out_gga(X1, s(X2), s(X3))) → U30_ggg(X1, X2, timescB_in_gga(X3, s(X2), X4))
U30_ggg(X1, X2, timescB_out_gga(X3, s(X2), X4)) → U31_ggg(X1, X2, pluscD_in_ggg(X2, X4, 0))
U31_ggg(X1, X2, pluscD_out_ggg(X2, X4, 0)) → convertcC_out_ggg(.(0, X1), s(X2), 0)
convertcC_in_ggg(.(s(X1), X2), X3, s(X4)) → U32_ggg(X1, X2, X3, X4, convertcC_in_ggg(.(X1, X2), X3, X4))
convertcC_in_ggg(.(s(X1), X2), X3, 0) → U33_ggg(X1, X2, X3, convertcC_in_ggg(.(X1, X2), X3, 0))
U33_ggg(X1, X2, X3, convertcC_out_ggg(.(X1, X2), X3, 0)) → convertcC_out_ggg(.(s(X1), X2), X3, 0)
U32_ggg(X1, X2, X3, X4, convertcC_out_ggg(.(X1, X2), X3, X4)) → convertcC_out_ggg(.(s(X1), X2), X3, s(X4))
U19_ggg(X1, X2, X3, X4, convertcC_out_ggg(.(X1, X2), X3, X4)) → convertcA_out_ggg(.(s(X1), X2), X3, s(X4))
U23_gga(X1, X2, convertcA_out_ggg(X1, X2, 0)) → convertcC_out_gga(.(0, X1), X2, 0)
convertcC_in_gga(.(0, X1), 0, X2) → U24_gga(X1, X2, convertcA_in_gga(X1, 0, s(X3)))
U24_gga(X1, X2, convertcA_out_gga(X1, 0, s(X3))) → U25_gga(X1, X2, timescB_in_gga(X3, 0, X2))
U25_gga(X1, X2, timescB_out_gga(X3, 0, X2)) → convertcC_out_gga(.(0, X1), 0, X2)
convertcC_in_gga(.(0, X1), s(X2), s(X3)) → U26_gga(X1, X2, X3, convertcA_in_gga(X1, s(X2), s(X4)))
U26_gga(X1, X2, X3, convertcA_out_gga(X1, s(X2), s(X4))) → U27_gga(X1, X2, X3, timescB_in_gga(X4, s(X2), X5))
U27_gga(X1, X2, X3, timescB_out_gga(X4, s(X2), X5)) → U28_gga(X1, X2, X3, pluscD_in_gga(X2, X5, X3))
U28_gga(X1, X2, X3, pluscD_out_gga(X2, X5, X3)) → convertcC_out_gga(.(0, X1), s(X2), s(X3))
convertcC_in_gga(.(0, X1), s(X2), 0) → U29_gga(X1, X2, convertcA_in_gga(X1, s(X2), s(X3)))
U29_gga(X1, X2, convertcA_out_gga(X1, s(X2), s(X3))) → U30_gga(X1, X2, timescB_in_gga(X3, s(X2), X4))
U30_gga(X1, X2, timescB_out_gga(X3, s(X2), X4)) → U31_gga(X1, X2, pluscD_in_ggg(X2, X4, 0))
U31_gga(X1, X2, pluscD_out_ggg(X2, X4, 0)) → convertcC_out_gga(.(0, X1), s(X2), 0)
convertcC_in_gga(.(s(X1), X2), X3, s(X4)) → U32_gga(X1, X2, X3, X4, convertcC_in_gga(.(X1, X2), X3, X4))
convertcC_in_gga(.(s(X1), X2), X3, 0) → U33_gga(X1, X2, X3, convertcC_in_ggg(.(X1, X2), X3, 0))
U33_gga(X1, X2, X3, convertcC_out_ggg(.(X1, X2), X3, 0)) → convertcC_out_gga(.(s(X1), X2), X3, 0)
U32_gga(X1, X2, X3, X4, convertcC_out_gga(.(X1, X2), X3, X4)) → convertcC_out_gga(.(s(X1), X2), X3, s(X4))
U19_gga(X1, X2, X3, X4, convertcC_out_gga(.(X1, X2), X3, X4)) → convertcA_out_gga(.(s(X1), X2), X3, s(X4))
U17_gga(X1, X2, X3, convertcA_out_gga(X1, X2, X4)) → U18_gga(X1, X2, X3, timescB_in_gga(X4, X2, X3))
U18_gga(X1, X2, X3, timescB_out_gga(X4, X2, X3)) → convertcA_out_gga(.(0, X1), X2, X3)

The argument filtering Pi contains the following mapping:
convertC_in_gga(x1, x2, x3)  =  convertC_in_gga(x1, x2)
.(x1, x2)  =  .(x1, x2)
0  =  0
convertA_in_gga(x1, x2, x3)  =  convertA_in_gga(x1, x2)
convertcA_in_gga(x1, x2, x3)  =  convertcA_in_gga(x1, x2)
[]  =  []
convertcA_out_gga(x1, x2, x3)  =  convertcA_out_gga(x1, x2, x3)
U17_gga(x1, x2, x3, x4)  =  U17_gga(x1, x2, x4)
s(x1)  =  s(x1)
U19_gga(x1, x2, x3, x4, x5)  =  U19_gga(x1, x2, x3, x5)
convertcC_in_gga(x1, x2, x3)  =  convertcC_in_gga(x1, x2)
convertcC_out_gga(x1, x2, x3)  =  convertcC_out_gga(x1, x2, x3)
U23_gga(x1, x2, x3)  =  U23_gga(x1, x2, x3)
convertcA_in_ggg(x1, x2, x3)  =  convertcA_in_ggg(x1, x2, x3)
convertcA_out_ggg(x1, x2, x3)  =  convertcA_out_ggg(x1, x2, x3)
U17_ggg(x1, x2, x3, x4)  =  U17_ggg(x1, x2, x3, x4)
U18_ggg(x1, x2, x3, x4)  =  U18_ggg(x1, x2, x3, x4)
timescB_in_ggg(x1, x2, x3)  =  timescB_in_ggg(x1, x2, x3)
timescB_out_ggg(x1, x2, x3)  =  timescB_out_ggg(x1, x2, x3)
U20_ggg(x1, x2, x3, x4)  =  U20_ggg(x1, x2, x3, x4)
timescB_in_gga(x1, x2, x3)  =  timescB_in_gga(x1, x2)
timescB_out_gga(x1, x2, x3)  =  timescB_out_gga(x1, x2, x3)
U20_gga(x1, x2, x3, x4)  =  U20_gga(x1, x2, x4)
U21_gga(x1, x2, x3, x4)  =  U21_gga(x1, x2, x4)
pluscD_in_gga(x1, x2, x3)  =  pluscD_in_gga(x1, x2)
pluscD_out_gga(x1, x2, x3)  =  pluscD_out_gga(x1, x2, x3)
U22_gga(x1, x2, x3, x4)  =  U22_gga(x1, x2, x4)
U21_ggg(x1, x2, x3, x4)  =  U21_ggg(x1, x2, x3, x4)
pluscD_in_ggg(x1, x2, x3)  =  pluscD_in_ggg(x1, x2, x3)
pluscD_out_ggg(x1, x2, x3)  =  pluscD_out_ggg(x1, x2, x3)
U22_ggg(x1, x2, x3, x4)  =  U22_ggg(x1, x2, x3, x4)
U19_ggg(x1, x2, x3, x4, x5)  =  U19_ggg(x1, x2, x3, x4, x5)
convertcC_in_ggg(x1, x2, x3)  =  convertcC_in_ggg(x1, x2, x3)
convertcC_out_ggg(x1, x2, x3)  =  convertcC_out_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)  =  U25_ggg(x1, x2, x3)
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)  =  U29_ggg(x1, x2, x3)
U30_ggg(x1, x2, x3)  =  U30_ggg(x1, x2, x3)
U31_ggg(x1, x2, x3)  =  U31_ggg(x1, x2, x3)
U32_ggg(x1, x2, x3, x4, x5)  =  U32_ggg(x1, x2, x3, x4, x5)
U33_ggg(x1, x2, x3, x4)  =  U33_ggg(x1, x2, x3, x4)
U24_gga(x1, x2, x3)  =  U24_gga(x1, x3)
U25_gga(x1, x2, x3)  =  U25_gga(x1, x3)
U26_gga(x1, x2, x3, x4)  =  U26_gga(x1, x2, x4)
U27_gga(x1, x2, x3, x4)  =  U27_gga(x1, x2, x4)
U28_gga(x1, x2, x3, x4)  =  U28_gga(x1, x2, x4)
U29_gga(x1, x2, x3)  =  U29_gga(x1, x2, x3)
U30_gga(x1, x2, x3)  =  U30_gga(x1, x2, x3)
U31_gga(x1, x2, x3)  =  U31_gga(x1, x2, x3)
U32_gga(x1, x2, x3, x4, x5)  =  U32_gga(x1, x2, x3, x5)
U33_gga(x1, x2, x3, x4)  =  U33_gga(x1, x2, x3, x4)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x1, x2, x4)
timesB_in_gga(x1, x2, x3)  =  timesB_in_gga(x1, x2)
plusD_in_gga(x1, x2, x3)  =  plusD_in_gga(x1, x2)
CONVERTC_IN_GGA(x1, x2, x3)  =  CONVERTC_IN_GGA(x1, x2)
U9_GGA(x1, x2, x3, x4)  =  U9_GGA(x1, x2, x4)
CONVERTA_IN_GGA(x1, x2, x3)  =  CONVERTA_IN_GGA(x1, x2)
U1_GGA(x1, x2, x3, x4)  =  U1_GGA(x1, x2, x4)
U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x2, x4)
U3_GGA(x1, x2, x3, x4)  =  U3_GGA(x1, x2, x4)
TIMESB_IN_GGA(x1, x2, x3)  =  TIMESB_IN_GGA(x1, x2)
U5_GGA(x1, x2, x3, x4)  =  U5_GGA(x1, x2, x4)
U6_GGA(x1, x2, x3, x4)  =  U6_GGA(x1, x2, x4)
U7_GGA(x1, x2, x3, x4)  =  U7_GGA(x1, x2, x4)
PLUSD_IN_GGA(x1, x2, x3)  =  PLUSD_IN_GGA(x1, x2)
U8_GGA(x1, x2, x3, x4)  =  U8_GGA(x1, x2, x4)
U4_GGA(x1, x2, x3, x4, x5)  =  U4_GGA(x1, x2, x3, x5)
U10_GGA(x1, x2, x3, x4)  =  U10_GGA(x1, x2, x4)
U11_GGA(x1, x2, x3, x4)  =  U11_GGA(x1, x2, x4)
U12_GGA(x1, x2, x3, x4)  =  U12_GGA(x1, x2, x4)
U13_GGA(x1, x2, x3, x4)  =  U13_GGA(x1, x2, x4)
U14_GGA(x1, x2, x3, x4)  =  U14_GGA(x1, x2, x4)
U15_GGA(x1, x2, x3, x4, x5)  =  U15_GGA(x1, x2, x3, x5)

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:

CONVERTC_IN_GGA(.(0, X1), X2, X3) → U9_GGA(X1, X2, X3, convertA_in_gga(X1, X2, X4))
CONVERTC_IN_GGA(.(0, X1), X2, X3) → CONVERTA_IN_GGA(X1, X2, X4)
CONVERTA_IN_GGA(.(0, X1), X2, X3) → U1_GGA(X1, X2, X3, convertA_in_gga(X1, X2, X4))
CONVERTA_IN_GGA(.(0, X1), X2, X3) → CONVERTA_IN_GGA(X1, X2, X4)
CONVERTA_IN_GGA(.(0, X1), X2, X3) → U2_GGA(X1, X2, X3, convertcA_in_gga(X1, X2, X4))
U2_GGA(X1, X2, X3, convertcA_out_gga(X1, X2, X4)) → U3_GGA(X1, X2, X3, timesB_in_gga(X4, X2, X3))
U2_GGA(X1, X2, X3, convertcA_out_gga(X1, X2, X4)) → TIMESB_IN_GGA(X4, X2, X3)
TIMESB_IN_GGA(s(X1), X2, X3) → U5_GGA(X1, X2, X3, timesB_in_gga(X1, X2, X4))
TIMESB_IN_GGA(s(X1), X2, X3) → TIMESB_IN_GGA(X1, X2, X4)
TIMESB_IN_GGA(s(X1), X2, X3) → U6_GGA(X1, X2, X3, timescB_in_gga(X1, X2, X4))
U6_GGA(X1, X2, X3, timescB_out_gga(X1, X2, X4)) → U7_GGA(X1, X2, X3, plusD_in_gga(X2, X4, X3))
U6_GGA(X1, X2, X3, timescB_out_gga(X1, X2, X4)) → PLUSD_IN_GGA(X2, X4, X3)
PLUSD_IN_GGA(s(X1), X2, X3) → U8_GGA(X1, X2, X3, plusD_in_gga(X1, X2, X4))
PLUSD_IN_GGA(s(X1), X2, X3) → PLUSD_IN_GGA(X1, X2, X4)
CONVERTA_IN_GGA(.(s(X1), X2), X3, X4) → U4_GGA(X1, X2, X3, X4, convertC_in_gga(.(X1, X2), X3, X5))
CONVERTA_IN_GGA(.(s(X1), X2), X3, X4) → CONVERTC_IN_GGA(.(X1, X2), X3, X5)
CONVERTC_IN_GGA(.(0, X1), X2, X3) → U10_GGA(X1, X2, X3, convertcA_in_gga(X1, X2, s(X4)))
U10_GGA(X1, X2, X3, convertcA_out_gga(X1, X2, s(X4))) → U11_GGA(X1, X2, X3, timesB_in_gga(X4, X2, X5))
U10_GGA(X1, X2, X3, convertcA_out_gga(X1, X2, s(X4))) → TIMESB_IN_GGA(X4, X2, X5)
CONVERTC_IN_GGA(.(0, X1), s(X2), X3) → U12_GGA(X1, X2, X3, convertcA_in_gga(X1, s(X2), s(X4)))
U12_GGA(X1, X2, X3, convertcA_out_gga(X1, s(X2), s(X4))) → U13_GGA(X1, X2, X3, timescB_in_gga(X4, s(X2), X5))
U13_GGA(X1, X2, X3, timescB_out_gga(X4, s(X2), X5)) → U14_GGA(X1, X2, X3, plusD_in_gga(X2, X5, X6))
U13_GGA(X1, X2, X3, timescB_out_gga(X4, s(X2), X5)) → PLUSD_IN_GGA(X2, X5, X6)
CONVERTC_IN_GGA(.(s(X1), X2), X3, X4) → U15_GGA(X1, X2, X3, X4, convertC_in_gga(.(X1, X2), X3, X5))
CONVERTC_IN_GGA(.(s(X1), X2), X3, X4) → CONVERTC_IN_GGA(.(X1, X2), X3, X5)

The TRS R consists of the following rules:

convertcA_in_gga([], X1, 0) → convertcA_out_gga([], X1, 0)
convertcA_in_gga(.(0, X1), X2, X3) → U17_gga(X1, X2, X3, convertcA_in_gga(X1, X2, X4))
convertcA_in_gga(.(s(X1), X2), X3, s(X4)) → U19_gga(X1, X2, X3, X4, convertcC_in_gga(.(X1, X2), X3, X4))
convertcC_in_gga([], X1, 0) → convertcC_out_gga([], X1, 0)
convertcC_in_gga(.(0, X1), X2, 0) → U23_gga(X1, X2, convertcA_in_ggg(X1, X2, 0))
convertcA_in_ggg([], X1, 0) → convertcA_out_ggg([], X1, 0)
convertcA_in_ggg(.(0, X1), X2, X3) → U17_ggg(X1, X2, X3, convertcA_in_gga(X1, X2, X4))
U17_ggg(X1, X2, X3, convertcA_out_gga(X1, X2, X4)) → U18_ggg(X1, X2, X3, timescB_in_ggg(X4, X2, X3))
timescB_in_ggg(0, X1, 0) → timescB_out_ggg(0, X1, 0)
timescB_in_ggg(s(X1), X2, X3) → U20_ggg(X1, X2, X3, timescB_in_gga(X1, X2, X4))
timescB_in_gga(0, X1, 0) → timescB_out_gga(0, X1, 0)
timescB_in_gga(s(X1), X2, X3) → U20_gga(X1, X2, X3, timescB_in_gga(X1, X2, X4))
U20_gga(X1, X2, X3, timescB_out_gga(X1, X2, X4)) → U21_gga(X1, X2, X3, pluscD_in_gga(X2, X4, X3))
pluscD_in_gga(0, X1, X1) → pluscD_out_gga(0, X1, X1)
pluscD_in_gga(s(X1), X2, s(X3)) → U22_gga(X1, X2, X3, pluscD_in_gga(X1, X2, X3))
U22_gga(X1, X2, X3, pluscD_out_gga(X1, X2, X3)) → pluscD_out_gga(s(X1), X2, s(X3))
U21_gga(X1, X2, X3, pluscD_out_gga(X2, X4, X3)) → timescB_out_gga(s(X1), X2, X3)
U20_ggg(X1, X2, X3, timescB_out_gga(X1, X2, X4)) → U21_ggg(X1, X2, X3, pluscD_in_ggg(X2, X4, X3))
pluscD_in_ggg(0, X1, X1) → pluscD_out_ggg(0, X1, X1)
pluscD_in_ggg(s(X1), X2, s(X3)) → U22_ggg(X1, X2, X3, pluscD_in_ggg(X1, X2, X3))
U22_ggg(X1, X2, X3, pluscD_out_ggg(X1, X2, X3)) → pluscD_out_ggg(s(X1), X2, s(X3))
U21_ggg(X1, X2, X3, pluscD_out_ggg(X2, X4, X3)) → timescB_out_ggg(s(X1), X2, X3)
U18_ggg(X1, X2, X3, timescB_out_ggg(X4, X2, X3)) → convertcA_out_ggg(.(0, X1), X2, X3)
convertcA_in_ggg(.(s(X1), X2), X3, s(X4)) → U19_ggg(X1, X2, X3, X4, convertcC_in_ggg(.(X1, X2), X3, X4))
convertcC_in_ggg([], X1, 0) → convertcC_out_ggg([], X1, 0)
convertcC_in_ggg(.(0, X1), X2, 0) → U23_ggg(X1, X2, convertcA_in_ggg(X1, X2, 0))
U23_ggg(X1, X2, convertcA_out_ggg(X1, X2, 0)) → convertcC_out_ggg(.(0, X1), X2, 0)
convertcC_in_ggg(.(0, X1), 0, X2) → U24_ggg(X1, X2, convertcA_in_gga(X1, 0, s(X3)))
U24_ggg(X1, X2, convertcA_out_gga(X1, 0, s(X3))) → U25_ggg(X1, X2, timescB_in_ggg(X3, 0, X2))
U25_ggg(X1, X2, timescB_out_ggg(X3, 0, X2)) → convertcC_out_ggg(.(0, X1), 0, X2)
convertcC_in_ggg(.(0, X1), s(X2), s(X3)) → U26_ggg(X1, X2, X3, convertcA_in_gga(X1, s(X2), s(X4)))
U26_ggg(X1, X2, X3, convertcA_out_gga(X1, s(X2), s(X4))) → U27_ggg(X1, X2, X3, timescB_in_gga(X4, s(X2), X5))
U27_ggg(X1, X2, X3, timescB_out_gga(X4, s(X2), X5)) → U28_ggg(X1, X2, X3, pluscD_in_ggg(X2, X5, X3))
U28_ggg(X1, X2, X3, pluscD_out_ggg(X2, X5, X3)) → convertcC_out_ggg(.(0, X1), s(X2), s(X3))
convertcC_in_ggg(.(0, X1), s(X2), 0) → U29_ggg(X1, X2, convertcA_in_gga(X1, s(X2), s(X3)))
U29_ggg(X1, X2, convertcA_out_gga(X1, s(X2), s(X3))) → U30_ggg(X1, X2, timescB_in_gga(X3, s(X2), X4))
U30_ggg(X1, X2, timescB_out_gga(X3, s(X2), X4)) → U31_ggg(X1, X2, pluscD_in_ggg(X2, X4, 0))
U31_ggg(X1, X2, pluscD_out_ggg(X2, X4, 0)) → convertcC_out_ggg(.(0, X1), s(X2), 0)
convertcC_in_ggg(.(s(X1), X2), X3, s(X4)) → U32_ggg(X1, X2, X3, X4, convertcC_in_ggg(.(X1, X2), X3, X4))
convertcC_in_ggg(.(s(X1), X2), X3, 0) → U33_ggg(X1, X2, X3, convertcC_in_ggg(.(X1, X2), X3, 0))
U33_ggg(X1, X2, X3, convertcC_out_ggg(.(X1, X2), X3, 0)) → convertcC_out_ggg(.(s(X1), X2), X3, 0)
U32_ggg(X1, X2, X3, X4, convertcC_out_ggg(.(X1, X2), X3, X4)) → convertcC_out_ggg(.(s(X1), X2), X3, s(X4))
U19_ggg(X1, X2, X3, X4, convertcC_out_ggg(.(X1, X2), X3, X4)) → convertcA_out_ggg(.(s(X1), X2), X3, s(X4))
U23_gga(X1, X2, convertcA_out_ggg(X1, X2, 0)) → convertcC_out_gga(.(0, X1), X2, 0)
convertcC_in_gga(.(0, X1), 0, X2) → U24_gga(X1, X2, convertcA_in_gga(X1, 0, s(X3)))
U24_gga(X1, X2, convertcA_out_gga(X1, 0, s(X3))) → U25_gga(X1, X2, timescB_in_gga(X3, 0, X2))
U25_gga(X1, X2, timescB_out_gga(X3, 0, X2)) → convertcC_out_gga(.(0, X1), 0, X2)
convertcC_in_gga(.(0, X1), s(X2), s(X3)) → U26_gga(X1, X2, X3, convertcA_in_gga(X1, s(X2), s(X4)))
U26_gga(X1, X2, X3, convertcA_out_gga(X1, s(X2), s(X4))) → U27_gga(X1, X2, X3, timescB_in_gga(X4, s(X2), X5))
U27_gga(X1, X2, X3, timescB_out_gga(X4, s(X2), X5)) → U28_gga(X1, X2, X3, pluscD_in_gga(X2, X5, X3))
U28_gga(X1, X2, X3, pluscD_out_gga(X2, X5, X3)) → convertcC_out_gga(.(0, X1), s(X2), s(X3))
convertcC_in_gga(.(0, X1), s(X2), 0) → U29_gga(X1, X2, convertcA_in_gga(X1, s(X2), s(X3)))
U29_gga(X1, X2, convertcA_out_gga(X1, s(X2), s(X3))) → U30_gga(X1, X2, timescB_in_gga(X3, s(X2), X4))
U30_gga(X1, X2, timescB_out_gga(X3, s(X2), X4)) → U31_gga(X1, X2, pluscD_in_ggg(X2, X4, 0))
U31_gga(X1, X2, pluscD_out_ggg(X2, X4, 0)) → convertcC_out_gga(.(0, X1), s(X2), 0)
convertcC_in_gga(.(s(X1), X2), X3, s(X4)) → U32_gga(X1, X2, X3, X4, convertcC_in_gga(.(X1, X2), X3, X4))
convertcC_in_gga(.(s(X1), X2), X3, 0) → U33_gga(X1, X2, X3, convertcC_in_ggg(.(X1, X2), X3, 0))
U33_gga(X1, X2, X3, convertcC_out_ggg(.(X1, X2), X3, 0)) → convertcC_out_gga(.(s(X1), X2), X3, 0)
U32_gga(X1, X2, X3, X4, convertcC_out_gga(.(X1, X2), X3, X4)) → convertcC_out_gga(.(s(X1), X2), X3, s(X4))
U19_gga(X1, X2, X3, X4, convertcC_out_gga(.(X1, X2), X3, X4)) → convertcA_out_gga(.(s(X1), X2), X3, s(X4))
U17_gga(X1, X2, X3, convertcA_out_gga(X1, X2, X4)) → U18_gga(X1, X2, X3, timescB_in_gga(X4, X2, X3))
U18_gga(X1, X2, X3, timescB_out_gga(X4, X2, X3)) → convertcA_out_gga(.(0, X1), X2, X3)

The argument filtering Pi contains the following mapping:
convertC_in_gga(x1, x2, x3)  =  convertC_in_gga(x1, x2)
.(x1, x2)  =  .(x1, x2)
0  =  0
convertA_in_gga(x1, x2, x3)  =  convertA_in_gga(x1, x2)
convertcA_in_gga(x1, x2, x3)  =  convertcA_in_gga(x1, x2)
[]  =  []
convertcA_out_gga(x1, x2, x3)  =  convertcA_out_gga(x1, x2, x3)
U17_gga(x1, x2, x3, x4)  =  U17_gga(x1, x2, x4)
s(x1)  =  s(x1)
U19_gga(x1, x2, x3, x4, x5)  =  U19_gga(x1, x2, x3, x5)
convertcC_in_gga(x1, x2, x3)  =  convertcC_in_gga(x1, x2)
convertcC_out_gga(x1, x2, x3)  =  convertcC_out_gga(x1, x2, x3)
U23_gga(x1, x2, x3)  =  U23_gga(x1, x2, x3)
convertcA_in_ggg(x1, x2, x3)  =  convertcA_in_ggg(x1, x2, x3)
convertcA_out_ggg(x1, x2, x3)  =  convertcA_out_ggg(x1, x2, x3)
U17_ggg(x1, x2, x3, x4)  =  U17_ggg(x1, x2, x3, x4)
U18_ggg(x1, x2, x3, x4)  =  U18_ggg(x1, x2, x3, x4)
timescB_in_ggg(x1, x2, x3)  =  timescB_in_ggg(x1, x2, x3)
timescB_out_ggg(x1, x2, x3)  =  timescB_out_ggg(x1, x2, x3)
U20_ggg(x1, x2, x3, x4)  =  U20_ggg(x1, x2, x3, x4)
timescB_in_gga(x1, x2, x3)  =  timescB_in_gga(x1, x2)
timescB_out_gga(x1, x2, x3)  =  timescB_out_gga(x1, x2, x3)
U20_gga(x1, x2, x3, x4)  =  U20_gga(x1, x2, x4)
U21_gga(x1, x2, x3, x4)  =  U21_gga(x1, x2, x4)
pluscD_in_gga(x1, x2, x3)  =  pluscD_in_gga(x1, x2)
pluscD_out_gga(x1, x2, x3)  =  pluscD_out_gga(x1, x2, x3)
U22_gga(x1, x2, x3, x4)  =  U22_gga(x1, x2, x4)
U21_ggg(x1, x2, x3, x4)  =  U21_ggg(x1, x2, x3, x4)
pluscD_in_ggg(x1, x2, x3)  =  pluscD_in_ggg(x1, x2, x3)
pluscD_out_ggg(x1, x2, x3)  =  pluscD_out_ggg(x1, x2, x3)
U22_ggg(x1, x2, x3, x4)  =  U22_ggg(x1, x2, x3, x4)
U19_ggg(x1, x2, x3, x4, x5)  =  U19_ggg(x1, x2, x3, x4, x5)
convertcC_in_ggg(x1, x2, x3)  =  convertcC_in_ggg(x1, x2, x3)
convertcC_out_ggg(x1, x2, x3)  =  convertcC_out_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)  =  U25_ggg(x1, x2, x3)
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)  =  U29_ggg(x1, x2, x3)
U30_ggg(x1, x2, x3)  =  U30_ggg(x1, x2, x3)
U31_ggg(x1, x2, x3)  =  U31_ggg(x1, x2, x3)
U32_ggg(x1, x2, x3, x4, x5)  =  U32_ggg(x1, x2, x3, x4, x5)
U33_ggg(x1, x2, x3, x4)  =  U33_ggg(x1, x2, x3, x4)
U24_gga(x1, x2, x3)  =  U24_gga(x1, x3)
U25_gga(x1, x2, x3)  =  U25_gga(x1, x3)
U26_gga(x1, x2, x3, x4)  =  U26_gga(x1, x2, x4)
U27_gga(x1, x2, x3, x4)  =  U27_gga(x1, x2, x4)
U28_gga(x1, x2, x3, x4)  =  U28_gga(x1, x2, x4)
U29_gga(x1, x2, x3)  =  U29_gga(x1, x2, x3)
U30_gga(x1, x2, x3)  =  U30_gga(x1, x2, x3)
U31_gga(x1, x2, x3)  =  U31_gga(x1, x2, x3)
U32_gga(x1, x2, x3, x4, x5)  =  U32_gga(x1, x2, x3, x5)
U33_gga(x1, x2, x3, x4)  =  U33_gga(x1, x2, x3, x4)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x1, x2, x4)
timesB_in_gga(x1, x2, x3)  =  timesB_in_gga(x1, x2)
plusD_in_gga(x1, x2, x3)  =  plusD_in_gga(x1, x2)
CONVERTC_IN_GGA(x1, x2, x3)  =  CONVERTC_IN_GGA(x1, x2)
U9_GGA(x1, x2, x3, x4)  =  U9_GGA(x1, x2, x4)
CONVERTA_IN_GGA(x1, x2, x3)  =  CONVERTA_IN_GGA(x1, x2)
U1_GGA(x1, x2, x3, x4)  =  U1_GGA(x1, x2, x4)
U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x2, x4)
U3_GGA(x1, x2, x3, x4)  =  U3_GGA(x1, x2, x4)
TIMESB_IN_GGA(x1, x2, x3)  =  TIMESB_IN_GGA(x1, x2)
U5_GGA(x1, x2, x3, x4)  =  U5_GGA(x1, x2, x4)
U6_GGA(x1, x2, x3, x4)  =  U6_GGA(x1, x2, x4)
U7_GGA(x1, x2, x3, x4)  =  U7_GGA(x1, x2, x4)
PLUSD_IN_GGA(x1, x2, x3)  =  PLUSD_IN_GGA(x1, x2)
U8_GGA(x1, x2, x3, x4)  =  U8_GGA(x1, x2, x4)
U4_GGA(x1, x2, x3, x4, x5)  =  U4_GGA(x1, x2, x3, x5)
U10_GGA(x1, x2, x3, x4)  =  U10_GGA(x1, x2, x4)
U11_GGA(x1, x2, x3, x4)  =  U11_GGA(x1, x2, x4)
U12_GGA(x1, x2, x3, x4)  =  U12_GGA(x1, x2, x4)
U13_GGA(x1, x2, x3, x4)  =  U13_GGA(x1, x2, x4)
U14_GGA(x1, x2, x3, x4)  =  U14_GGA(x1, x2, x4)
U15_GGA(x1, x2, x3, x4, x5)  =  U15_GGA(x1, x2, x3, x5)

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

(5) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 19 less nodes.

(6) Complex Obligation (AND)

(7) Obligation:

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

PLUSD_IN_GGA(s(X1), X2, X3) → PLUSD_IN_GGA(X1, X2, X4)

The TRS R consists of the following rules:

convertcA_in_gga([], X1, 0) → convertcA_out_gga([], X1, 0)
convertcA_in_gga(.(0, X1), X2, X3) → U17_gga(X1, X2, X3, convertcA_in_gga(X1, X2, X4))
convertcA_in_gga(.(s(X1), X2), X3, s(X4)) → U19_gga(X1, X2, X3, X4, convertcC_in_gga(.(X1, X2), X3, X4))
convertcC_in_gga([], X1, 0) → convertcC_out_gga([], X1, 0)
convertcC_in_gga(.(0, X1), X2, 0) → U23_gga(X1, X2, convertcA_in_ggg(X1, X2, 0))
convertcA_in_ggg([], X1, 0) → convertcA_out_ggg([], X1, 0)
convertcA_in_ggg(.(0, X1), X2, X3) → U17_ggg(X1, X2, X3, convertcA_in_gga(X1, X2, X4))
U17_ggg(X1, X2, X3, convertcA_out_gga(X1, X2, X4)) → U18_ggg(X1, X2, X3, timescB_in_ggg(X4, X2, X3))
timescB_in_ggg(0, X1, 0) → timescB_out_ggg(0, X1, 0)
timescB_in_ggg(s(X1), X2, X3) → U20_ggg(X1, X2, X3, timescB_in_gga(X1, X2, X4))
timescB_in_gga(0, X1, 0) → timescB_out_gga(0, X1, 0)
timescB_in_gga(s(X1), X2, X3) → U20_gga(X1, X2, X3, timescB_in_gga(X1, X2, X4))
U20_gga(X1, X2, X3, timescB_out_gga(X1, X2, X4)) → U21_gga(X1, X2, X3, pluscD_in_gga(X2, X4, X3))
pluscD_in_gga(0, X1, X1) → pluscD_out_gga(0, X1, X1)
pluscD_in_gga(s(X1), X2, s(X3)) → U22_gga(X1, X2, X3, pluscD_in_gga(X1, X2, X3))
U22_gga(X1, X2, X3, pluscD_out_gga(X1, X2, X3)) → pluscD_out_gga(s(X1), X2, s(X3))
U21_gga(X1, X2, X3, pluscD_out_gga(X2, X4, X3)) → timescB_out_gga(s(X1), X2, X3)
U20_ggg(X1, X2, X3, timescB_out_gga(X1, X2, X4)) → U21_ggg(X1, X2, X3, pluscD_in_ggg(X2, X4, X3))
pluscD_in_ggg(0, X1, X1) → pluscD_out_ggg(0, X1, X1)
pluscD_in_ggg(s(X1), X2, s(X3)) → U22_ggg(X1, X2, X3, pluscD_in_ggg(X1, X2, X3))
U22_ggg(X1, X2, X3, pluscD_out_ggg(X1, X2, X3)) → pluscD_out_ggg(s(X1), X2, s(X3))
U21_ggg(X1, X2, X3, pluscD_out_ggg(X2, X4, X3)) → timescB_out_ggg(s(X1), X2, X3)
U18_ggg(X1, X2, X3, timescB_out_ggg(X4, X2, X3)) → convertcA_out_ggg(.(0, X1), X2, X3)
convertcA_in_ggg(.(s(X1), X2), X3, s(X4)) → U19_ggg(X1, X2, X3, X4, convertcC_in_ggg(.(X1, X2), X3, X4))
convertcC_in_ggg([], X1, 0) → convertcC_out_ggg([], X1, 0)
convertcC_in_ggg(.(0, X1), X2, 0) → U23_ggg(X1, X2, convertcA_in_ggg(X1, X2, 0))
U23_ggg(X1, X2, convertcA_out_ggg(X1, X2, 0)) → convertcC_out_ggg(.(0, X1), X2, 0)
convertcC_in_ggg(.(0, X1), 0, X2) → U24_ggg(X1, X2, convertcA_in_gga(X1, 0, s(X3)))
U24_ggg(X1, X2, convertcA_out_gga(X1, 0, s(X3))) → U25_ggg(X1, X2, timescB_in_ggg(X3, 0, X2))
U25_ggg(X1, X2, timescB_out_ggg(X3, 0, X2)) → convertcC_out_ggg(.(0, X1), 0, X2)
convertcC_in_ggg(.(0, X1), s(X2), s(X3)) → U26_ggg(X1, X2, X3, convertcA_in_gga(X1, s(X2), s(X4)))
U26_ggg(X1, X2, X3, convertcA_out_gga(X1, s(X2), s(X4))) → U27_ggg(X1, X2, X3, timescB_in_gga(X4, s(X2), X5))
U27_ggg(X1, X2, X3, timescB_out_gga(X4, s(X2), X5)) → U28_ggg(X1, X2, X3, pluscD_in_ggg(X2, X5, X3))
U28_ggg(X1, X2, X3, pluscD_out_ggg(X2, X5, X3)) → convertcC_out_ggg(.(0, X1), s(X2), s(X3))
convertcC_in_ggg(.(0, X1), s(X2), 0) → U29_ggg(X1, X2, convertcA_in_gga(X1, s(X2), s(X3)))
U29_ggg(X1, X2, convertcA_out_gga(X1, s(X2), s(X3))) → U30_ggg(X1, X2, timescB_in_gga(X3, s(X2), X4))
U30_ggg(X1, X2, timescB_out_gga(X3, s(X2), X4)) → U31_ggg(X1, X2, pluscD_in_ggg(X2, X4, 0))
U31_ggg(X1, X2, pluscD_out_ggg(X2, X4, 0)) → convertcC_out_ggg(.(0, X1), s(X2), 0)
convertcC_in_ggg(.(s(X1), X2), X3, s(X4)) → U32_ggg(X1, X2, X3, X4, convertcC_in_ggg(.(X1, X2), X3, X4))
convertcC_in_ggg(.(s(X1), X2), X3, 0) → U33_ggg(X1, X2, X3, convertcC_in_ggg(.(X1, X2), X3, 0))
U33_ggg(X1, X2, X3, convertcC_out_ggg(.(X1, X2), X3, 0)) → convertcC_out_ggg(.(s(X1), X2), X3, 0)
U32_ggg(X1, X2, X3, X4, convertcC_out_ggg(.(X1, X2), X3, X4)) → convertcC_out_ggg(.(s(X1), X2), X3, s(X4))
U19_ggg(X1, X2, X3, X4, convertcC_out_ggg(.(X1, X2), X3, X4)) → convertcA_out_ggg(.(s(X1), X2), X3, s(X4))
U23_gga(X1, X2, convertcA_out_ggg(X1, X2, 0)) → convertcC_out_gga(.(0, X1), X2, 0)
convertcC_in_gga(.(0, X1), 0, X2) → U24_gga(X1, X2, convertcA_in_gga(X1, 0, s(X3)))
U24_gga(X1, X2, convertcA_out_gga(X1, 0, s(X3))) → U25_gga(X1, X2, timescB_in_gga(X3, 0, X2))
U25_gga(X1, X2, timescB_out_gga(X3, 0, X2)) → convertcC_out_gga(.(0, X1), 0, X2)
convertcC_in_gga(.(0, X1), s(X2), s(X3)) → U26_gga(X1, X2, X3, convertcA_in_gga(X1, s(X2), s(X4)))
U26_gga(X1, X2, X3, convertcA_out_gga(X1, s(X2), s(X4))) → U27_gga(X1, X2, X3, timescB_in_gga(X4, s(X2), X5))
U27_gga(X1, X2, X3, timescB_out_gga(X4, s(X2), X5)) → U28_gga(X1, X2, X3, pluscD_in_gga(X2, X5, X3))
U28_gga(X1, X2, X3, pluscD_out_gga(X2, X5, X3)) → convertcC_out_gga(.(0, X1), s(X2), s(X3))
convertcC_in_gga(.(0, X1), s(X2), 0) → U29_gga(X1, X2, convertcA_in_gga(X1, s(X2), s(X3)))
U29_gga(X1, X2, convertcA_out_gga(X1, s(X2), s(X3))) → U30_gga(X1, X2, timescB_in_gga(X3, s(X2), X4))
U30_gga(X1, X2, timescB_out_gga(X3, s(X2), X4)) → U31_gga(X1, X2, pluscD_in_ggg(X2, X4, 0))
U31_gga(X1, X2, pluscD_out_ggg(X2, X4, 0)) → convertcC_out_gga(.(0, X1), s(X2), 0)
convertcC_in_gga(.(s(X1), X2), X3, s(X4)) → U32_gga(X1, X2, X3, X4, convertcC_in_gga(.(X1, X2), X3, X4))
convertcC_in_gga(.(s(X1), X2), X3, 0) → U33_gga(X1, X2, X3, convertcC_in_ggg(.(X1, X2), X3, 0))
U33_gga(X1, X2, X3, convertcC_out_ggg(.(X1, X2), X3, 0)) → convertcC_out_gga(.(s(X1), X2), X3, 0)
U32_gga(X1, X2, X3, X4, convertcC_out_gga(.(X1, X2), X3, X4)) → convertcC_out_gga(.(s(X1), X2), X3, s(X4))
U19_gga(X1, X2, X3, X4, convertcC_out_gga(.(X1, X2), X3, X4)) → convertcA_out_gga(.(s(X1), X2), X3, s(X4))
U17_gga(X1, X2, X3, convertcA_out_gga(X1, X2, X4)) → U18_gga(X1, X2, X3, timescB_in_gga(X4, X2, X3))
U18_gga(X1, X2, X3, timescB_out_gga(X4, X2, X3)) → convertcA_out_gga(.(0, X1), X2, X3)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
0  =  0
convertcA_in_gga(x1, x2, x3)  =  convertcA_in_gga(x1, x2)
[]  =  []
convertcA_out_gga(x1, x2, x3)  =  convertcA_out_gga(x1, x2, x3)
U17_gga(x1, x2, x3, x4)  =  U17_gga(x1, x2, x4)
s(x1)  =  s(x1)
U19_gga(x1, x2, x3, x4, x5)  =  U19_gga(x1, x2, x3, x5)
convertcC_in_gga(x1, x2, x3)  =  convertcC_in_gga(x1, x2)
convertcC_out_gga(x1, x2, x3)  =  convertcC_out_gga(x1, x2, x3)
U23_gga(x1, x2, x3)  =  U23_gga(x1, x2, x3)
convertcA_in_ggg(x1, x2, x3)  =  convertcA_in_ggg(x1, x2, x3)
convertcA_out_ggg(x1, x2, x3)  =  convertcA_out_ggg(x1, x2, x3)
U17_ggg(x1, x2, x3, x4)  =  U17_ggg(x1, x2, x3, x4)
U18_ggg(x1, x2, x3, x4)  =  U18_ggg(x1, x2, x3, x4)
timescB_in_ggg(x1, x2, x3)  =  timescB_in_ggg(x1, x2, x3)
timescB_out_ggg(x1, x2, x3)  =  timescB_out_ggg(x1, x2, x3)
U20_ggg(x1, x2, x3, x4)  =  U20_ggg(x1, x2, x3, x4)
timescB_in_gga(x1, x2, x3)  =  timescB_in_gga(x1, x2)
timescB_out_gga(x1, x2, x3)  =  timescB_out_gga(x1, x2, x3)
U20_gga(x1, x2, x3, x4)  =  U20_gga(x1, x2, x4)
U21_gga(x1, x2, x3, x4)  =  U21_gga(x1, x2, x4)
pluscD_in_gga(x1, x2, x3)  =  pluscD_in_gga(x1, x2)
pluscD_out_gga(x1, x2, x3)  =  pluscD_out_gga(x1, x2, x3)
U22_gga(x1, x2, x3, x4)  =  U22_gga(x1, x2, x4)
U21_ggg(x1, x2, x3, x4)  =  U21_ggg(x1, x2, x3, x4)
pluscD_in_ggg(x1, x2, x3)  =  pluscD_in_ggg(x1, x2, x3)
pluscD_out_ggg(x1, x2, x3)  =  pluscD_out_ggg(x1, x2, x3)
U22_ggg(x1, x2, x3, x4)  =  U22_ggg(x1, x2, x3, x4)
U19_ggg(x1, x2, x3, x4, x5)  =  U19_ggg(x1, x2, x3, x4, x5)
convertcC_in_ggg(x1, x2, x3)  =  convertcC_in_ggg(x1, x2, x3)
convertcC_out_ggg(x1, x2, x3)  =  convertcC_out_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)  =  U25_ggg(x1, x2, x3)
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)  =  U29_ggg(x1, x2, x3)
U30_ggg(x1, x2, x3)  =  U30_ggg(x1, x2, x3)
U31_ggg(x1, x2, x3)  =  U31_ggg(x1, x2, x3)
U32_ggg(x1, x2, x3, x4, x5)  =  U32_ggg(x1, x2, x3, x4, x5)
U33_ggg(x1, x2, x3, x4)  =  U33_ggg(x1, x2, x3, x4)
U24_gga(x1, x2, x3)  =  U24_gga(x1, x3)
U25_gga(x1, x2, x3)  =  U25_gga(x1, x3)
U26_gga(x1, x2, x3, x4)  =  U26_gga(x1, x2, x4)
U27_gga(x1, x2, x3, x4)  =  U27_gga(x1, x2, x4)
U28_gga(x1, x2, x3, x4)  =  U28_gga(x1, x2, x4)
U29_gga(x1, x2, x3)  =  U29_gga(x1, x2, x3)
U30_gga(x1, x2, x3)  =  U30_gga(x1, x2, x3)
U31_gga(x1, x2, x3)  =  U31_gga(x1, x2, x3)
U32_gga(x1, x2, x3, x4, x5)  =  U32_gga(x1, x2, x3, x5)
U33_gga(x1, x2, x3, x4)  =  U33_gga(x1, x2, x3, x4)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x1, x2, x4)
PLUSD_IN_GGA(x1, x2, x3)  =  PLUSD_IN_GGA(x1, x2)

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

(8) UsableRulesProof (EQUIVALENT transformation)

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:

PLUSD_IN_GGA(s(X1), X2, X3) → PLUSD_IN_GGA(X1, X2, X4)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
PLUSD_IN_GGA(x1, x2, x3)  =  PLUSD_IN_GGA(x1, x2)

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

(10) PiDPToQDPProof (SOUND transformation)

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:

PLUSD_IN_GGA(s(X1), X2) → PLUSD_IN_GGA(X1, X2)

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

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

  • PLUSD_IN_GGA(s(X1), X2) → PLUSD_IN_GGA(X1, X2)
    The graph contains the following edges 1 > 1, 2 >= 2

(13) YES

(14) Obligation:

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

TIMESB_IN_GGA(s(X1), X2, X3) → TIMESB_IN_GGA(X1, X2, X4)

The TRS R consists of the following rules:

convertcA_in_gga([], X1, 0) → convertcA_out_gga([], X1, 0)
convertcA_in_gga(.(0, X1), X2, X3) → U17_gga(X1, X2, X3, convertcA_in_gga(X1, X2, X4))
convertcA_in_gga(.(s(X1), X2), X3, s(X4)) → U19_gga(X1, X2, X3, X4, convertcC_in_gga(.(X1, X2), X3, X4))
convertcC_in_gga([], X1, 0) → convertcC_out_gga([], X1, 0)
convertcC_in_gga(.(0, X1), X2, 0) → U23_gga(X1, X2, convertcA_in_ggg(X1, X2, 0))
convertcA_in_ggg([], X1, 0) → convertcA_out_ggg([], X1, 0)
convertcA_in_ggg(.(0, X1), X2, X3) → U17_ggg(X1, X2, X3, convertcA_in_gga(X1, X2, X4))
U17_ggg(X1, X2, X3, convertcA_out_gga(X1, X2, X4)) → U18_ggg(X1, X2, X3, timescB_in_ggg(X4, X2, X3))
timescB_in_ggg(0, X1, 0) → timescB_out_ggg(0, X1, 0)
timescB_in_ggg(s(X1), X2, X3) → U20_ggg(X1, X2, X3, timescB_in_gga(X1, X2, X4))
timescB_in_gga(0, X1, 0) → timescB_out_gga(0, X1, 0)
timescB_in_gga(s(X1), X2, X3) → U20_gga(X1, X2, X3, timescB_in_gga(X1, X2, X4))
U20_gga(X1, X2, X3, timescB_out_gga(X1, X2, X4)) → U21_gga(X1, X2, X3, pluscD_in_gga(X2, X4, X3))
pluscD_in_gga(0, X1, X1) → pluscD_out_gga(0, X1, X1)
pluscD_in_gga(s(X1), X2, s(X3)) → U22_gga(X1, X2, X3, pluscD_in_gga(X1, X2, X3))
U22_gga(X1, X2, X3, pluscD_out_gga(X1, X2, X3)) → pluscD_out_gga(s(X1), X2, s(X3))
U21_gga(X1, X2, X3, pluscD_out_gga(X2, X4, X3)) → timescB_out_gga(s(X1), X2, X3)
U20_ggg(X1, X2, X3, timescB_out_gga(X1, X2, X4)) → U21_ggg(X1, X2, X3, pluscD_in_ggg(X2, X4, X3))
pluscD_in_ggg(0, X1, X1) → pluscD_out_ggg(0, X1, X1)
pluscD_in_ggg(s(X1), X2, s(X3)) → U22_ggg(X1, X2, X3, pluscD_in_ggg(X1, X2, X3))
U22_ggg(X1, X2, X3, pluscD_out_ggg(X1, X2, X3)) → pluscD_out_ggg(s(X1), X2, s(X3))
U21_ggg(X1, X2, X3, pluscD_out_ggg(X2, X4, X3)) → timescB_out_ggg(s(X1), X2, X3)
U18_ggg(X1, X2, X3, timescB_out_ggg(X4, X2, X3)) → convertcA_out_ggg(.(0, X1), X2, X3)
convertcA_in_ggg(.(s(X1), X2), X3, s(X4)) → U19_ggg(X1, X2, X3, X4, convertcC_in_ggg(.(X1, X2), X3, X4))
convertcC_in_ggg([], X1, 0) → convertcC_out_ggg([], X1, 0)
convertcC_in_ggg(.(0, X1), X2, 0) → U23_ggg(X1, X2, convertcA_in_ggg(X1, X2, 0))
U23_ggg(X1, X2, convertcA_out_ggg(X1, X2, 0)) → convertcC_out_ggg(.(0, X1), X2, 0)
convertcC_in_ggg(.(0, X1), 0, X2) → U24_ggg(X1, X2, convertcA_in_gga(X1, 0, s(X3)))
U24_ggg(X1, X2, convertcA_out_gga(X1, 0, s(X3))) → U25_ggg(X1, X2, timescB_in_ggg(X3, 0, X2))
U25_ggg(X1, X2, timescB_out_ggg(X3, 0, X2)) → convertcC_out_ggg(.(0, X1), 0, X2)
convertcC_in_ggg(.(0, X1), s(X2), s(X3)) → U26_ggg(X1, X2, X3, convertcA_in_gga(X1, s(X2), s(X4)))
U26_ggg(X1, X2, X3, convertcA_out_gga(X1, s(X2), s(X4))) → U27_ggg(X1, X2, X3, timescB_in_gga(X4, s(X2), X5))
U27_ggg(X1, X2, X3, timescB_out_gga(X4, s(X2), X5)) → U28_ggg(X1, X2, X3, pluscD_in_ggg(X2, X5, X3))
U28_ggg(X1, X2, X3, pluscD_out_ggg(X2, X5, X3)) → convertcC_out_ggg(.(0, X1), s(X2), s(X3))
convertcC_in_ggg(.(0, X1), s(X2), 0) → U29_ggg(X1, X2, convertcA_in_gga(X1, s(X2), s(X3)))
U29_ggg(X1, X2, convertcA_out_gga(X1, s(X2), s(X3))) → U30_ggg(X1, X2, timescB_in_gga(X3, s(X2), X4))
U30_ggg(X1, X2, timescB_out_gga(X3, s(X2), X4)) → U31_ggg(X1, X2, pluscD_in_ggg(X2, X4, 0))
U31_ggg(X1, X2, pluscD_out_ggg(X2, X4, 0)) → convertcC_out_ggg(.(0, X1), s(X2), 0)
convertcC_in_ggg(.(s(X1), X2), X3, s(X4)) → U32_ggg(X1, X2, X3, X4, convertcC_in_ggg(.(X1, X2), X3, X4))
convertcC_in_ggg(.(s(X1), X2), X3, 0) → U33_ggg(X1, X2, X3, convertcC_in_ggg(.(X1, X2), X3, 0))
U33_ggg(X1, X2, X3, convertcC_out_ggg(.(X1, X2), X3, 0)) → convertcC_out_ggg(.(s(X1), X2), X3, 0)
U32_ggg(X1, X2, X3, X4, convertcC_out_ggg(.(X1, X2), X3, X4)) → convertcC_out_ggg(.(s(X1), X2), X3, s(X4))
U19_ggg(X1, X2, X3, X4, convertcC_out_ggg(.(X1, X2), X3, X4)) → convertcA_out_ggg(.(s(X1), X2), X3, s(X4))
U23_gga(X1, X2, convertcA_out_ggg(X1, X2, 0)) → convertcC_out_gga(.(0, X1), X2, 0)
convertcC_in_gga(.(0, X1), 0, X2) → U24_gga(X1, X2, convertcA_in_gga(X1, 0, s(X3)))
U24_gga(X1, X2, convertcA_out_gga(X1, 0, s(X3))) → U25_gga(X1, X2, timescB_in_gga(X3, 0, X2))
U25_gga(X1, X2, timescB_out_gga(X3, 0, X2)) → convertcC_out_gga(.(0, X1), 0, X2)
convertcC_in_gga(.(0, X1), s(X2), s(X3)) → U26_gga(X1, X2, X3, convertcA_in_gga(X1, s(X2), s(X4)))
U26_gga(X1, X2, X3, convertcA_out_gga(X1, s(X2), s(X4))) → U27_gga(X1, X2, X3, timescB_in_gga(X4, s(X2), X5))
U27_gga(X1, X2, X3, timescB_out_gga(X4, s(X2), X5)) → U28_gga(X1, X2, X3, pluscD_in_gga(X2, X5, X3))
U28_gga(X1, X2, X3, pluscD_out_gga(X2, X5, X3)) → convertcC_out_gga(.(0, X1), s(X2), s(X3))
convertcC_in_gga(.(0, X1), s(X2), 0) → U29_gga(X1, X2, convertcA_in_gga(X1, s(X2), s(X3)))
U29_gga(X1, X2, convertcA_out_gga(X1, s(X2), s(X3))) → U30_gga(X1, X2, timescB_in_gga(X3, s(X2), X4))
U30_gga(X1, X2, timescB_out_gga(X3, s(X2), X4)) → U31_gga(X1, X2, pluscD_in_ggg(X2, X4, 0))
U31_gga(X1, X2, pluscD_out_ggg(X2, X4, 0)) → convertcC_out_gga(.(0, X1), s(X2), 0)
convertcC_in_gga(.(s(X1), X2), X3, s(X4)) → U32_gga(X1, X2, X3, X4, convertcC_in_gga(.(X1, X2), X3, X4))
convertcC_in_gga(.(s(X1), X2), X3, 0) → U33_gga(X1, X2, X3, convertcC_in_ggg(.(X1, X2), X3, 0))
U33_gga(X1, X2, X3, convertcC_out_ggg(.(X1, X2), X3, 0)) → convertcC_out_gga(.(s(X1), X2), X3, 0)
U32_gga(X1, X2, X3, X4, convertcC_out_gga(.(X1, X2), X3, X4)) → convertcC_out_gga(.(s(X1), X2), X3, s(X4))
U19_gga(X1, X2, X3, X4, convertcC_out_gga(.(X1, X2), X3, X4)) → convertcA_out_gga(.(s(X1), X2), X3, s(X4))
U17_gga(X1, X2, X3, convertcA_out_gga(X1, X2, X4)) → U18_gga(X1, X2, X3, timescB_in_gga(X4, X2, X3))
U18_gga(X1, X2, X3, timescB_out_gga(X4, X2, X3)) → convertcA_out_gga(.(0, X1), X2, X3)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
0  =  0
convertcA_in_gga(x1, x2, x3)  =  convertcA_in_gga(x1, x2)
[]  =  []
convertcA_out_gga(x1, x2, x3)  =  convertcA_out_gga(x1, x2, x3)
U17_gga(x1, x2, x3, x4)  =  U17_gga(x1, x2, x4)
s(x1)  =  s(x1)
U19_gga(x1, x2, x3, x4, x5)  =  U19_gga(x1, x2, x3, x5)
convertcC_in_gga(x1, x2, x3)  =  convertcC_in_gga(x1, x2)
convertcC_out_gga(x1, x2, x3)  =  convertcC_out_gga(x1, x2, x3)
U23_gga(x1, x2, x3)  =  U23_gga(x1, x2, x3)
convertcA_in_ggg(x1, x2, x3)  =  convertcA_in_ggg(x1, x2, x3)
convertcA_out_ggg(x1, x2, x3)  =  convertcA_out_ggg(x1, x2, x3)
U17_ggg(x1, x2, x3, x4)  =  U17_ggg(x1, x2, x3, x4)
U18_ggg(x1, x2, x3, x4)  =  U18_ggg(x1, x2, x3, x4)
timescB_in_ggg(x1, x2, x3)  =  timescB_in_ggg(x1, x2, x3)
timescB_out_ggg(x1, x2, x3)  =  timescB_out_ggg(x1, x2, x3)
U20_ggg(x1, x2, x3, x4)  =  U20_ggg(x1, x2, x3, x4)
timescB_in_gga(x1, x2, x3)  =  timescB_in_gga(x1, x2)
timescB_out_gga(x1, x2, x3)  =  timescB_out_gga(x1, x2, x3)
U20_gga(x1, x2, x3, x4)  =  U20_gga(x1, x2, x4)
U21_gga(x1, x2, x3, x4)  =  U21_gga(x1, x2, x4)
pluscD_in_gga(x1, x2, x3)  =  pluscD_in_gga(x1, x2)
pluscD_out_gga(x1, x2, x3)  =  pluscD_out_gga(x1, x2, x3)
U22_gga(x1, x2, x3, x4)  =  U22_gga(x1, x2, x4)
U21_ggg(x1, x2, x3, x4)  =  U21_ggg(x1, x2, x3, x4)
pluscD_in_ggg(x1, x2, x3)  =  pluscD_in_ggg(x1, x2, x3)
pluscD_out_ggg(x1, x2, x3)  =  pluscD_out_ggg(x1, x2, x3)
U22_ggg(x1, x2, x3, x4)  =  U22_ggg(x1, x2, x3, x4)
U19_ggg(x1, x2, x3, x4, x5)  =  U19_ggg(x1, x2, x3, x4, x5)
convertcC_in_ggg(x1, x2, x3)  =  convertcC_in_ggg(x1, x2, x3)
convertcC_out_ggg(x1, x2, x3)  =  convertcC_out_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)  =  U25_ggg(x1, x2, x3)
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)  =  U29_ggg(x1, x2, x3)
U30_ggg(x1, x2, x3)  =  U30_ggg(x1, x2, x3)
U31_ggg(x1, x2, x3)  =  U31_ggg(x1, x2, x3)
U32_ggg(x1, x2, x3, x4, x5)  =  U32_ggg(x1, x2, x3, x4, x5)
U33_ggg(x1, x2, x3, x4)  =  U33_ggg(x1, x2, x3, x4)
U24_gga(x1, x2, x3)  =  U24_gga(x1, x3)
U25_gga(x1, x2, x3)  =  U25_gga(x1, x3)
U26_gga(x1, x2, x3, x4)  =  U26_gga(x1, x2, x4)
U27_gga(x1, x2, x3, x4)  =  U27_gga(x1, x2, x4)
U28_gga(x1, x2, x3, x4)  =  U28_gga(x1, x2, x4)
U29_gga(x1, x2, x3)  =  U29_gga(x1, x2, x3)
U30_gga(x1, x2, x3)  =  U30_gga(x1, x2, x3)
U31_gga(x1, x2, x3)  =  U31_gga(x1, x2, x3)
U32_gga(x1, x2, x3, x4, x5)  =  U32_gga(x1, x2, x3, x5)
U33_gga(x1, x2, x3, x4)  =  U33_gga(x1, x2, x3, x4)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x1, x2, x4)
TIMESB_IN_GGA(x1, x2, x3)  =  TIMESB_IN_GGA(x1, x2)

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

(15) UsableRulesProof (EQUIVALENT transformation)

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:

TIMESB_IN_GGA(s(X1), X2, X3) → TIMESB_IN_GGA(X1, X2, X4)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
TIMESB_IN_GGA(x1, x2, x3)  =  TIMESB_IN_GGA(x1, x2)

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

(17) PiDPToQDPProof (SOUND transformation)

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:

TIMESB_IN_GGA(s(X1), X2) → TIMESB_IN_GGA(X1, X2)

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

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

  • TIMESB_IN_GGA(s(X1), X2) → TIMESB_IN_GGA(X1, X2)
    The graph contains the following edges 1 > 1, 2 >= 2

(20) YES

(21) Obligation:

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

CONVERTC_IN_GGA(.(0, X1), X2, X3) → CONVERTA_IN_GGA(X1, X2, X4)
CONVERTA_IN_GGA(.(0, X1), X2, X3) → CONVERTA_IN_GGA(X1, X2, X4)
CONVERTA_IN_GGA(.(s(X1), X2), X3, X4) → CONVERTC_IN_GGA(.(X1, X2), X3, X5)
CONVERTC_IN_GGA(.(s(X1), X2), X3, X4) → CONVERTC_IN_GGA(.(X1, X2), X3, X5)

The TRS R consists of the following rules:

convertcA_in_gga([], X1, 0) → convertcA_out_gga([], X1, 0)
convertcA_in_gga(.(0, X1), X2, X3) → U17_gga(X1, X2, X3, convertcA_in_gga(X1, X2, X4))
convertcA_in_gga(.(s(X1), X2), X3, s(X4)) → U19_gga(X1, X2, X3, X4, convertcC_in_gga(.(X1, X2), X3, X4))
convertcC_in_gga([], X1, 0) → convertcC_out_gga([], X1, 0)
convertcC_in_gga(.(0, X1), X2, 0) → U23_gga(X1, X2, convertcA_in_ggg(X1, X2, 0))
convertcA_in_ggg([], X1, 0) → convertcA_out_ggg([], X1, 0)
convertcA_in_ggg(.(0, X1), X2, X3) → U17_ggg(X1, X2, X3, convertcA_in_gga(X1, X2, X4))
U17_ggg(X1, X2, X3, convertcA_out_gga(X1, X2, X4)) → U18_ggg(X1, X2, X3, timescB_in_ggg(X4, X2, X3))
timescB_in_ggg(0, X1, 0) → timescB_out_ggg(0, X1, 0)
timescB_in_ggg(s(X1), X2, X3) → U20_ggg(X1, X2, X3, timescB_in_gga(X1, X2, X4))
timescB_in_gga(0, X1, 0) → timescB_out_gga(0, X1, 0)
timescB_in_gga(s(X1), X2, X3) → U20_gga(X1, X2, X3, timescB_in_gga(X1, X2, X4))
U20_gga(X1, X2, X3, timescB_out_gga(X1, X2, X4)) → U21_gga(X1, X2, X3, pluscD_in_gga(X2, X4, X3))
pluscD_in_gga(0, X1, X1) → pluscD_out_gga(0, X1, X1)
pluscD_in_gga(s(X1), X2, s(X3)) → U22_gga(X1, X2, X3, pluscD_in_gga(X1, X2, X3))
U22_gga(X1, X2, X3, pluscD_out_gga(X1, X2, X3)) → pluscD_out_gga(s(X1), X2, s(X3))
U21_gga(X1, X2, X3, pluscD_out_gga(X2, X4, X3)) → timescB_out_gga(s(X1), X2, X3)
U20_ggg(X1, X2, X3, timescB_out_gga(X1, X2, X4)) → U21_ggg(X1, X2, X3, pluscD_in_ggg(X2, X4, X3))
pluscD_in_ggg(0, X1, X1) → pluscD_out_ggg(0, X1, X1)
pluscD_in_ggg(s(X1), X2, s(X3)) → U22_ggg(X1, X2, X3, pluscD_in_ggg(X1, X2, X3))
U22_ggg(X1, X2, X3, pluscD_out_ggg(X1, X2, X3)) → pluscD_out_ggg(s(X1), X2, s(X3))
U21_ggg(X1, X2, X3, pluscD_out_ggg(X2, X4, X3)) → timescB_out_ggg(s(X1), X2, X3)
U18_ggg(X1, X2, X3, timescB_out_ggg(X4, X2, X3)) → convertcA_out_ggg(.(0, X1), X2, X3)
convertcA_in_ggg(.(s(X1), X2), X3, s(X4)) → U19_ggg(X1, X2, X3, X4, convertcC_in_ggg(.(X1, X2), X3, X4))
convertcC_in_ggg([], X1, 0) → convertcC_out_ggg([], X1, 0)
convertcC_in_ggg(.(0, X1), X2, 0) → U23_ggg(X1, X2, convertcA_in_ggg(X1, X2, 0))
U23_ggg(X1, X2, convertcA_out_ggg(X1, X2, 0)) → convertcC_out_ggg(.(0, X1), X2, 0)
convertcC_in_ggg(.(0, X1), 0, X2) → U24_ggg(X1, X2, convertcA_in_gga(X1, 0, s(X3)))
U24_ggg(X1, X2, convertcA_out_gga(X1, 0, s(X3))) → U25_ggg(X1, X2, timescB_in_ggg(X3, 0, X2))
U25_ggg(X1, X2, timescB_out_ggg(X3, 0, X2)) → convertcC_out_ggg(.(0, X1), 0, X2)
convertcC_in_ggg(.(0, X1), s(X2), s(X3)) → U26_ggg(X1, X2, X3, convertcA_in_gga(X1, s(X2), s(X4)))
U26_ggg(X1, X2, X3, convertcA_out_gga(X1, s(X2), s(X4))) → U27_ggg(X1, X2, X3, timescB_in_gga(X4, s(X2), X5))
U27_ggg(X1, X2, X3, timescB_out_gga(X4, s(X2), X5)) → U28_ggg(X1, X2, X3, pluscD_in_ggg(X2, X5, X3))
U28_ggg(X1, X2, X3, pluscD_out_ggg(X2, X5, X3)) → convertcC_out_ggg(.(0, X1), s(X2), s(X3))
convertcC_in_ggg(.(0, X1), s(X2), 0) → U29_ggg(X1, X2, convertcA_in_gga(X1, s(X2), s(X3)))
U29_ggg(X1, X2, convertcA_out_gga(X1, s(X2), s(X3))) → U30_ggg(X1, X2, timescB_in_gga(X3, s(X2), X4))
U30_ggg(X1, X2, timescB_out_gga(X3, s(X2), X4)) → U31_ggg(X1, X2, pluscD_in_ggg(X2, X4, 0))
U31_ggg(X1, X2, pluscD_out_ggg(X2, X4, 0)) → convertcC_out_ggg(.(0, X1), s(X2), 0)
convertcC_in_ggg(.(s(X1), X2), X3, s(X4)) → U32_ggg(X1, X2, X3, X4, convertcC_in_ggg(.(X1, X2), X3, X4))
convertcC_in_ggg(.(s(X1), X2), X3, 0) → U33_ggg(X1, X2, X3, convertcC_in_ggg(.(X1, X2), X3, 0))
U33_ggg(X1, X2, X3, convertcC_out_ggg(.(X1, X2), X3, 0)) → convertcC_out_ggg(.(s(X1), X2), X3, 0)
U32_ggg(X1, X2, X3, X4, convertcC_out_ggg(.(X1, X2), X3, X4)) → convertcC_out_ggg(.(s(X1), X2), X3, s(X4))
U19_ggg(X1, X2, X3, X4, convertcC_out_ggg(.(X1, X2), X3, X4)) → convertcA_out_ggg(.(s(X1), X2), X3, s(X4))
U23_gga(X1, X2, convertcA_out_ggg(X1, X2, 0)) → convertcC_out_gga(.(0, X1), X2, 0)
convertcC_in_gga(.(0, X1), 0, X2) → U24_gga(X1, X2, convertcA_in_gga(X1, 0, s(X3)))
U24_gga(X1, X2, convertcA_out_gga(X1, 0, s(X3))) → U25_gga(X1, X2, timescB_in_gga(X3, 0, X2))
U25_gga(X1, X2, timescB_out_gga(X3, 0, X2)) → convertcC_out_gga(.(0, X1), 0, X2)
convertcC_in_gga(.(0, X1), s(X2), s(X3)) → U26_gga(X1, X2, X3, convertcA_in_gga(X1, s(X2), s(X4)))
U26_gga(X1, X2, X3, convertcA_out_gga(X1, s(X2), s(X4))) → U27_gga(X1, X2, X3, timescB_in_gga(X4, s(X2), X5))
U27_gga(X1, X2, X3, timescB_out_gga(X4, s(X2), X5)) → U28_gga(X1, X2, X3, pluscD_in_gga(X2, X5, X3))
U28_gga(X1, X2, X3, pluscD_out_gga(X2, X5, X3)) → convertcC_out_gga(.(0, X1), s(X2), s(X3))
convertcC_in_gga(.(0, X1), s(X2), 0) → U29_gga(X1, X2, convertcA_in_gga(X1, s(X2), s(X3)))
U29_gga(X1, X2, convertcA_out_gga(X1, s(X2), s(X3))) → U30_gga(X1, X2, timescB_in_gga(X3, s(X2), X4))
U30_gga(X1, X2, timescB_out_gga(X3, s(X2), X4)) → U31_gga(X1, X2, pluscD_in_ggg(X2, X4, 0))
U31_gga(X1, X2, pluscD_out_ggg(X2, X4, 0)) → convertcC_out_gga(.(0, X1), s(X2), 0)
convertcC_in_gga(.(s(X1), X2), X3, s(X4)) → U32_gga(X1, X2, X3, X4, convertcC_in_gga(.(X1, X2), X3, X4))
convertcC_in_gga(.(s(X1), X2), X3, 0) → U33_gga(X1, X2, X3, convertcC_in_ggg(.(X1, X2), X3, 0))
U33_gga(X1, X2, X3, convertcC_out_ggg(.(X1, X2), X3, 0)) → convertcC_out_gga(.(s(X1), X2), X3, 0)
U32_gga(X1, X2, X3, X4, convertcC_out_gga(.(X1, X2), X3, X4)) → convertcC_out_gga(.(s(X1), X2), X3, s(X4))
U19_gga(X1, X2, X3, X4, convertcC_out_gga(.(X1, X2), X3, X4)) → convertcA_out_gga(.(s(X1), X2), X3, s(X4))
U17_gga(X1, X2, X3, convertcA_out_gga(X1, X2, X4)) → U18_gga(X1, X2, X3, timescB_in_gga(X4, X2, X3))
U18_gga(X1, X2, X3, timescB_out_gga(X4, X2, X3)) → convertcA_out_gga(.(0, X1), X2, X3)

The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
0  =  0
convertcA_in_gga(x1, x2, x3)  =  convertcA_in_gga(x1, x2)
[]  =  []
convertcA_out_gga(x1, x2, x3)  =  convertcA_out_gga(x1, x2, x3)
U17_gga(x1, x2, x3, x4)  =  U17_gga(x1, x2, x4)
s(x1)  =  s(x1)
U19_gga(x1, x2, x3, x4, x5)  =  U19_gga(x1, x2, x3, x5)
convertcC_in_gga(x1, x2, x3)  =  convertcC_in_gga(x1, x2)
convertcC_out_gga(x1, x2, x3)  =  convertcC_out_gga(x1, x2, x3)
U23_gga(x1, x2, x3)  =  U23_gga(x1, x2, x3)
convertcA_in_ggg(x1, x2, x3)  =  convertcA_in_ggg(x1, x2, x3)
convertcA_out_ggg(x1, x2, x3)  =  convertcA_out_ggg(x1, x2, x3)
U17_ggg(x1, x2, x3, x4)  =  U17_ggg(x1, x2, x3, x4)
U18_ggg(x1, x2, x3, x4)  =  U18_ggg(x1, x2, x3, x4)
timescB_in_ggg(x1, x2, x3)  =  timescB_in_ggg(x1, x2, x3)
timescB_out_ggg(x1, x2, x3)  =  timescB_out_ggg(x1, x2, x3)
U20_ggg(x1, x2, x3, x4)  =  U20_ggg(x1, x2, x3, x4)
timescB_in_gga(x1, x2, x3)  =  timescB_in_gga(x1, x2)
timescB_out_gga(x1, x2, x3)  =  timescB_out_gga(x1, x2, x3)
U20_gga(x1, x2, x3, x4)  =  U20_gga(x1, x2, x4)
U21_gga(x1, x2, x3, x4)  =  U21_gga(x1, x2, x4)
pluscD_in_gga(x1, x2, x3)  =  pluscD_in_gga(x1, x2)
pluscD_out_gga(x1, x2, x3)  =  pluscD_out_gga(x1, x2, x3)
U22_gga(x1, x2, x3, x4)  =  U22_gga(x1, x2, x4)
U21_ggg(x1, x2, x3, x4)  =  U21_ggg(x1, x2, x3, x4)
pluscD_in_ggg(x1, x2, x3)  =  pluscD_in_ggg(x1, x2, x3)
pluscD_out_ggg(x1, x2, x3)  =  pluscD_out_ggg(x1, x2, x3)
U22_ggg(x1, x2, x3, x4)  =  U22_ggg(x1, x2, x3, x4)
U19_ggg(x1, x2, x3, x4, x5)  =  U19_ggg(x1, x2, x3, x4, x5)
convertcC_in_ggg(x1, x2, x3)  =  convertcC_in_ggg(x1, x2, x3)
convertcC_out_ggg(x1, x2, x3)  =  convertcC_out_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)  =  U25_ggg(x1, x2, x3)
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)  =  U29_ggg(x1, x2, x3)
U30_ggg(x1, x2, x3)  =  U30_ggg(x1, x2, x3)
U31_ggg(x1, x2, x3)  =  U31_ggg(x1, x2, x3)
U32_ggg(x1, x2, x3, x4, x5)  =  U32_ggg(x1, x2, x3, x4, x5)
U33_ggg(x1, x2, x3, x4)  =  U33_ggg(x1, x2, x3, x4)
U24_gga(x1, x2, x3)  =  U24_gga(x1, x3)
U25_gga(x1, x2, x3)  =  U25_gga(x1, x3)
U26_gga(x1, x2, x3, x4)  =  U26_gga(x1, x2, x4)
U27_gga(x1, x2, x3, x4)  =  U27_gga(x1, x2, x4)
U28_gga(x1, x2, x3, x4)  =  U28_gga(x1, x2, x4)
U29_gga(x1, x2, x3)  =  U29_gga(x1, x2, x3)
U30_gga(x1, x2, x3)  =  U30_gga(x1, x2, x3)
U31_gga(x1, x2, x3)  =  U31_gga(x1, x2, x3)
U32_gga(x1, x2, x3, x4, x5)  =  U32_gga(x1, x2, x3, x5)
U33_gga(x1, x2, x3, x4)  =  U33_gga(x1, x2, x3, x4)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x1, x2, x4)
CONVERTC_IN_GGA(x1, x2, x3)  =  CONVERTC_IN_GGA(x1, x2)
CONVERTA_IN_GGA(x1, x2, x3)  =  CONVERTA_IN_GGA(x1, x2)

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

(22) UsableRulesProof (EQUIVALENT transformation)

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

(23) Obligation:

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

CONVERTC_IN_GGA(.(0, X1), X2, X3) → CONVERTA_IN_GGA(X1, X2, X4)
CONVERTA_IN_GGA(.(0, X1), X2, X3) → CONVERTA_IN_GGA(X1, X2, X4)
CONVERTA_IN_GGA(.(s(X1), X2), X3, X4) → CONVERTC_IN_GGA(.(X1, X2), X3, X5)
CONVERTC_IN_GGA(.(s(X1), X2), X3, X4) → CONVERTC_IN_GGA(.(X1, X2), X3, X5)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
0  =  0
s(x1)  =  s(x1)
CONVERTC_IN_GGA(x1, x2, x3)  =  CONVERTC_IN_GGA(x1, x2)
CONVERTA_IN_GGA(x1, x2, x3)  =  CONVERTA_IN_GGA(x1, x2)

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

(24) PiDPToQDPProof (SOUND transformation)

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

(25) Obligation:

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

CONVERTC_IN_GGA(.(0, X1), X2) → CONVERTA_IN_GGA(X1, X2)
CONVERTA_IN_GGA(.(0, X1), X2) → CONVERTA_IN_GGA(X1, X2)
CONVERTA_IN_GGA(.(s(X1), X2), X3) → CONVERTC_IN_GGA(.(X1, X2), X3)
CONVERTC_IN_GGA(.(s(X1), X2), X3) → CONVERTC_IN_GGA(.(X1, X2), X3)

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

(26) UsableRulesReductionPairsProof (EQUIVALENT transformation)

By using the usable rules with reduction pair processor [LPAR04] with a polynomial ordering [POLO], all dependency pairs and the corresponding usable rules [FROCOS05] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well.

The following dependency pairs can be deleted:

CONVERTC_IN_GGA(.(0, X1), X2) → CONVERTA_IN_GGA(X1, X2)
CONVERTA_IN_GGA(.(0, X1), X2) → CONVERTA_IN_GGA(X1, X2)
CONVERTA_IN_GGA(.(s(X1), X2), X3) → CONVERTC_IN_GGA(.(X1, X2), X3)
CONVERTC_IN_GGA(.(s(X1), X2), X3) → CONVERTC_IN_GGA(.(X1, X2), X3)
No rules are removed from R.

Used ordering: POLO with Polynomial interpretation [POLO]:

POL(.(x1, x2)) = 1 + x1 + 2·x2   
POL(0) = 0   
POL(CONVERTA_IN_GGA(x1, x2)) = 2 + 2·x1 + x2   
POL(CONVERTC_IN_GGA(x1, x2)) = 2 + x1 + x2   
POL(s(x1)) = 2 + 2·x1   

(27) Obligation:

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

(28) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(29) YES