(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).

Queries:

convert(g,g,a).

(1) CutEliminatorProof (SOUND transformation)

Eliminated all cuts by simply ignoring them[PROLOG].

(2) 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).

Queries:

convert(g,g,a).

(3) PrologToPiTRSProof (SOUND transformation)

We use the technique of [LOPSTR]. With regard to the inferred argument filtering the predicates were used in the following modes:
convert_in: (b,b,f) (f,b,f)
times_in: (b,b,f)
plus_in: (b,b,f)
Transforming Prolog into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:

convert_in_gga([], X1, Z) → U1_gga(X1, Z, eq_in_ag(Z, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_gga(X1, Z, eq_out_ag(Z, 0)) → convert_out_gga([], X1, Z)
convert_in_gga(X, Y, Z) → U2_gga(X, Y, Z, head_in_gg(X, 0))
head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
U2_gga(X, Y, Z, head_out_gg(X, 0)) → U3_gga(X, Y, Z, tail_in_ga(X, T))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs), Xs) → tail_out_ga(.(X4, Xs), Xs)
U3_gga(X, Y, Z, tail_out_ga(X, T)) → U4_gga(X, Y, Z, T, convert_in_gga(T, Y, U))
convert_in_gga(X, Y, Z) → U6_gga(X, Y, Z, head_in_ga(X, H))
head_in_ga([], X2) → head_out_ga([], X2)
head_in_ga(.(H, X3), H) → head_out_ga(.(H, X3), H)
U6_gga(X, Y, Z, head_out_ga(X, H)) → U7_gga(X, Y, Z, H, p_in_aa(H, P))
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_aa(0, 0) → p_out_aa(0, 0)
U7_gga(X, Y, Z, H, p_out_aa(H, P)) → U8_gga(X, Y, Z, H, P, tail_in_ga(X, T))
U8_gga(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_gga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
convert_in_aga([], X1, Z) → U1_aga(X1, Z, eq_in_ag(Z, 0))
U1_aga(X1, Z, eq_out_ag(Z, 0)) → convert_out_aga([], X1, Z)
convert_in_aga(X, Y, Z) → U2_aga(X, Y, Z, head_in_ag(X, 0))
head_in_ag([], X2) → head_out_ag([], X2)
head_in_ag(.(H, X3), H) → head_out_ag(.(H, X3), H)
U2_aga(X, Y, Z, head_out_ag(X, 0)) → U3_aga(X, Y, Z, tail_in_aa(X, T))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X4, Xs), Xs) → tail_out_aa(.(X4, Xs), Xs)
U3_aga(X, Y, Z, tail_out_aa(X, T)) → U4_aga(X, Y, Z, T, convert_in_aga(T, Y, U))
convert_in_aga(X, Y, Z) → U6_aga(X, Y, Z, head_in_aa(X, H))
head_in_aa([], X2) → head_out_aa([], X2)
head_in_aa(.(H, X3), H) → head_out_aa(.(H, X3), H)
U6_aga(X, Y, Z, head_out_aa(X, H)) → U7_aga(X, Y, Z, H, p_in_aa(H, P))
U7_aga(X, Y, Z, H, p_out_aa(H, P)) → U8_aga(X, Y, Z, H, P, tail_in_aa(X, T))
U8_aga(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_aga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U9_aga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_aga(X, Y, Z, p_in_ag(Z, U))
p_in_ag(s(X), X) → p_out_ag(s(X), X)
p_in_ag(0, 0) → p_out_ag(0, 0)
U10_aga(X, Y, Z, p_out_ag(Z, U)) → convert_out_aga(X, Y, Z)
U4_aga(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_aga(X, Y, Z, times_in_gga(U, Y, Z))
times_in_gga(0, Y, Z) → U11_gga(Y, Z, eq_in_ag(Z, 0))
U11_gga(Y, Z, eq_out_ag(Z, 0)) → times_out_gga(0, Y, Z)
times_in_gga(X, Y, Z) → U12_gga(X, Y, Z, p_in_ga(X, P))
p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)
U12_gga(X, Y, Z, p_out_ga(X, P)) → U13_gga(X, Y, Z, P, times_in_gga(P, Y, U))
U13_gga(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_gga(X, Y, Z, plus_in_gga(Y, U, Z))
plus_in_gga(0, Y, Z) → U15_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U15_gga(Y, Z, eq_out_ga(Y, Z)) → plus_out_gga(0, Y, Z)
plus_in_gga(X, Y, Z) → U16_gga(X, Y, Z, p_in_ga(X, P))
U16_gga(X, Y, Z, p_out_ga(X, P)) → U17_gga(X, Y, Z, P, plus_in_gga(P, Y, U))
U17_gga(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_gga(X, Y, Z, p_in_ag(Z, U))
U18_gga(X, Y, Z, p_out_ag(Z, U)) → plus_out_gga(X, Y, Z)
U14_gga(X, Y, Z, plus_out_gga(Y, U, Z)) → times_out_gga(X, Y, Z)
U5_aga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_aga(X, Y, Z)
U9_gga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_gga(X, Y, Z, p_in_ag(Z, U))
U10_gga(X, Y, Z, p_out_ag(Z, U)) → convert_out_gga(X, Y, Z)
U4_gga(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_gga(X, Y, Z, times_in_gga(U, Y, Z))
U5_gga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_gga(X, Y, Z)

The argument filtering Pi contains the following mapping:
convert_in_gga(x1, x2, x3)  =  convert_in_gga(x1, x2)
[]  =  []
U1_gga(x1, x2, x3)  =  U1_gga(x3)
eq_in_ag(x1, x2)  =  eq_in_ag(x2)
eq_out_ag(x1, x2)  =  eq_out_ag(x1)
0  =  0
convert_out_gga(x1, x2, x3)  =  convert_out_gga(x3)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
head_in_gg(x1, x2)  =  head_in_gg(x1, x2)
head_out_gg(x1, x2)  =  head_out_gg
.(x1, x2)  =  .(x1, x2)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x2, x4)
tail_in_ga(x1, x2)  =  tail_in_ga(x1)
tail_out_ga(x1, x2)  =  tail_out_ga(x2)
U4_gga(x1, x2, x3, x4, x5)  =  U4_gga(x2, x5)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
head_in_ga(x1, x2)  =  head_in_ga(x1)
head_out_ga(x1, x2)  =  head_out_ga
U7_gga(x1, x2, x3, x4, x5)  =  U7_gga(x1, x2, x5)
p_in_aa(x1, x2)  =  p_in_aa
p_out_aa(x1, x2)  =  p_out_aa
U8_gga(x1, x2, x3, x4, x5, x6)  =  U8_gga(x2, x6)
U9_gga(x1, x2, x3, x4, x5, x6, x7)  =  U9_gga(x7)
convert_in_aga(x1, x2, x3)  =  convert_in_aga(x2)
U1_aga(x1, x2, x3)  =  U1_aga(x3)
convert_out_aga(x1, x2, x3)  =  convert_out_aga(x3)
U2_aga(x1, x2, x3, x4)  =  U2_aga(x2, x4)
head_in_ag(x1, x2)  =  head_in_ag(x2)
head_out_ag(x1, x2)  =  head_out_ag
U3_aga(x1, x2, x3, x4)  =  U3_aga(x2, x4)
tail_in_aa(x1, x2)  =  tail_in_aa
tail_out_aa(x1, x2)  =  tail_out_aa
U4_aga(x1, x2, x3, x4, x5)  =  U4_aga(x2, x5)
U6_aga(x1, x2, x3, x4)  =  U6_aga(x2, x4)
head_in_aa(x1, x2)  =  head_in_aa
head_out_aa(x1, x2)  =  head_out_aa
U7_aga(x1, x2, x3, x4, x5)  =  U7_aga(x2, x5)
U8_aga(x1, x2, x3, x4, x5, x6)  =  U8_aga(x2, x6)
U9_aga(x1, x2, x3, x4, x5, x6, x7)  =  U9_aga(x7)
U10_aga(x1, x2, x3, x4)  =  U10_aga(x4)
p_in_ag(x1, x2)  =  p_in_ag(x2)
p_out_ag(x1, x2)  =  p_out_ag(x1)
U5_aga(x1, x2, x3, x4)  =  U5_aga(x4)
times_in_gga(x1, x2, x3)  =  times_in_gga(x1, x2)
U11_gga(x1, x2, x3)  =  U11_gga(x3)
times_out_gga(x1, x2, x3)  =  times_out_gga(x3)
U12_gga(x1, x2, x3, x4)  =  U12_gga(x2, x4)
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x2)
U13_gga(x1, x2, x3, x4, x5)  =  U13_gga(x2, x5)
U14_gga(x1, x2, x3, x4)  =  U14_gga(x4)
plus_in_gga(x1, x2, x3)  =  plus_in_gga(x1, x2)
U15_gga(x1, x2, x3)  =  U15_gga(x3)
eq_in_ga(x1, x2)  =  eq_in_ga(x1)
eq_out_ga(x1, x2)  =  eq_out_ga(x2)
plus_out_gga(x1, x2, x3)  =  plus_out_gga(x3)
U16_gga(x1, x2, x3, x4)  =  U16_gga(x2, x4)
U17_gga(x1, x2, x3, x4, x5)  =  U17_gga(x5)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x4)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x4)

Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog

(4) Obligation:

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

convert_in_gga([], X1, Z) → U1_gga(X1, Z, eq_in_ag(Z, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_gga(X1, Z, eq_out_ag(Z, 0)) → convert_out_gga([], X1, Z)
convert_in_gga(X, Y, Z) → U2_gga(X, Y, Z, head_in_gg(X, 0))
head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
U2_gga(X, Y, Z, head_out_gg(X, 0)) → U3_gga(X, Y, Z, tail_in_ga(X, T))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs), Xs) → tail_out_ga(.(X4, Xs), Xs)
U3_gga(X, Y, Z, tail_out_ga(X, T)) → U4_gga(X, Y, Z, T, convert_in_gga(T, Y, U))
convert_in_gga(X, Y, Z) → U6_gga(X, Y, Z, head_in_ga(X, H))
head_in_ga([], X2) → head_out_ga([], X2)
head_in_ga(.(H, X3), H) → head_out_ga(.(H, X3), H)
U6_gga(X, Y, Z, head_out_ga(X, H)) → U7_gga(X, Y, Z, H, p_in_aa(H, P))
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_aa(0, 0) → p_out_aa(0, 0)
U7_gga(X, Y, Z, H, p_out_aa(H, P)) → U8_gga(X, Y, Z, H, P, tail_in_ga(X, T))
U8_gga(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_gga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
convert_in_aga([], X1, Z) → U1_aga(X1, Z, eq_in_ag(Z, 0))
U1_aga(X1, Z, eq_out_ag(Z, 0)) → convert_out_aga([], X1, Z)
convert_in_aga(X, Y, Z) → U2_aga(X, Y, Z, head_in_ag(X, 0))
head_in_ag([], X2) → head_out_ag([], X2)
head_in_ag(.(H, X3), H) → head_out_ag(.(H, X3), H)
U2_aga(X, Y, Z, head_out_ag(X, 0)) → U3_aga(X, Y, Z, tail_in_aa(X, T))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X4, Xs), Xs) → tail_out_aa(.(X4, Xs), Xs)
U3_aga(X, Y, Z, tail_out_aa(X, T)) → U4_aga(X, Y, Z, T, convert_in_aga(T, Y, U))
convert_in_aga(X, Y, Z) → U6_aga(X, Y, Z, head_in_aa(X, H))
head_in_aa([], X2) → head_out_aa([], X2)
head_in_aa(.(H, X3), H) → head_out_aa(.(H, X3), H)
U6_aga(X, Y, Z, head_out_aa(X, H)) → U7_aga(X, Y, Z, H, p_in_aa(H, P))
U7_aga(X, Y, Z, H, p_out_aa(H, P)) → U8_aga(X, Y, Z, H, P, tail_in_aa(X, T))
U8_aga(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_aga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U9_aga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_aga(X, Y, Z, p_in_ag(Z, U))
p_in_ag(s(X), X) → p_out_ag(s(X), X)
p_in_ag(0, 0) → p_out_ag(0, 0)
U10_aga(X, Y, Z, p_out_ag(Z, U)) → convert_out_aga(X, Y, Z)
U4_aga(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_aga(X, Y, Z, times_in_gga(U, Y, Z))
times_in_gga(0, Y, Z) → U11_gga(Y, Z, eq_in_ag(Z, 0))
U11_gga(Y, Z, eq_out_ag(Z, 0)) → times_out_gga(0, Y, Z)
times_in_gga(X, Y, Z) → U12_gga(X, Y, Z, p_in_ga(X, P))
p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)
U12_gga(X, Y, Z, p_out_ga(X, P)) → U13_gga(X, Y, Z, P, times_in_gga(P, Y, U))
U13_gga(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_gga(X, Y, Z, plus_in_gga(Y, U, Z))
plus_in_gga(0, Y, Z) → U15_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U15_gga(Y, Z, eq_out_ga(Y, Z)) → plus_out_gga(0, Y, Z)
plus_in_gga(X, Y, Z) → U16_gga(X, Y, Z, p_in_ga(X, P))
U16_gga(X, Y, Z, p_out_ga(X, P)) → U17_gga(X, Y, Z, P, plus_in_gga(P, Y, U))
U17_gga(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_gga(X, Y, Z, p_in_ag(Z, U))
U18_gga(X, Y, Z, p_out_ag(Z, U)) → plus_out_gga(X, Y, Z)
U14_gga(X, Y, Z, plus_out_gga(Y, U, Z)) → times_out_gga(X, Y, Z)
U5_aga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_aga(X, Y, Z)
U9_gga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_gga(X, Y, Z, p_in_ag(Z, U))
U10_gga(X, Y, Z, p_out_ag(Z, U)) → convert_out_gga(X, Y, Z)
U4_gga(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_gga(X, Y, Z, times_in_gga(U, Y, Z))
U5_gga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_gga(X, Y, Z)

The argument filtering Pi contains the following mapping:
convert_in_gga(x1, x2, x3)  =  convert_in_gga(x1, x2)
[]  =  []
U1_gga(x1, x2, x3)  =  U1_gga(x3)
eq_in_ag(x1, x2)  =  eq_in_ag(x2)
eq_out_ag(x1, x2)  =  eq_out_ag(x1)
0  =  0
convert_out_gga(x1, x2, x3)  =  convert_out_gga(x3)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
head_in_gg(x1, x2)  =  head_in_gg(x1, x2)
head_out_gg(x1, x2)  =  head_out_gg
.(x1, x2)  =  .(x1, x2)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x2, x4)
tail_in_ga(x1, x2)  =  tail_in_ga(x1)
tail_out_ga(x1, x2)  =  tail_out_ga(x2)
U4_gga(x1, x2, x3, x4, x5)  =  U4_gga(x2, x5)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
head_in_ga(x1, x2)  =  head_in_ga(x1)
head_out_ga(x1, x2)  =  head_out_ga
U7_gga(x1, x2, x3, x4, x5)  =  U7_gga(x1, x2, x5)
p_in_aa(x1, x2)  =  p_in_aa
p_out_aa(x1, x2)  =  p_out_aa
U8_gga(x1, x2, x3, x4, x5, x6)  =  U8_gga(x2, x6)
U9_gga(x1, x2, x3, x4, x5, x6, x7)  =  U9_gga(x7)
convert_in_aga(x1, x2, x3)  =  convert_in_aga(x2)
U1_aga(x1, x2, x3)  =  U1_aga(x3)
convert_out_aga(x1, x2, x3)  =  convert_out_aga(x3)
U2_aga(x1, x2, x3, x4)  =  U2_aga(x2, x4)
head_in_ag(x1, x2)  =  head_in_ag(x2)
head_out_ag(x1, x2)  =  head_out_ag
U3_aga(x1, x2, x3, x4)  =  U3_aga(x2, x4)
tail_in_aa(x1, x2)  =  tail_in_aa
tail_out_aa(x1, x2)  =  tail_out_aa
U4_aga(x1, x2, x3, x4, x5)  =  U4_aga(x2, x5)
U6_aga(x1, x2, x3, x4)  =  U6_aga(x2, x4)
head_in_aa(x1, x2)  =  head_in_aa
head_out_aa(x1, x2)  =  head_out_aa
U7_aga(x1, x2, x3, x4, x5)  =  U7_aga(x2, x5)
U8_aga(x1, x2, x3, x4, x5, x6)  =  U8_aga(x2, x6)
U9_aga(x1, x2, x3, x4, x5, x6, x7)  =  U9_aga(x7)
U10_aga(x1, x2, x3, x4)  =  U10_aga(x4)
p_in_ag(x1, x2)  =  p_in_ag(x2)
p_out_ag(x1, x2)  =  p_out_ag(x1)
U5_aga(x1, x2, x3, x4)  =  U5_aga(x4)
times_in_gga(x1, x2, x3)  =  times_in_gga(x1, x2)
U11_gga(x1, x2, x3)  =  U11_gga(x3)
times_out_gga(x1, x2, x3)  =  times_out_gga(x3)
U12_gga(x1, x2, x3, x4)  =  U12_gga(x2, x4)
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x2)
U13_gga(x1, x2, x3, x4, x5)  =  U13_gga(x2, x5)
U14_gga(x1, x2, x3, x4)  =  U14_gga(x4)
plus_in_gga(x1, x2, x3)  =  plus_in_gga(x1, x2)
U15_gga(x1, x2, x3)  =  U15_gga(x3)
eq_in_ga(x1, x2)  =  eq_in_ga(x1)
eq_out_ga(x1, x2)  =  eq_out_ga(x2)
plus_out_gga(x1, x2, x3)  =  plus_out_gga(x3)
U16_gga(x1, x2, x3, x4)  =  U16_gga(x2, x4)
U17_gga(x1, x2, x3, x4, x5)  =  U17_gga(x5)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x4)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x4)

(5) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem:
Pi DP problem:
The TRS P consists of the following rules:

CONVERT_IN_GGA([], X1, Z) → U1_GGA(X1, Z, eq_in_ag(Z, 0))
CONVERT_IN_GGA([], X1, Z) → EQ_IN_AG(Z, 0)
CONVERT_IN_GGA(X, Y, Z) → U2_GGA(X, Y, Z, head_in_gg(X, 0))
CONVERT_IN_GGA(X, Y, Z) → HEAD_IN_GG(X, 0)
U2_GGA(X, Y, Z, head_out_gg(X, 0)) → U3_GGA(X, Y, Z, tail_in_ga(X, T))
U2_GGA(X, Y, Z, head_out_gg(X, 0)) → TAIL_IN_GA(X, T)
U3_GGA(X, Y, Z, tail_out_ga(X, T)) → U4_GGA(X, Y, Z, T, convert_in_gga(T, Y, U))
U3_GGA(X, Y, Z, tail_out_ga(X, T)) → CONVERT_IN_GGA(T, Y, U)
CONVERT_IN_GGA(X, Y, Z) → U6_GGA(X, Y, Z, head_in_ga(X, H))
CONVERT_IN_GGA(X, Y, Z) → HEAD_IN_GA(X, H)
U6_GGA(X, Y, Z, head_out_ga(X, H)) → U7_GGA(X, Y, Z, H, p_in_aa(H, P))
U6_GGA(X, Y, Z, head_out_ga(X, H)) → P_IN_AA(H, P)
U7_GGA(X, Y, Z, H, p_out_aa(H, P)) → U8_GGA(X, Y, Z, H, P, tail_in_ga(X, T))
U7_GGA(X, Y, Z, H, p_out_aa(H, P)) → TAIL_IN_GA(X, T)
U8_GGA(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_GGA(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U8_GGA(X, Y, Z, H, P, tail_out_ga(X, T)) → CONVERT_IN_AGA(.(P, T), Y, U)
CONVERT_IN_AGA([], X1, Z) → U1_AGA(X1, Z, eq_in_ag(Z, 0))
CONVERT_IN_AGA([], X1, Z) → EQ_IN_AG(Z, 0)
CONVERT_IN_AGA(X, Y, Z) → U2_AGA(X, Y, Z, head_in_ag(X, 0))
CONVERT_IN_AGA(X, Y, Z) → HEAD_IN_AG(X, 0)
U2_AGA(X, Y, Z, head_out_ag(X, 0)) → U3_AGA(X, Y, Z, tail_in_aa(X, T))
U2_AGA(X, Y, Z, head_out_ag(X, 0)) → TAIL_IN_AA(X, T)
U3_AGA(X, Y, Z, tail_out_aa(X, T)) → U4_AGA(X, Y, Z, T, convert_in_aga(T, Y, U))
U3_AGA(X, Y, Z, tail_out_aa(X, T)) → CONVERT_IN_AGA(T, Y, U)
CONVERT_IN_AGA(X, Y, Z) → U6_AGA(X, Y, Z, head_in_aa(X, H))
CONVERT_IN_AGA(X, Y, Z) → HEAD_IN_AA(X, H)
U6_AGA(X, Y, Z, head_out_aa(X, H)) → U7_AGA(X, Y, Z, H, p_in_aa(H, P))
U6_AGA(X, Y, Z, head_out_aa(X, H)) → P_IN_AA(H, P)
U7_AGA(X, Y, Z, H, p_out_aa(H, P)) → U8_AGA(X, Y, Z, H, P, tail_in_aa(X, T))
U7_AGA(X, Y, Z, H, p_out_aa(H, P)) → TAIL_IN_AA(X, T)
U8_AGA(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_AGA(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U8_AGA(X, Y, Z, H, P, tail_out_aa(X, T)) → CONVERT_IN_AGA(.(P, T), Y, U)
U9_AGA(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_AGA(X, Y, Z, p_in_ag(Z, U))
U9_AGA(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → P_IN_AG(Z, U)
U4_AGA(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_AGA(X, Y, Z, times_in_gga(U, Y, Z))
U4_AGA(X, Y, Z, T, convert_out_aga(T, Y, U)) → TIMES_IN_GGA(U, Y, Z)
TIMES_IN_GGA(0, Y, Z) → U11_GGA(Y, Z, eq_in_ag(Z, 0))
TIMES_IN_GGA(0, Y, Z) → EQ_IN_AG(Z, 0)
TIMES_IN_GGA(X, Y, Z) → U12_GGA(X, Y, Z, p_in_ga(X, P))
TIMES_IN_GGA(X, Y, Z) → P_IN_GA(X, P)
U12_GGA(X, Y, Z, p_out_ga(X, P)) → U13_GGA(X, Y, Z, P, times_in_gga(P, Y, U))
U12_GGA(X, Y, Z, p_out_ga(X, P)) → TIMES_IN_GGA(P, Y, U)
U13_GGA(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_GGA(X, Y, Z, plus_in_gga(Y, U, Z))
U13_GGA(X, Y, Z, P, times_out_gga(P, Y, U)) → PLUS_IN_GGA(Y, U, Z)
PLUS_IN_GGA(0, Y, Z) → U15_GGA(Y, Z, eq_in_ga(Y, Z))
PLUS_IN_GGA(0, Y, Z) → EQ_IN_GA(Y, Z)
PLUS_IN_GGA(X, Y, Z) → U16_GGA(X, Y, Z, p_in_ga(X, P))
PLUS_IN_GGA(X, Y, Z) → P_IN_GA(X, P)
U16_GGA(X, Y, Z, p_out_ga(X, P)) → U17_GGA(X, Y, Z, P, plus_in_gga(P, Y, U))
U16_GGA(X, Y, Z, p_out_ga(X, P)) → PLUS_IN_GGA(P, Y, U)
U17_GGA(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_GGA(X, Y, Z, p_in_ag(Z, U))
U17_GGA(X, Y, Z, P, plus_out_gga(P, Y, U)) → P_IN_AG(Z, U)
U9_GGA(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_GGA(X, Y, Z, p_in_ag(Z, U))
U9_GGA(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → P_IN_AG(Z, U)
U4_GGA(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_GGA(X, Y, Z, times_in_gga(U, Y, Z))
U4_GGA(X, Y, Z, T, convert_out_gga(T, Y, U)) → TIMES_IN_GGA(U, Y, Z)

The TRS R consists of the following rules:

convert_in_gga([], X1, Z) → U1_gga(X1, Z, eq_in_ag(Z, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_gga(X1, Z, eq_out_ag(Z, 0)) → convert_out_gga([], X1, Z)
convert_in_gga(X, Y, Z) → U2_gga(X, Y, Z, head_in_gg(X, 0))
head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
U2_gga(X, Y, Z, head_out_gg(X, 0)) → U3_gga(X, Y, Z, tail_in_ga(X, T))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs), Xs) → tail_out_ga(.(X4, Xs), Xs)
U3_gga(X, Y, Z, tail_out_ga(X, T)) → U4_gga(X, Y, Z, T, convert_in_gga(T, Y, U))
convert_in_gga(X, Y, Z) → U6_gga(X, Y, Z, head_in_ga(X, H))
head_in_ga([], X2) → head_out_ga([], X2)
head_in_ga(.(H, X3), H) → head_out_ga(.(H, X3), H)
U6_gga(X, Y, Z, head_out_ga(X, H)) → U7_gga(X, Y, Z, H, p_in_aa(H, P))
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_aa(0, 0) → p_out_aa(0, 0)
U7_gga(X, Y, Z, H, p_out_aa(H, P)) → U8_gga(X, Y, Z, H, P, tail_in_ga(X, T))
U8_gga(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_gga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
convert_in_aga([], X1, Z) → U1_aga(X1, Z, eq_in_ag(Z, 0))
U1_aga(X1, Z, eq_out_ag(Z, 0)) → convert_out_aga([], X1, Z)
convert_in_aga(X, Y, Z) → U2_aga(X, Y, Z, head_in_ag(X, 0))
head_in_ag([], X2) → head_out_ag([], X2)
head_in_ag(.(H, X3), H) → head_out_ag(.(H, X3), H)
U2_aga(X, Y, Z, head_out_ag(X, 0)) → U3_aga(X, Y, Z, tail_in_aa(X, T))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X4, Xs), Xs) → tail_out_aa(.(X4, Xs), Xs)
U3_aga(X, Y, Z, tail_out_aa(X, T)) → U4_aga(X, Y, Z, T, convert_in_aga(T, Y, U))
convert_in_aga(X, Y, Z) → U6_aga(X, Y, Z, head_in_aa(X, H))
head_in_aa([], X2) → head_out_aa([], X2)
head_in_aa(.(H, X3), H) → head_out_aa(.(H, X3), H)
U6_aga(X, Y, Z, head_out_aa(X, H)) → U7_aga(X, Y, Z, H, p_in_aa(H, P))
U7_aga(X, Y, Z, H, p_out_aa(H, P)) → U8_aga(X, Y, Z, H, P, tail_in_aa(X, T))
U8_aga(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_aga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U9_aga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_aga(X, Y, Z, p_in_ag(Z, U))
p_in_ag(s(X), X) → p_out_ag(s(X), X)
p_in_ag(0, 0) → p_out_ag(0, 0)
U10_aga(X, Y, Z, p_out_ag(Z, U)) → convert_out_aga(X, Y, Z)
U4_aga(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_aga(X, Y, Z, times_in_gga(U, Y, Z))
times_in_gga(0, Y, Z) → U11_gga(Y, Z, eq_in_ag(Z, 0))
U11_gga(Y, Z, eq_out_ag(Z, 0)) → times_out_gga(0, Y, Z)
times_in_gga(X, Y, Z) → U12_gga(X, Y, Z, p_in_ga(X, P))
p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)
U12_gga(X, Y, Z, p_out_ga(X, P)) → U13_gga(X, Y, Z, P, times_in_gga(P, Y, U))
U13_gga(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_gga(X, Y, Z, plus_in_gga(Y, U, Z))
plus_in_gga(0, Y, Z) → U15_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U15_gga(Y, Z, eq_out_ga(Y, Z)) → plus_out_gga(0, Y, Z)
plus_in_gga(X, Y, Z) → U16_gga(X, Y, Z, p_in_ga(X, P))
U16_gga(X, Y, Z, p_out_ga(X, P)) → U17_gga(X, Y, Z, P, plus_in_gga(P, Y, U))
U17_gga(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_gga(X, Y, Z, p_in_ag(Z, U))
U18_gga(X, Y, Z, p_out_ag(Z, U)) → plus_out_gga(X, Y, Z)
U14_gga(X, Y, Z, plus_out_gga(Y, U, Z)) → times_out_gga(X, Y, Z)
U5_aga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_aga(X, Y, Z)
U9_gga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_gga(X, Y, Z, p_in_ag(Z, U))
U10_gga(X, Y, Z, p_out_ag(Z, U)) → convert_out_gga(X, Y, Z)
U4_gga(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_gga(X, Y, Z, times_in_gga(U, Y, Z))
U5_gga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_gga(X, Y, Z)

The argument filtering Pi contains the following mapping:
convert_in_gga(x1, x2, x3)  =  convert_in_gga(x1, x2)
[]  =  []
U1_gga(x1, x2, x3)  =  U1_gga(x3)
eq_in_ag(x1, x2)  =  eq_in_ag(x2)
eq_out_ag(x1, x2)  =  eq_out_ag(x1)
0  =  0
convert_out_gga(x1, x2, x3)  =  convert_out_gga(x3)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
head_in_gg(x1, x2)  =  head_in_gg(x1, x2)
head_out_gg(x1, x2)  =  head_out_gg
.(x1, x2)  =  .(x1, x2)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x2, x4)
tail_in_ga(x1, x2)  =  tail_in_ga(x1)
tail_out_ga(x1, x2)  =  tail_out_ga(x2)
U4_gga(x1, x2, x3, x4, x5)  =  U4_gga(x2, x5)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
head_in_ga(x1, x2)  =  head_in_ga(x1)
head_out_ga(x1, x2)  =  head_out_ga
U7_gga(x1, x2, x3, x4, x5)  =  U7_gga(x1, x2, x5)
p_in_aa(x1, x2)  =  p_in_aa
p_out_aa(x1, x2)  =  p_out_aa
U8_gga(x1, x2, x3, x4, x5, x6)  =  U8_gga(x2, x6)
U9_gga(x1, x2, x3, x4, x5, x6, x7)  =  U9_gga(x7)
convert_in_aga(x1, x2, x3)  =  convert_in_aga(x2)
U1_aga(x1, x2, x3)  =  U1_aga(x3)
convert_out_aga(x1, x2, x3)  =  convert_out_aga(x3)
U2_aga(x1, x2, x3, x4)  =  U2_aga(x2, x4)
head_in_ag(x1, x2)  =  head_in_ag(x2)
head_out_ag(x1, x2)  =  head_out_ag
U3_aga(x1, x2, x3, x4)  =  U3_aga(x2, x4)
tail_in_aa(x1, x2)  =  tail_in_aa
tail_out_aa(x1, x2)  =  tail_out_aa
U4_aga(x1, x2, x3, x4, x5)  =  U4_aga(x2, x5)
U6_aga(x1, x2, x3, x4)  =  U6_aga(x2, x4)
head_in_aa(x1, x2)  =  head_in_aa
head_out_aa(x1, x2)  =  head_out_aa
U7_aga(x1, x2, x3, x4, x5)  =  U7_aga(x2, x5)
U8_aga(x1, x2, x3, x4, x5, x6)  =  U8_aga(x2, x6)
U9_aga(x1, x2, x3, x4, x5, x6, x7)  =  U9_aga(x7)
U10_aga(x1, x2, x3, x4)  =  U10_aga(x4)
p_in_ag(x1, x2)  =  p_in_ag(x2)
p_out_ag(x1, x2)  =  p_out_ag(x1)
U5_aga(x1, x2, x3, x4)  =  U5_aga(x4)
times_in_gga(x1, x2, x3)  =  times_in_gga(x1, x2)
U11_gga(x1, x2, x3)  =  U11_gga(x3)
times_out_gga(x1, x2, x3)  =  times_out_gga(x3)
U12_gga(x1, x2, x3, x4)  =  U12_gga(x2, x4)
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x2)
U13_gga(x1, x2, x3, x4, x5)  =  U13_gga(x2, x5)
U14_gga(x1, x2, x3, x4)  =  U14_gga(x4)
plus_in_gga(x1, x2, x3)  =  plus_in_gga(x1, x2)
U15_gga(x1, x2, x3)  =  U15_gga(x3)
eq_in_ga(x1, x2)  =  eq_in_ga(x1)
eq_out_ga(x1, x2)  =  eq_out_ga(x2)
plus_out_gga(x1, x2, x3)  =  plus_out_gga(x3)
U16_gga(x1, x2, x3, x4)  =  U16_gga(x2, x4)
U17_gga(x1, x2, x3, x4, x5)  =  U17_gga(x5)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x4)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x4)
CONVERT_IN_GGA(x1, x2, x3)  =  CONVERT_IN_GGA(x1, x2)
U1_GGA(x1, x2, x3)  =  U1_GGA(x3)
EQ_IN_AG(x1, x2)  =  EQ_IN_AG(x2)
U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x2, x4)
HEAD_IN_GG(x1, x2)  =  HEAD_IN_GG(x1, x2)
U3_GGA(x1, x2, x3, x4)  =  U3_GGA(x2, x4)
TAIL_IN_GA(x1, x2)  =  TAIL_IN_GA(x1)
U4_GGA(x1, x2, x3, x4, x5)  =  U4_GGA(x2, x5)
U6_GGA(x1, x2, x3, x4)  =  U6_GGA(x1, x2, x4)
HEAD_IN_GA(x1, x2)  =  HEAD_IN_GA(x1)
U7_GGA(x1, x2, x3, x4, x5)  =  U7_GGA(x1, x2, x5)
P_IN_AA(x1, x2)  =  P_IN_AA
U8_GGA(x1, x2, x3, x4, x5, x6)  =  U8_GGA(x2, x6)
U9_GGA(x1, x2, x3, x4, x5, x6, x7)  =  U9_GGA(x7)
CONVERT_IN_AGA(x1, x2, x3)  =  CONVERT_IN_AGA(x2)
U1_AGA(x1, x2, x3)  =  U1_AGA(x3)
U2_AGA(x1, x2, x3, x4)  =  U2_AGA(x2, x4)
HEAD_IN_AG(x1, x2)  =  HEAD_IN_AG(x2)
U3_AGA(x1, x2, x3, x4)  =  U3_AGA(x2, x4)
TAIL_IN_AA(x1, x2)  =  TAIL_IN_AA
U4_AGA(x1, x2, x3, x4, x5)  =  U4_AGA(x2, x5)
U6_AGA(x1, x2, x3, x4)  =  U6_AGA(x2, x4)
HEAD_IN_AA(x1, x2)  =  HEAD_IN_AA
U7_AGA(x1, x2, x3, x4, x5)  =  U7_AGA(x2, x5)
U8_AGA(x1, x2, x3, x4, x5, x6)  =  U8_AGA(x2, x6)
U9_AGA(x1, x2, x3, x4, x5, x6, x7)  =  U9_AGA(x7)
U10_AGA(x1, x2, x3, x4)  =  U10_AGA(x4)
P_IN_AG(x1, x2)  =  P_IN_AG(x2)
U5_AGA(x1, x2, x3, x4)  =  U5_AGA(x4)
TIMES_IN_GGA(x1, x2, x3)  =  TIMES_IN_GGA(x1, x2)
U11_GGA(x1, x2, x3)  =  U11_GGA(x3)
U12_GGA(x1, x2, x3, x4)  =  U12_GGA(x2, x4)
P_IN_GA(x1, x2)  =  P_IN_GA(x1)
U13_GGA(x1, x2, x3, x4, x5)  =  U13_GGA(x2, x5)
U14_GGA(x1, x2, x3, x4)  =  U14_GGA(x4)
PLUS_IN_GGA(x1, x2, x3)  =  PLUS_IN_GGA(x1, x2)
U15_GGA(x1, x2, x3)  =  U15_GGA(x3)
EQ_IN_GA(x1, x2)  =  EQ_IN_GA(x1)
U16_GGA(x1, x2, x3, x4)  =  U16_GGA(x2, x4)
U17_GGA(x1, x2, x3, x4, x5)  =  U17_GGA(x5)
U18_GGA(x1, x2, x3, x4)  =  U18_GGA(x4)
U10_GGA(x1, x2, x3, x4)  =  U10_GGA(x4)
U5_GGA(x1, x2, x3, x4)  =  U5_GGA(x4)

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

(6) Obligation:

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

CONVERT_IN_GGA([], X1, Z) → U1_GGA(X1, Z, eq_in_ag(Z, 0))
CONVERT_IN_GGA([], X1, Z) → EQ_IN_AG(Z, 0)
CONVERT_IN_GGA(X, Y, Z) → U2_GGA(X, Y, Z, head_in_gg(X, 0))
CONVERT_IN_GGA(X, Y, Z) → HEAD_IN_GG(X, 0)
U2_GGA(X, Y, Z, head_out_gg(X, 0)) → U3_GGA(X, Y, Z, tail_in_ga(X, T))
U2_GGA(X, Y, Z, head_out_gg(X, 0)) → TAIL_IN_GA(X, T)
U3_GGA(X, Y, Z, tail_out_ga(X, T)) → U4_GGA(X, Y, Z, T, convert_in_gga(T, Y, U))
U3_GGA(X, Y, Z, tail_out_ga(X, T)) → CONVERT_IN_GGA(T, Y, U)
CONVERT_IN_GGA(X, Y, Z) → U6_GGA(X, Y, Z, head_in_ga(X, H))
CONVERT_IN_GGA(X, Y, Z) → HEAD_IN_GA(X, H)
U6_GGA(X, Y, Z, head_out_ga(X, H)) → U7_GGA(X, Y, Z, H, p_in_aa(H, P))
U6_GGA(X, Y, Z, head_out_ga(X, H)) → P_IN_AA(H, P)
U7_GGA(X, Y, Z, H, p_out_aa(H, P)) → U8_GGA(X, Y, Z, H, P, tail_in_ga(X, T))
U7_GGA(X, Y, Z, H, p_out_aa(H, P)) → TAIL_IN_GA(X, T)
U8_GGA(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_GGA(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U8_GGA(X, Y, Z, H, P, tail_out_ga(X, T)) → CONVERT_IN_AGA(.(P, T), Y, U)
CONVERT_IN_AGA([], X1, Z) → U1_AGA(X1, Z, eq_in_ag(Z, 0))
CONVERT_IN_AGA([], X1, Z) → EQ_IN_AG(Z, 0)
CONVERT_IN_AGA(X, Y, Z) → U2_AGA(X, Y, Z, head_in_ag(X, 0))
CONVERT_IN_AGA(X, Y, Z) → HEAD_IN_AG(X, 0)
U2_AGA(X, Y, Z, head_out_ag(X, 0)) → U3_AGA(X, Y, Z, tail_in_aa(X, T))
U2_AGA(X, Y, Z, head_out_ag(X, 0)) → TAIL_IN_AA(X, T)
U3_AGA(X, Y, Z, tail_out_aa(X, T)) → U4_AGA(X, Y, Z, T, convert_in_aga(T, Y, U))
U3_AGA(X, Y, Z, tail_out_aa(X, T)) → CONVERT_IN_AGA(T, Y, U)
CONVERT_IN_AGA(X, Y, Z) → U6_AGA(X, Y, Z, head_in_aa(X, H))
CONVERT_IN_AGA(X, Y, Z) → HEAD_IN_AA(X, H)
U6_AGA(X, Y, Z, head_out_aa(X, H)) → U7_AGA(X, Y, Z, H, p_in_aa(H, P))
U6_AGA(X, Y, Z, head_out_aa(X, H)) → P_IN_AA(H, P)
U7_AGA(X, Y, Z, H, p_out_aa(H, P)) → U8_AGA(X, Y, Z, H, P, tail_in_aa(X, T))
U7_AGA(X, Y, Z, H, p_out_aa(H, P)) → TAIL_IN_AA(X, T)
U8_AGA(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_AGA(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U8_AGA(X, Y, Z, H, P, tail_out_aa(X, T)) → CONVERT_IN_AGA(.(P, T), Y, U)
U9_AGA(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_AGA(X, Y, Z, p_in_ag(Z, U))
U9_AGA(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → P_IN_AG(Z, U)
U4_AGA(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_AGA(X, Y, Z, times_in_gga(U, Y, Z))
U4_AGA(X, Y, Z, T, convert_out_aga(T, Y, U)) → TIMES_IN_GGA(U, Y, Z)
TIMES_IN_GGA(0, Y, Z) → U11_GGA(Y, Z, eq_in_ag(Z, 0))
TIMES_IN_GGA(0, Y, Z) → EQ_IN_AG(Z, 0)
TIMES_IN_GGA(X, Y, Z) → U12_GGA(X, Y, Z, p_in_ga(X, P))
TIMES_IN_GGA(X, Y, Z) → P_IN_GA(X, P)
U12_GGA(X, Y, Z, p_out_ga(X, P)) → U13_GGA(X, Y, Z, P, times_in_gga(P, Y, U))
U12_GGA(X, Y, Z, p_out_ga(X, P)) → TIMES_IN_GGA(P, Y, U)
U13_GGA(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_GGA(X, Y, Z, plus_in_gga(Y, U, Z))
U13_GGA(X, Y, Z, P, times_out_gga(P, Y, U)) → PLUS_IN_GGA(Y, U, Z)
PLUS_IN_GGA(0, Y, Z) → U15_GGA(Y, Z, eq_in_ga(Y, Z))
PLUS_IN_GGA(0, Y, Z) → EQ_IN_GA(Y, Z)
PLUS_IN_GGA(X, Y, Z) → U16_GGA(X, Y, Z, p_in_ga(X, P))
PLUS_IN_GGA(X, Y, Z) → P_IN_GA(X, P)
U16_GGA(X, Y, Z, p_out_ga(X, P)) → U17_GGA(X, Y, Z, P, plus_in_gga(P, Y, U))
U16_GGA(X, Y, Z, p_out_ga(X, P)) → PLUS_IN_GGA(P, Y, U)
U17_GGA(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_GGA(X, Y, Z, p_in_ag(Z, U))
U17_GGA(X, Y, Z, P, plus_out_gga(P, Y, U)) → P_IN_AG(Z, U)
U9_GGA(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_GGA(X, Y, Z, p_in_ag(Z, U))
U9_GGA(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → P_IN_AG(Z, U)
U4_GGA(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_GGA(X, Y, Z, times_in_gga(U, Y, Z))
U4_GGA(X, Y, Z, T, convert_out_gga(T, Y, U)) → TIMES_IN_GGA(U, Y, Z)

The TRS R consists of the following rules:

convert_in_gga([], X1, Z) → U1_gga(X1, Z, eq_in_ag(Z, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_gga(X1, Z, eq_out_ag(Z, 0)) → convert_out_gga([], X1, Z)
convert_in_gga(X, Y, Z) → U2_gga(X, Y, Z, head_in_gg(X, 0))
head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
U2_gga(X, Y, Z, head_out_gg(X, 0)) → U3_gga(X, Y, Z, tail_in_ga(X, T))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs), Xs) → tail_out_ga(.(X4, Xs), Xs)
U3_gga(X, Y, Z, tail_out_ga(X, T)) → U4_gga(X, Y, Z, T, convert_in_gga(T, Y, U))
convert_in_gga(X, Y, Z) → U6_gga(X, Y, Z, head_in_ga(X, H))
head_in_ga([], X2) → head_out_ga([], X2)
head_in_ga(.(H, X3), H) → head_out_ga(.(H, X3), H)
U6_gga(X, Y, Z, head_out_ga(X, H)) → U7_gga(X, Y, Z, H, p_in_aa(H, P))
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_aa(0, 0) → p_out_aa(0, 0)
U7_gga(X, Y, Z, H, p_out_aa(H, P)) → U8_gga(X, Y, Z, H, P, tail_in_ga(X, T))
U8_gga(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_gga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
convert_in_aga([], X1, Z) → U1_aga(X1, Z, eq_in_ag(Z, 0))
U1_aga(X1, Z, eq_out_ag(Z, 0)) → convert_out_aga([], X1, Z)
convert_in_aga(X, Y, Z) → U2_aga(X, Y, Z, head_in_ag(X, 0))
head_in_ag([], X2) → head_out_ag([], X2)
head_in_ag(.(H, X3), H) → head_out_ag(.(H, X3), H)
U2_aga(X, Y, Z, head_out_ag(X, 0)) → U3_aga(X, Y, Z, tail_in_aa(X, T))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X4, Xs), Xs) → tail_out_aa(.(X4, Xs), Xs)
U3_aga(X, Y, Z, tail_out_aa(X, T)) → U4_aga(X, Y, Z, T, convert_in_aga(T, Y, U))
convert_in_aga(X, Y, Z) → U6_aga(X, Y, Z, head_in_aa(X, H))
head_in_aa([], X2) → head_out_aa([], X2)
head_in_aa(.(H, X3), H) → head_out_aa(.(H, X3), H)
U6_aga(X, Y, Z, head_out_aa(X, H)) → U7_aga(X, Y, Z, H, p_in_aa(H, P))
U7_aga(X, Y, Z, H, p_out_aa(H, P)) → U8_aga(X, Y, Z, H, P, tail_in_aa(X, T))
U8_aga(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_aga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U9_aga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_aga(X, Y, Z, p_in_ag(Z, U))
p_in_ag(s(X), X) → p_out_ag(s(X), X)
p_in_ag(0, 0) → p_out_ag(0, 0)
U10_aga(X, Y, Z, p_out_ag(Z, U)) → convert_out_aga(X, Y, Z)
U4_aga(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_aga(X, Y, Z, times_in_gga(U, Y, Z))
times_in_gga(0, Y, Z) → U11_gga(Y, Z, eq_in_ag(Z, 0))
U11_gga(Y, Z, eq_out_ag(Z, 0)) → times_out_gga(0, Y, Z)
times_in_gga(X, Y, Z) → U12_gga(X, Y, Z, p_in_ga(X, P))
p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)
U12_gga(X, Y, Z, p_out_ga(X, P)) → U13_gga(X, Y, Z, P, times_in_gga(P, Y, U))
U13_gga(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_gga(X, Y, Z, plus_in_gga(Y, U, Z))
plus_in_gga(0, Y, Z) → U15_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U15_gga(Y, Z, eq_out_ga(Y, Z)) → plus_out_gga(0, Y, Z)
plus_in_gga(X, Y, Z) → U16_gga(X, Y, Z, p_in_ga(X, P))
U16_gga(X, Y, Z, p_out_ga(X, P)) → U17_gga(X, Y, Z, P, plus_in_gga(P, Y, U))
U17_gga(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_gga(X, Y, Z, p_in_ag(Z, U))
U18_gga(X, Y, Z, p_out_ag(Z, U)) → plus_out_gga(X, Y, Z)
U14_gga(X, Y, Z, plus_out_gga(Y, U, Z)) → times_out_gga(X, Y, Z)
U5_aga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_aga(X, Y, Z)
U9_gga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_gga(X, Y, Z, p_in_ag(Z, U))
U10_gga(X, Y, Z, p_out_ag(Z, U)) → convert_out_gga(X, Y, Z)
U4_gga(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_gga(X, Y, Z, times_in_gga(U, Y, Z))
U5_gga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_gga(X, Y, Z)

The argument filtering Pi contains the following mapping:
convert_in_gga(x1, x2, x3)  =  convert_in_gga(x1, x2)
[]  =  []
U1_gga(x1, x2, x3)  =  U1_gga(x3)
eq_in_ag(x1, x2)  =  eq_in_ag(x2)
eq_out_ag(x1, x2)  =  eq_out_ag(x1)
0  =  0
convert_out_gga(x1, x2, x3)  =  convert_out_gga(x3)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
head_in_gg(x1, x2)  =  head_in_gg(x1, x2)
head_out_gg(x1, x2)  =  head_out_gg
.(x1, x2)  =  .(x1, x2)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x2, x4)
tail_in_ga(x1, x2)  =  tail_in_ga(x1)
tail_out_ga(x1, x2)  =  tail_out_ga(x2)
U4_gga(x1, x2, x3, x4, x5)  =  U4_gga(x2, x5)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
head_in_ga(x1, x2)  =  head_in_ga(x1)
head_out_ga(x1, x2)  =  head_out_ga
U7_gga(x1, x2, x3, x4, x5)  =  U7_gga(x1, x2, x5)
p_in_aa(x1, x2)  =  p_in_aa
p_out_aa(x1, x2)  =  p_out_aa
U8_gga(x1, x2, x3, x4, x5, x6)  =  U8_gga(x2, x6)
U9_gga(x1, x2, x3, x4, x5, x6, x7)  =  U9_gga(x7)
convert_in_aga(x1, x2, x3)  =  convert_in_aga(x2)
U1_aga(x1, x2, x3)  =  U1_aga(x3)
convert_out_aga(x1, x2, x3)  =  convert_out_aga(x3)
U2_aga(x1, x2, x3, x4)  =  U2_aga(x2, x4)
head_in_ag(x1, x2)  =  head_in_ag(x2)
head_out_ag(x1, x2)  =  head_out_ag
U3_aga(x1, x2, x3, x4)  =  U3_aga(x2, x4)
tail_in_aa(x1, x2)  =  tail_in_aa
tail_out_aa(x1, x2)  =  tail_out_aa
U4_aga(x1, x2, x3, x4, x5)  =  U4_aga(x2, x5)
U6_aga(x1, x2, x3, x4)  =  U6_aga(x2, x4)
head_in_aa(x1, x2)  =  head_in_aa
head_out_aa(x1, x2)  =  head_out_aa
U7_aga(x1, x2, x3, x4, x5)  =  U7_aga(x2, x5)
U8_aga(x1, x2, x3, x4, x5, x6)  =  U8_aga(x2, x6)
U9_aga(x1, x2, x3, x4, x5, x6, x7)  =  U9_aga(x7)
U10_aga(x1, x2, x3, x4)  =  U10_aga(x4)
p_in_ag(x1, x2)  =  p_in_ag(x2)
p_out_ag(x1, x2)  =  p_out_ag(x1)
U5_aga(x1, x2, x3, x4)  =  U5_aga(x4)
times_in_gga(x1, x2, x3)  =  times_in_gga(x1, x2)
U11_gga(x1, x2, x3)  =  U11_gga(x3)
times_out_gga(x1, x2, x3)  =  times_out_gga(x3)
U12_gga(x1, x2, x3, x4)  =  U12_gga(x2, x4)
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x2)
U13_gga(x1, x2, x3, x4, x5)  =  U13_gga(x2, x5)
U14_gga(x1, x2, x3, x4)  =  U14_gga(x4)
plus_in_gga(x1, x2, x3)  =  plus_in_gga(x1, x2)
U15_gga(x1, x2, x3)  =  U15_gga(x3)
eq_in_ga(x1, x2)  =  eq_in_ga(x1)
eq_out_ga(x1, x2)  =  eq_out_ga(x2)
plus_out_gga(x1, x2, x3)  =  plus_out_gga(x3)
U16_gga(x1, x2, x3, x4)  =  U16_gga(x2, x4)
U17_gga(x1, x2, x3, x4, x5)  =  U17_gga(x5)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x4)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x4)
CONVERT_IN_GGA(x1, x2, x3)  =  CONVERT_IN_GGA(x1, x2)
U1_GGA(x1, x2, x3)  =  U1_GGA(x3)
EQ_IN_AG(x1, x2)  =  EQ_IN_AG(x2)
U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x2, x4)
HEAD_IN_GG(x1, x2)  =  HEAD_IN_GG(x1, x2)
U3_GGA(x1, x2, x3, x4)  =  U3_GGA(x2, x4)
TAIL_IN_GA(x1, x2)  =  TAIL_IN_GA(x1)
U4_GGA(x1, x2, x3, x4, x5)  =  U4_GGA(x2, x5)
U6_GGA(x1, x2, x3, x4)  =  U6_GGA(x1, x2, x4)
HEAD_IN_GA(x1, x2)  =  HEAD_IN_GA(x1)
U7_GGA(x1, x2, x3, x4, x5)  =  U7_GGA(x1, x2, x5)
P_IN_AA(x1, x2)  =  P_IN_AA
U8_GGA(x1, x2, x3, x4, x5, x6)  =  U8_GGA(x2, x6)
U9_GGA(x1, x2, x3, x4, x5, x6, x7)  =  U9_GGA(x7)
CONVERT_IN_AGA(x1, x2, x3)  =  CONVERT_IN_AGA(x2)
U1_AGA(x1, x2, x3)  =  U1_AGA(x3)
U2_AGA(x1, x2, x3, x4)  =  U2_AGA(x2, x4)
HEAD_IN_AG(x1, x2)  =  HEAD_IN_AG(x2)
U3_AGA(x1, x2, x3, x4)  =  U3_AGA(x2, x4)
TAIL_IN_AA(x1, x2)  =  TAIL_IN_AA
U4_AGA(x1, x2, x3, x4, x5)  =  U4_AGA(x2, x5)
U6_AGA(x1, x2, x3, x4)  =  U6_AGA(x2, x4)
HEAD_IN_AA(x1, x2)  =  HEAD_IN_AA
U7_AGA(x1, x2, x3, x4, x5)  =  U7_AGA(x2, x5)
U8_AGA(x1, x2, x3, x4, x5, x6)  =  U8_AGA(x2, x6)
U9_AGA(x1, x2, x3, x4, x5, x6, x7)  =  U9_AGA(x7)
U10_AGA(x1, x2, x3, x4)  =  U10_AGA(x4)
P_IN_AG(x1, x2)  =  P_IN_AG(x2)
U5_AGA(x1, x2, x3, x4)  =  U5_AGA(x4)
TIMES_IN_GGA(x1, x2, x3)  =  TIMES_IN_GGA(x1, x2)
U11_GGA(x1, x2, x3)  =  U11_GGA(x3)
U12_GGA(x1, x2, x3, x4)  =  U12_GGA(x2, x4)
P_IN_GA(x1, x2)  =  P_IN_GA(x1)
U13_GGA(x1, x2, x3, x4, x5)  =  U13_GGA(x2, x5)
U14_GGA(x1, x2, x3, x4)  =  U14_GGA(x4)
PLUS_IN_GGA(x1, x2, x3)  =  PLUS_IN_GGA(x1, x2)
U15_GGA(x1, x2, x3)  =  U15_GGA(x3)
EQ_IN_GA(x1, x2)  =  EQ_IN_GA(x1)
U16_GGA(x1, x2, x3, x4)  =  U16_GGA(x2, x4)
U17_GGA(x1, x2, x3, x4, x5)  =  U17_GGA(x5)
U18_GGA(x1, x2, x3, x4)  =  U18_GGA(x4)
U10_GGA(x1, x2, x3, x4)  =  U10_GGA(x4)
U5_GGA(x1, x2, x3, x4)  =  U5_GGA(x4)

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

(7) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 42 less nodes.

(8) Complex Obligation (AND)

(9) Obligation:

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

PLUS_IN_GGA(X, Y, Z) → U16_GGA(X, Y, Z, p_in_ga(X, P))
U16_GGA(X, Y, Z, p_out_ga(X, P)) → PLUS_IN_GGA(P, Y, U)

The TRS R consists of the following rules:

convert_in_gga([], X1, Z) → U1_gga(X1, Z, eq_in_ag(Z, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_gga(X1, Z, eq_out_ag(Z, 0)) → convert_out_gga([], X1, Z)
convert_in_gga(X, Y, Z) → U2_gga(X, Y, Z, head_in_gg(X, 0))
head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
U2_gga(X, Y, Z, head_out_gg(X, 0)) → U3_gga(X, Y, Z, tail_in_ga(X, T))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs), Xs) → tail_out_ga(.(X4, Xs), Xs)
U3_gga(X, Y, Z, tail_out_ga(X, T)) → U4_gga(X, Y, Z, T, convert_in_gga(T, Y, U))
convert_in_gga(X, Y, Z) → U6_gga(X, Y, Z, head_in_ga(X, H))
head_in_ga([], X2) → head_out_ga([], X2)
head_in_ga(.(H, X3), H) → head_out_ga(.(H, X3), H)
U6_gga(X, Y, Z, head_out_ga(X, H)) → U7_gga(X, Y, Z, H, p_in_aa(H, P))
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_aa(0, 0) → p_out_aa(0, 0)
U7_gga(X, Y, Z, H, p_out_aa(H, P)) → U8_gga(X, Y, Z, H, P, tail_in_ga(X, T))
U8_gga(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_gga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
convert_in_aga([], X1, Z) → U1_aga(X1, Z, eq_in_ag(Z, 0))
U1_aga(X1, Z, eq_out_ag(Z, 0)) → convert_out_aga([], X1, Z)
convert_in_aga(X, Y, Z) → U2_aga(X, Y, Z, head_in_ag(X, 0))
head_in_ag([], X2) → head_out_ag([], X2)
head_in_ag(.(H, X3), H) → head_out_ag(.(H, X3), H)
U2_aga(X, Y, Z, head_out_ag(X, 0)) → U3_aga(X, Y, Z, tail_in_aa(X, T))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X4, Xs), Xs) → tail_out_aa(.(X4, Xs), Xs)
U3_aga(X, Y, Z, tail_out_aa(X, T)) → U4_aga(X, Y, Z, T, convert_in_aga(T, Y, U))
convert_in_aga(X, Y, Z) → U6_aga(X, Y, Z, head_in_aa(X, H))
head_in_aa([], X2) → head_out_aa([], X2)
head_in_aa(.(H, X3), H) → head_out_aa(.(H, X3), H)
U6_aga(X, Y, Z, head_out_aa(X, H)) → U7_aga(X, Y, Z, H, p_in_aa(H, P))
U7_aga(X, Y, Z, H, p_out_aa(H, P)) → U8_aga(X, Y, Z, H, P, tail_in_aa(X, T))
U8_aga(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_aga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U9_aga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_aga(X, Y, Z, p_in_ag(Z, U))
p_in_ag(s(X), X) → p_out_ag(s(X), X)
p_in_ag(0, 0) → p_out_ag(0, 0)
U10_aga(X, Y, Z, p_out_ag(Z, U)) → convert_out_aga(X, Y, Z)
U4_aga(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_aga(X, Y, Z, times_in_gga(U, Y, Z))
times_in_gga(0, Y, Z) → U11_gga(Y, Z, eq_in_ag(Z, 0))
U11_gga(Y, Z, eq_out_ag(Z, 0)) → times_out_gga(0, Y, Z)
times_in_gga(X, Y, Z) → U12_gga(X, Y, Z, p_in_ga(X, P))
p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)
U12_gga(X, Y, Z, p_out_ga(X, P)) → U13_gga(X, Y, Z, P, times_in_gga(P, Y, U))
U13_gga(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_gga(X, Y, Z, plus_in_gga(Y, U, Z))
plus_in_gga(0, Y, Z) → U15_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U15_gga(Y, Z, eq_out_ga(Y, Z)) → plus_out_gga(0, Y, Z)
plus_in_gga(X, Y, Z) → U16_gga(X, Y, Z, p_in_ga(X, P))
U16_gga(X, Y, Z, p_out_ga(X, P)) → U17_gga(X, Y, Z, P, plus_in_gga(P, Y, U))
U17_gga(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_gga(X, Y, Z, p_in_ag(Z, U))
U18_gga(X, Y, Z, p_out_ag(Z, U)) → plus_out_gga(X, Y, Z)
U14_gga(X, Y, Z, plus_out_gga(Y, U, Z)) → times_out_gga(X, Y, Z)
U5_aga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_aga(X, Y, Z)
U9_gga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_gga(X, Y, Z, p_in_ag(Z, U))
U10_gga(X, Y, Z, p_out_ag(Z, U)) → convert_out_gga(X, Y, Z)
U4_gga(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_gga(X, Y, Z, times_in_gga(U, Y, Z))
U5_gga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_gga(X, Y, Z)

The argument filtering Pi contains the following mapping:
convert_in_gga(x1, x2, x3)  =  convert_in_gga(x1, x2)
[]  =  []
U1_gga(x1, x2, x3)  =  U1_gga(x3)
eq_in_ag(x1, x2)  =  eq_in_ag(x2)
eq_out_ag(x1, x2)  =  eq_out_ag(x1)
0  =  0
convert_out_gga(x1, x2, x3)  =  convert_out_gga(x3)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
head_in_gg(x1, x2)  =  head_in_gg(x1, x2)
head_out_gg(x1, x2)  =  head_out_gg
.(x1, x2)  =  .(x1, x2)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x2, x4)
tail_in_ga(x1, x2)  =  tail_in_ga(x1)
tail_out_ga(x1, x2)  =  tail_out_ga(x2)
U4_gga(x1, x2, x3, x4, x5)  =  U4_gga(x2, x5)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
head_in_ga(x1, x2)  =  head_in_ga(x1)
head_out_ga(x1, x2)  =  head_out_ga
U7_gga(x1, x2, x3, x4, x5)  =  U7_gga(x1, x2, x5)
p_in_aa(x1, x2)  =  p_in_aa
p_out_aa(x1, x2)  =  p_out_aa
U8_gga(x1, x2, x3, x4, x5, x6)  =  U8_gga(x2, x6)
U9_gga(x1, x2, x3, x4, x5, x6, x7)  =  U9_gga(x7)
convert_in_aga(x1, x2, x3)  =  convert_in_aga(x2)
U1_aga(x1, x2, x3)  =  U1_aga(x3)
convert_out_aga(x1, x2, x3)  =  convert_out_aga(x3)
U2_aga(x1, x2, x3, x4)  =  U2_aga(x2, x4)
head_in_ag(x1, x2)  =  head_in_ag(x2)
head_out_ag(x1, x2)  =  head_out_ag
U3_aga(x1, x2, x3, x4)  =  U3_aga(x2, x4)
tail_in_aa(x1, x2)  =  tail_in_aa
tail_out_aa(x1, x2)  =  tail_out_aa
U4_aga(x1, x2, x3, x4, x5)  =  U4_aga(x2, x5)
U6_aga(x1, x2, x3, x4)  =  U6_aga(x2, x4)
head_in_aa(x1, x2)  =  head_in_aa
head_out_aa(x1, x2)  =  head_out_aa
U7_aga(x1, x2, x3, x4, x5)  =  U7_aga(x2, x5)
U8_aga(x1, x2, x3, x4, x5, x6)  =  U8_aga(x2, x6)
U9_aga(x1, x2, x3, x4, x5, x6, x7)  =  U9_aga(x7)
U10_aga(x1, x2, x3, x4)  =  U10_aga(x4)
p_in_ag(x1, x2)  =  p_in_ag(x2)
p_out_ag(x1, x2)  =  p_out_ag(x1)
U5_aga(x1, x2, x3, x4)  =  U5_aga(x4)
times_in_gga(x1, x2, x3)  =  times_in_gga(x1, x2)
U11_gga(x1, x2, x3)  =  U11_gga(x3)
times_out_gga(x1, x2, x3)  =  times_out_gga(x3)
U12_gga(x1, x2, x3, x4)  =  U12_gga(x2, x4)
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x2)
U13_gga(x1, x2, x3, x4, x5)  =  U13_gga(x2, x5)
U14_gga(x1, x2, x3, x4)  =  U14_gga(x4)
plus_in_gga(x1, x2, x3)  =  plus_in_gga(x1, x2)
U15_gga(x1, x2, x3)  =  U15_gga(x3)
eq_in_ga(x1, x2)  =  eq_in_ga(x1)
eq_out_ga(x1, x2)  =  eq_out_ga(x2)
plus_out_gga(x1, x2, x3)  =  plus_out_gga(x3)
U16_gga(x1, x2, x3, x4)  =  U16_gga(x2, x4)
U17_gga(x1, x2, x3, x4, x5)  =  U17_gga(x5)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x4)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x4)
PLUS_IN_GGA(x1, x2, x3)  =  PLUS_IN_GGA(x1, x2)
U16_GGA(x1, x2, x3, x4)  =  U16_GGA(x2, x4)

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

(10) UsableRulesProof (EQUIVALENT transformation)

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

(11) Obligation:

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

PLUS_IN_GGA(X, Y, Z) → U16_GGA(X, Y, Z, p_in_ga(X, P))
U16_GGA(X, Y, Z, p_out_ga(X, P)) → PLUS_IN_GGA(P, Y, U)

The TRS R consists of the following rules:

p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)

The argument filtering Pi contains the following mapping:
0  =  0
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x2)
PLUS_IN_GGA(x1, x2, x3)  =  PLUS_IN_GGA(x1, x2)
U16_GGA(x1, x2, x3, x4)  =  U16_GGA(x2, x4)

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

(12) PiDPToQDPProof (SOUND transformation)

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

(13) Obligation:

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

PLUS_IN_GGA(X, Y) → U16_GGA(Y, p_in_ga(X))
U16_GGA(Y, p_out_ga(P)) → PLUS_IN_GGA(P, Y)

The TRS R consists of the following rules:

p_in_ga(s(X)) → p_out_ga(X)
p_in_ga(0) → p_out_ga(0)

The set Q consists of the following terms:

p_in_ga(x0)

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

(14) 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.

No dependency pairs are removed.

The following rules are removed from R:

p_in_ga(s(X)) → p_out_ga(X)
Used ordering: POLO with Polynomial interpretation [POLO]:

POL(0) = 0   
POL(PLUS_IN_GGA(x1, x2)) = x1 + x2   
POL(U16_GGA(x1, x2)) = x1 + x2   
POL(p_in_ga(x1)) = x1   
POL(p_out_ga(x1)) = 2·x1   
POL(s(x1)) = 2 + 2·x1   

(15) Obligation:

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

PLUS_IN_GGA(X, Y) → U16_GGA(Y, p_in_ga(X))
U16_GGA(Y, p_out_ga(P)) → PLUS_IN_GGA(P, Y)

The TRS R consists of the following rules:

p_in_ga(0) → p_out_ga(0)

The set Q consists of the following terms:

p_in_ga(x0)

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

(16) Narrowing (SOUND transformation)

By narrowing [LPAR04] the rule PLUS_IN_GGA(X, Y) → U16_GGA(Y, p_in_ga(X)) at position [1] we obtained the following new rules [LPAR04]:

PLUS_IN_GGA(0, y1) → U16_GGA(y1, p_out_ga(0))

(17) Obligation:

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

U16_GGA(Y, p_out_ga(P)) → PLUS_IN_GGA(P, Y)
PLUS_IN_GGA(0, y1) → U16_GGA(y1, p_out_ga(0))

The TRS R consists of the following rules:

p_in_ga(0) → p_out_ga(0)

The set Q consists of the following terms:

p_in_ga(x0)

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

(18) UsableRulesProof (EQUIVALENT transformation)

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

(19) Obligation:

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

U16_GGA(Y, p_out_ga(P)) → PLUS_IN_GGA(P, Y)
PLUS_IN_GGA(0, y1) → U16_GGA(y1, p_out_ga(0))

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

p_in_ga(x0)

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

(20) QReductionProof (EQUIVALENT transformation)

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

p_in_ga(x0)

(21) Obligation:

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

U16_GGA(Y, p_out_ga(P)) → PLUS_IN_GGA(P, Y)
PLUS_IN_GGA(0, y1) → U16_GGA(y1, p_out_ga(0))

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

(22) Instantiation (EQUIVALENT transformation)

By instantiating [LPAR04] the rule U16_GGA(Y, p_out_ga(P)) → PLUS_IN_GGA(P, Y) we obtained the following new rules [LPAR04]:

U16_GGA(z0, p_out_ga(0)) → PLUS_IN_GGA(0, z0)

(23) Obligation:

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

PLUS_IN_GGA(0, y1) → U16_GGA(y1, p_out_ga(0))
U16_GGA(z0, p_out_ga(0)) → PLUS_IN_GGA(0, z0)

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

(24) NonTerminationProof (EQUIVALENT transformation)

We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = U16_GGA(z0, p_out_ga(0)) evaluates to t =U16_GGA(z0, p_out_ga(0))

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




Rewriting sequence

U16_GGA(z0, p_out_ga(0))PLUS_IN_GGA(0, z0)
with rule U16_GGA(z0', p_out_ga(0)) → PLUS_IN_GGA(0, z0') at position [] and matcher [z0' / z0]

PLUS_IN_GGA(0, z0)U16_GGA(z0, p_out_ga(0))
with rule PLUS_IN_GGA(0, y1) → U16_GGA(y1, p_out_ga(0))

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.



(25) FALSE

(26) Obligation:

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

TIMES_IN_GGA(X, Y, Z) → U12_GGA(X, Y, Z, p_in_ga(X, P))
U12_GGA(X, Y, Z, p_out_ga(X, P)) → TIMES_IN_GGA(P, Y, U)

The TRS R consists of the following rules:

convert_in_gga([], X1, Z) → U1_gga(X1, Z, eq_in_ag(Z, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_gga(X1, Z, eq_out_ag(Z, 0)) → convert_out_gga([], X1, Z)
convert_in_gga(X, Y, Z) → U2_gga(X, Y, Z, head_in_gg(X, 0))
head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
U2_gga(X, Y, Z, head_out_gg(X, 0)) → U3_gga(X, Y, Z, tail_in_ga(X, T))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs), Xs) → tail_out_ga(.(X4, Xs), Xs)
U3_gga(X, Y, Z, tail_out_ga(X, T)) → U4_gga(X, Y, Z, T, convert_in_gga(T, Y, U))
convert_in_gga(X, Y, Z) → U6_gga(X, Y, Z, head_in_ga(X, H))
head_in_ga([], X2) → head_out_ga([], X2)
head_in_ga(.(H, X3), H) → head_out_ga(.(H, X3), H)
U6_gga(X, Y, Z, head_out_ga(X, H)) → U7_gga(X, Y, Z, H, p_in_aa(H, P))
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_aa(0, 0) → p_out_aa(0, 0)
U7_gga(X, Y, Z, H, p_out_aa(H, P)) → U8_gga(X, Y, Z, H, P, tail_in_ga(X, T))
U8_gga(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_gga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
convert_in_aga([], X1, Z) → U1_aga(X1, Z, eq_in_ag(Z, 0))
U1_aga(X1, Z, eq_out_ag(Z, 0)) → convert_out_aga([], X1, Z)
convert_in_aga(X, Y, Z) → U2_aga(X, Y, Z, head_in_ag(X, 0))
head_in_ag([], X2) → head_out_ag([], X2)
head_in_ag(.(H, X3), H) → head_out_ag(.(H, X3), H)
U2_aga(X, Y, Z, head_out_ag(X, 0)) → U3_aga(X, Y, Z, tail_in_aa(X, T))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X4, Xs), Xs) → tail_out_aa(.(X4, Xs), Xs)
U3_aga(X, Y, Z, tail_out_aa(X, T)) → U4_aga(X, Y, Z, T, convert_in_aga(T, Y, U))
convert_in_aga(X, Y, Z) → U6_aga(X, Y, Z, head_in_aa(X, H))
head_in_aa([], X2) → head_out_aa([], X2)
head_in_aa(.(H, X3), H) → head_out_aa(.(H, X3), H)
U6_aga(X, Y, Z, head_out_aa(X, H)) → U7_aga(X, Y, Z, H, p_in_aa(H, P))
U7_aga(X, Y, Z, H, p_out_aa(H, P)) → U8_aga(X, Y, Z, H, P, tail_in_aa(X, T))
U8_aga(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_aga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U9_aga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_aga(X, Y, Z, p_in_ag(Z, U))
p_in_ag(s(X), X) → p_out_ag(s(X), X)
p_in_ag(0, 0) → p_out_ag(0, 0)
U10_aga(X, Y, Z, p_out_ag(Z, U)) → convert_out_aga(X, Y, Z)
U4_aga(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_aga(X, Y, Z, times_in_gga(U, Y, Z))
times_in_gga(0, Y, Z) → U11_gga(Y, Z, eq_in_ag(Z, 0))
U11_gga(Y, Z, eq_out_ag(Z, 0)) → times_out_gga(0, Y, Z)
times_in_gga(X, Y, Z) → U12_gga(X, Y, Z, p_in_ga(X, P))
p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)
U12_gga(X, Y, Z, p_out_ga(X, P)) → U13_gga(X, Y, Z, P, times_in_gga(P, Y, U))
U13_gga(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_gga(X, Y, Z, plus_in_gga(Y, U, Z))
plus_in_gga(0, Y, Z) → U15_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U15_gga(Y, Z, eq_out_ga(Y, Z)) → plus_out_gga(0, Y, Z)
plus_in_gga(X, Y, Z) → U16_gga(X, Y, Z, p_in_ga(X, P))
U16_gga(X, Y, Z, p_out_ga(X, P)) → U17_gga(X, Y, Z, P, plus_in_gga(P, Y, U))
U17_gga(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_gga(X, Y, Z, p_in_ag(Z, U))
U18_gga(X, Y, Z, p_out_ag(Z, U)) → plus_out_gga(X, Y, Z)
U14_gga(X, Y, Z, plus_out_gga(Y, U, Z)) → times_out_gga(X, Y, Z)
U5_aga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_aga(X, Y, Z)
U9_gga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_gga(X, Y, Z, p_in_ag(Z, U))
U10_gga(X, Y, Z, p_out_ag(Z, U)) → convert_out_gga(X, Y, Z)
U4_gga(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_gga(X, Y, Z, times_in_gga(U, Y, Z))
U5_gga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_gga(X, Y, Z)

The argument filtering Pi contains the following mapping:
convert_in_gga(x1, x2, x3)  =  convert_in_gga(x1, x2)
[]  =  []
U1_gga(x1, x2, x3)  =  U1_gga(x3)
eq_in_ag(x1, x2)  =  eq_in_ag(x2)
eq_out_ag(x1, x2)  =  eq_out_ag(x1)
0  =  0
convert_out_gga(x1, x2, x3)  =  convert_out_gga(x3)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
head_in_gg(x1, x2)  =  head_in_gg(x1, x2)
head_out_gg(x1, x2)  =  head_out_gg
.(x1, x2)  =  .(x1, x2)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x2, x4)
tail_in_ga(x1, x2)  =  tail_in_ga(x1)
tail_out_ga(x1, x2)  =  tail_out_ga(x2)
U4_gga(x1, x2, x3, x4, x5)  =  U4_gga(x2, x5)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
head_in_ga(x1, x2)  =  head_in_ga(x1)
head_out_ga(x1, x2)  =  head_out_ga
U7_gga(x1, x2, x3, x4, x5)  =  U7_gga(x1, x2, x5)
p_in_aa(x1, x2)  =  p_in_aa
p_out_aa(x1, x2)  =  p_out_aa
U8_gga(x1, x2, x3, x4, x5, x6)  =  U8_gga(x2, x6)
U9_gga(x1, x2, x3, x4, x5, x6, x7)  =  U9_gga(x7)
convert_in_aga(x1, x2, x3)  =  convert_in_aga(x2)
U1_aga(x1, x2, x3)  =  U1_aga(x3)
convert_out_aga(x1, x2, x3)  =  convert_out_aga(x3)
U2_aga(x1, x2, x3, x4)  =  U2_aga(x2, x4)
head_in_ag(x1, x2)  =  head_in_ag(x2)
head_out_ag(x1, x2)  =  head_out_ag
U3_aga(x1, x2, x3, x4)  =  U3_aga(x2, x4)
tail_in_aa(x1, x2)  =  tail_in_aa
tail_out_aa(x1, x2)  =  tail_out_aa
U4_aga(x1, x2, x3, x4, x5)  =  U4_aga(x2, x5)
U6_aga(x1, x2, x3, x4)  =  U6_aga(x2, x4)
head_in_aa(x1, x2)  =  head_in_aa
head_out_aa(x1, x2)  =  head_out_aa
U7_aga(x1, x2, x3, x4, x5)  =  U7_aga(x2, x5)
U8_aga(x1, x2, x3, x4, x5, x6)  =  U8_aga(x2, x6)
U9_aga(x1, x2, x3, x4, x5, x6, x7)  =  U9_aga(x7)
U10_aga(x1, x2, x3, x4)  =  U10_aga(x4)
p_in_ag(x1, x2)  =  p_in_ag(x2)
p_out_ag(x1, x2)  =  p_out_ag(x1)
U5_aga(x1, x2, x3, x4)  =  U5_aga(x4)
times_in_gga(x1, x2, x3)  =  times_in_gga(x1, x2)
U11_gga(x1, x2, x3)  =  U11_gga(x3)
times_out_gga(x1, x2, x3)  =  times_out_gga(x3)
U12_gga(x1, x2, x3, x4)  =  U12_gga(x2, x4)
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x2)
U13_gga(x1, x2, x3, x4, x5)  =  U13_gga(x2, x5)
U14_gga(x1, x2, x3, x4)  =  U14_gga(x4)
plus_in_gga(x1, x2, x3)  =  plus_in_gga(x1, x2)
U15_gga(x1, x2, x3)  =  U15_gga(x3)
eq_in_ga(x1, x2)  =  eq_in_ga(x1)
eq_out_ga(x1, x2)  =  eq_out_ga(x2)
plus_out_gga(x1, x2, x3)  =  plus_out_gga(x3)
U16_gga(x1, x2, x3, x4)  =  U16_gga(x2, x4)
U17_gga(x1, x2, x3, x4, x5)  =  U17_gga(x5)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x4)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x4)
TIMES_IN_GGA(x1, x2, x3)  =  TIMES_IN_GGA(x1, x2)
U12_GGA(x1, x2, x3, x4)  =  U12_GGA(x2, x4)

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

(27) UsableRulesProof (EQUIVALENT transformation)

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

(28) Obligation:

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

TIMES_IN_GGA(X, Y, Z) → U12_GGA(X, Y, Z, p_in_ga(X, P))
U12_GGA(X, Y, Z, p_out_ga(X, P)) → TIMES_IN_GGA(P, Y, U)

The TRS R consists of the following rules:

p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)

The argument filtering Pi contains the following mapping:
0  =  0
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x2)
TIMES_IN_GGA(x1, x2, x3)  =  TIMES_IN_GGA(x1, x2)
U12_GGA(x1, x2, x3, x4)  =  U12_GGA(x2, x4)

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

(29) PiDPToQDPProof (SOUND transformation)

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

(30) Obligation:

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

TIMES_IN_GGA(X, Y) → U12_GGA(Y, p_in_ga(X))
U12_GGA(Y, p_out_ga(P)) → TIMES_IN_GGA(P, Y)

The TRS R consists of the following rules:

p_in_ga(s(X)) → p_out_ga(X)
p_in_ga(0) → p_out_ga(0)

The set Q consists of the following terms:

p_in_ga(x0)

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

(31) 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.

No dependency pairs are removed.

The following rules are removed from R:

p_in_ga(s(X)) → p_out_ga(X)
Used ordering: POLO with Polynomial interpretation [POLO]:

POL(0) = 0   
POL(TIMES_IN_GGA(x1, x2)) = x1 + x2   
POL(U12_GGA(x1, x2)) = x1 + x2   
POL(p_in_ga(x1)) = x1   
POL(p_out_ga(x1)) = 2·x1   
POL(s(x1)) = 2 + 2·x1   

(32) Obligation:

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

TIMES_IN_GGA(X, Y) → U12_GGA(Y, p_in_ga(X))
U12_GGA(Y, p_out_ga(P)) → TIMES_IN_GGA(P, Y)

The TRS R consists of the following rules:

p_in_ga(0) → p_out_ga(0)

The set Q consists of the following terms:

p_in_ga(x0)

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

(33) Narrowing (SOUND transformation)

By narrowing [LPAR04] the rule TIMES_IN_GGA(X, Y) → U12_GGA(Y, p_in_ga(X)) at position [1] we obtained the following new rules [LPAR04]:

TIMES_IN_GGA(0, y1) → U12_GGA(y1, p_out_ga(0))

(34) Obligation:

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

U12_GGA(Y, p_out_ga(P)) → TIMES_IN_GGA(P, Y)
TIMES_IN_GGA(0, y1) → U12_GGA(y1, p_out_ga(0))

The TRS R consists of the following rules:

p_in_ga(0) → p_out_ga(0)

The set Q consists of the following terms:

p_in_ga(x0)

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

(35) UsableRulesProof (EQUIVALENT transformation)

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

(36) Obligation:

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

U12_GGA(Y, p_out_ga(P)) → TIMES_IN_GGA(P, Y)
TIMES_IN_GGA(0, y1) → U12_GGA(y1, p_out_ga(0))

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

p_in_ga(x0)

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

(37) QReductionProof (EQUIVALENT transformation)

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

p_in_ga(x0)

(38) Obligation:

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

U12_GGA(Y, p_out_ga(P)) → TIMES_IN_GGA(P, Y)
TIMES_IN_GGA(0, y1) → U12_GGA(y1, p_out_ga(0))

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

(39) Instantiation (EQUIVALENT transformation)

By instantiating [LPAR04] the rule U12_GGA(Y, p_out_ga(P)) → TIMES_IN_GGA(P, Y) we obtained the following new rules [LPAR04]:

U12_GGA(z0, p_out_ga(0)) → TIMES_IN_GGA(0, z0)

(40) Obligation:

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

TIMES_IN_GGA(0, y1) → U12_GGA(y1, p_out_ga(0))
U12_GGA(z0, p_out_ga(0)) → TIMES_IN_GGA(0, z0)

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

(41) NonTerminationProof (EQUIVALENT transformation)

We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = U12_GGA(z0, p_out_ga(0)) evaluates to t =U12_GGA(z0, p_out_ga(0))

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




Rewriting sequence

U12_GGA(z0, p_out_ga(0))TIMES_IN_GGA(0, z0)
with rule U12_GGA(z0', p_out_ga(0)) → TIMES_IN_GGA(0, z0') at position [] and matcher [z0' / z0]

TIMES_IN_GGA(0, z0)U12_GGA(z0, p_out_ga(0))
with rule TIMES_IN_GGA(0, y1) → U12_GGA(y1, p_out_ga(0))

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.



(42) FALSE

(43) Obligation:

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

CONVERT_IN_AGA(X, Y, Z) → U2_AGA(X, Y, Z, head_in_ag(X, 0))
U2_AGA(X, Y, Z, head_out_ag(X, 0)) → U3_AGA(X, Y, Z, tail_in_aa(X, T))
U3_AGA(X, Y, Z, tail_out_aa(X, T)) → CONVERT_IN_AGA(T, Y, U)
CONVERT_IN_AGA(X, Y, Z) → U6_AGA(X, Y, Z, head_in_aa(X, H))
U6_AGA(X, Y, Z, head_out_aa(X, H)) → U7_AGA(X, Y, Z, H, p_in_aa(H, P))
U7_AGA(X, Y, Z, H, p_out_aa(H, P)) → U8_AGA(X, Y, Z, H, P, tail_in_aa(X, T))
U8_AGA(X, Y, Z, H, P, tail_out_aa(X, T)) → CONVERT_IN_AGA(.(P, T), Y, U)

The TRS R consists of the following rules:

convert_in_gga([], X1, Z) → U1_gga(X1, Z, eq_in_ag(Z, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_gga(X1, Z, eq_out_ag(Z, 0)) → convert_out_gga([], X1, Z)
convert_in_gga(X, Y, Z) → U2_gga(X, Y, Z, head_in_gg(X, 0))
head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
U2_gga(X, Y, Z, head_out_gg(X, 0)) → U3_gga(X, Y, Z, tail_in_ga(X, T))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs), Xs) → tail_out_ga(.(X4, Xs), Xs)
U3_gga(X, Y, Z, tail_out_ga(X, T)) → U4_gga(X, Y, Z, T, convert_in_gga(T, Y, U))
convert_in_gga(X, Y, Z) → U6_gga(X, Y, Z, head_in_ga(X, H))
head_in_ga([], X2) → head_out_ga([], X2)
head_in_ga(.(H, X3), H) → head_out_ga(.(H, X3), H)
U6_gga(X, Y, Z, head_out_ga(X, H)) → U7_gga(X, Y, Z, H, p_in_aa(H, P))
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_aa(0, 0) → p_out_aa(0, 0)
U7_gga(X, Y, Z, H, p_out_aa(H, P)) → U8_gga(X, Y, Z, H, P, tail_in_ga(X, T))
U8_gga(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_gga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
convert_in_aga([], X1, Z) → U1_aga(X1, Z, eq_in_ag(Z, 0))
U1_aga(X1, Z, eq_out_ag(Z, 0)) → convert_out_aga([], X1, Z)
convert_in_aga(X, Y, Z) → U2_aga(X, Y, Z, head_in_ag(X, 0))
head_in_ag([], X2) → head_out_ag([], X2)
head_in_ag(.(H, X3), H) → head_out_ag(.(H, X3), H)
U2_aga(X, Y, Z, head_out_ag(X, 0)) → U3_aga(X, Y, Z, tail_in_aa(X, T))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X4, Xs), Xs) → tail_out_aa(.(X4, Xs), Xs)
U3_aga(X, Y, Z, tail_out_aa(X, T)) → U4_aga(X, Y, Z, T, convert_in_aga(T, Y, U))
convert_in_aga(X, Y, Z) → U6_aga(X, Y, Z, head_in_aa(X, H))
head_in_aa([], X2) → head_out_aa([], X2)
head_in_aa(.(H, X3), H) → head_out_aa(.(H, X3), H)
U6_aga(X, Y, Z, head_out_aa(X, H)) → U7_aga(X, Y, Z, H, p_in_aa(H, P))
U7_aga(X, Y, Z, H, p_out_aa(H, P)) → U8_aga(X, Y, Z, H, P, tail_in_aa(X, T))
U8_aga(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_aga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U9_aga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_aga(X, Y, Z, p_in_ag(Z, U))
p_in_ag(s(X), X) → p_out_ag(s(X), X)
p_in_ag(0, 0) → p_out_ag(0, 0)
U10_aga(X, Y, Z, p_out_ag(Z, U)) → convert_out_aga(X, Y, Z)
U4_aga(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_aga(X, Y, Z, times_in_gga(U, Y, Z))
times_in_gga(0, Y, Z) → U11_gga(Y, Z, eq_in_ag(Z, 0))
U11_gga(Y, Z, eq_out_ag(Z, 0)) → times_out_gga(0, Y, Z)
times_in_gga(X, Y, Z) → U12_gga(X, Y, Z, p_in_ga(X, P))
p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)
U12_gga(X, Y, Z, p_out_ga(X, P)) → U13_gga(X, Y, Z, P, times_in_gga(P, Y, U))
U13_gga(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_gga(X, Y, Z, plus_in_gga(Y, U, Z))
plus_in_gga(0, Y, Z) → U15_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U15_gga(Y, Z, eq_out_ga(Y, Z)) → plus_out_gga(0, Y, Z)
plus_in_gga(X, Y, Z) → U16_gga(X, Y, Z, p_in_ga(X, P))
U16_gga(X, Y, Z, p_out_ga(X, P)) → U17_gga(X, Y, Z, P, plus_in_gga(P, Y, U))
U17_gga(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_gga(X, Y, Z, p_in_ag(Z, U))
U18_gga(X, Y, Z, p_out_ag(Z, U)) → plus_out_gga(X, Y, Z)
U14_gga(X, Y, Z, plus_out_gga(Y, U, Z)) → times_out_gga(X, Y, Z)
U5_aga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_aga(X, Y, Z)
U9_gga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_gga(X, Y, Z, p_in_ag(Z, U))
U10_gga(X, Y, Z, p_out_ag(Z, U)) → convert_out_gga(X, Y, Z)
U4_gga(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_gga(X, Y, Z, times_in_gga(U, Y, Z))
U5_gga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_gga(X, Y, Z)

The argument filtering Pi contains the following mapping:
convert_in_gga(x1, x2, x3)  =  convert_in_gga(x1, x2)
[]  =  []
U1_gga(x1, x2, x3)  =  U1_gga(x3)
eq_in_ag(x1, x2)  =  eq_in_ag(x2)
eq_out_ag(x1, x2)  =  eq_out_ag(x1)
0  =  0
convert_out_gga(x1, x2, x3)  =  convert_out_gga(x3)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
head_in_gg(x1, x2)  =  head_in_gg(x1, x2)
head_out_gg(x1, x2)  =  head_out_gg
.(x1, x2)  =  .(x1, x2)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x2, x4)
tail_in_ga(x1, x2)  =  tail_in_ga(x1)
tail_out_ga(x1, x2)  =  tail_out_ga(x2)
U4_gga(x1, x2, x3, x4, x5)  =  U4_gga(x2, x5)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
head_in_ga(x1, x2)  =  head_in_ga(x1)
head_out_ga(x1, x2)  =  head_out_ga
U7_gga(x1, x2, x3, x4, x5)  =  U7_gga(x1, x2, x5)
p_in_aa(x1, x2)  =  p_in_aa
p_out_aa(x1, x2)  =  p_out_aa
U8_gga(x1, x2, x3, x4, x5, x6)  =  U8_gga(x2, x6)
U9_gga(x1, x2, x3, x4, x5, x6, x7)  =  U9_gga(x7)
convert_in_aga(x1, x2, x3)  =  convert_in_aga(x2)
U1_aga(x1, x2, x3)  =  U1_aga(x3)
convert_out_aga(x1, x2, x3)  =  convert_out_aga(x3)
U2_aga(x1, x2, x3, x4)  =  U2_aga(x2, x4)
head_in_ag(x1, x2)  =  head_in_ag(x2)
head_out_ag(x1, x2)  =  head_out_ag
U3_aga(x1, x2, x3, x4)  =  U3_aga(x2, x4)
tail_in_aa(x1, x2)  =  tail_in_aa
tail_out_aa(x1, x2)  =  tail_out_aa
U4_aga(x1, x2, x3, x4, x5)  =  U4_aga(x2, x5)
U6_aga(x1, x2, x3, x4)  =  U6_aga(x2, x4)
head_in_aa(x1, x2)  =  head_in_aa
head_out_aa(x1, x2)  =  head_out_aa
U7_aga(x1, x2, x3, x4, x5)  =  U7_aga(x2, x5)
U8_aga(x1, x2, x3, x4, x5, x6)  =  U8_aga(x2, x6)
U9_aga(x1, x2, x3, x4, x5, x6, x7)  =  U9_aga(x7)
U10_aga(x1, x2, x3, x4)  =  U10_aga(x4)
p_in_ag(x1, x2)  =  p_in_ag(x2)
p_out_ag(x1, x2)  =  p_out_ag(x1)
U5_aga(x1, x2, x3, x4)  =  U5_aga(x4)
times_in_gga(x1, x2, x3)  =  times_in_gga(x1, x2)
U11_gga(x1, x2, x3)  =  U11_gga(x3)
times_out_gga(x1, x2, x3)  =  times_out_gga(x3)
U12_gga(x1, x2, x3, x4)  =  U12_gga(x2, x4)
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x2)
U13_gga(x1, x2, x3, x4, x5)  =  U13_gga(x2, x5)
U14_gga(x1, x2, x3, x4)  =  U14_gga(x4)
plus_in_gga(x1, x2, x3)  =  plus_in_gga(x1, x2)
U15_gga(x1, x2, x3)  =  U15_gga(x3)
eq_in_ga(x1, x2)  =  eq_in_ga(x1)
eq_out_ga(x1, x2)  =  eq_out_ga(x2)
plus_out_gga(x1, x2, x3)  =  plus_out_gga(x3)
U16_gga(x1, x2, x3, x4)  =  U16_gga(x2, x4)
U17_gga(x1, x2, x3, x4, x5)  =  U17_gga(x5)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x4)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x4)
CONVERT_IN_AGA(x1, x2, x3)  =  CONVERT_IN_AGA(x2)
U2_AGA(x1, x2, x3, x4)  =  U2_AGA(x2, x4)
U3_AGA(x1, x2, x3, x4)  =  U3_AGA(x2, x4)
U6_AGA(x1, x2, x3, x4)  =  U6_AGA(x2, x4)
U7_AGA(x1, x2, x3, x4, x5)  =  U7_AGA(x2, x5)
U8_AGA(x1, x2, x3, x4, x5, x6)  =  U8_AGA(x2, x6)

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

(44) UsableRulesProof (EQUIVALENT transformation)

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

(45) Obligation:

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

CONVERT_IN_AGA(X, Y, Z) → U2_AGA(X, Y, Z, head_in_ag(X, 0))
U2_AGA(X, Y, Z, head_out_ag(X, 0)) → U3_AGA(X, Y, Z, tail_in_aa(X, T))
U3_AGA(X, Y, Z, tail_out_aa(X, T)) → CONVERT_IN_AGA(T, Y, U)
CONVERT_IN_AGA(X, Y, Z) → U6_AGA(X, Y, Z, head_in_aa(X, H))
U6_AGA(X, Y, Z, head_out_aa(X, H)) → U7_AGA(X, Y, Z, H, p_in_aa(H, P))
U7_AGA(X, Y, Z, H, p_out_aa(H, P)) → U8_AGA(X, Y, Z, H, P, tail_in_aa(X, T))
U8_AGA(X, Y, Z, H, P, tail_out_aa(X, T)) → CONVERT_IN_AGA(.(P, T), Y, U)

The TRS R consists of the following rules:

head_in_ag([], X2) → head_out_ag([], X2)
head_in_ag(.(H, X3), H) → head_out_ag(.(H, X3), H)
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X4, Xs), Xs) → tail_out_aa(.(X4, Xs), Xs)
head_in_aa([], X2) → head_out_aa([], X2)
head_in_aa(.(H, X3), H) → head_out_aa(.(H, X3), H)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_aa(0, 0) → p_out_aa(0, 0)

The argument filtering Pi contains the following mapping:
[]  =  []
0  =  0
.(x1, x2)  =  .(x1, x2)
p_in_aa(x1, x2)  =  p_in_aa
p_out_aa(x1, x2)  =  p_out_aa
head_in_ag(x1, x2)  =  head_in_ag(x2)
head_out_ag(x1, x2)  =  head_out_ag
tail_in_aa(x1, x2)  =  tail_in_aa
tail_out_aa(x1, x2)  =  tail_out_aa
head_in_aa(x1, x2)  =  head_in_aa
head_out_aa(x1, x2)  =  head_out_aa
s(x1)  =  s(x1)
CONVERT_IN_AGA(x1, x2, x3)  =  CONVERT_IN_AGA(x2)
U2_AGA(x1, x2, x3, x4)  =  U2_AGA(x2, x4)
U3_AGA(x1, x2, x3, x4)  =  U3_AGA(x2, x4)
U6_AGA(x1, x2, x3, x4)  =  U6_AGA(x2, x4)
U7_AGA(x1, x2, x3, x4, x5)  =  U7_AGA(x2, x5)
U8_AGA(x1, x2, x3, x4, x5, x6)  =  U8_AGA(x2, x6)

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

(46) PiDPToQDPProof (SOUND transformation)

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

(47) Obligation:

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

CONVERT_IN_AGA(Y) → U2_AGA(Y, head_in_ag(0))
U2_AGA(Y, head_out_ag) → U3_AGA(Y, tail_in_aa)
U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_in_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_in_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)

The TRS R consists of the following rules:

head_in_ag(X2) → head_out_ag
tail_in_aatail_out_aa
head_in_aahead_out_aa
p_in_aap_out_aa

The set Q consists of the following terms:

head_in_ag(x0)
tail_in_aa
head_in_aa
p_in_aa

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

(48) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule CONVERT_IN_AGA(Y) → U2_AGA(Y, head_in_ag(0)) at position [1] we obtained the following new rules [LPAR04]:

CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag)

(49) Obligation:

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

U2_AGA(Y, head_out_ag) → U3_AGA(Y, tail_in_aa)
U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_in_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_in_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag)

The TRS R consists of the following rules:

head_in_ag(X2) → head_out_ag
tail_in_aatail_out_aa
head_in_aahead_out_aa
p_in_aap_out_aa

The set Q consists of the following terms:

head_in_ag(x0)
tail_in_aa
head_in_aa
p_in_aa

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

(50) UsableRulesProof (EQUIVALENT transformation)

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

(51) Obligation:

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

U2_AGA(Y, head_out_ag) → U3_AGA(Y, tail_in_aa)
U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_in_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_in_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag)

The TRS R consists of the following rules:

tail_in_aatail_out_aa
p_in_aap_out_aa
head_in_aahead_out_aa

The set Q consists of the following terms:

head_in_ag(x0)
tail_in_aa
head_in_aa
p_in_aa

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

(52) QReductionProof (EQUIVALENT transformation)

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

head_in_ag(x0)

(53) Obligation:

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

U2_AGA(Y, head_out_ag) → U3_AGA(Y, tail_in_aa)
U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_in_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_in_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag)

The TRS R consists of the following rules:

tail_in_aatail_out_aa
p_in_aap_out_aa
head_in_aahead_out_aa

The set Q consists of the following terms:

tail_in_aa
head_in_aa
p_in_aa

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

(54) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule U2_AGA(Y, head_out_ag) → U3_AGA(Y, tail_in_aa) at position [1] we obtained the following new rules [LPAR04]:

U2_AGA(Y, head_out_ag) → U3_AGA(Y, tail_out_aa)

(55) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_in_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_in_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag)
U2_AGA(Y, head_out_ag) → U3_AGA(Y, tail_out_aa)

The TRS R consists of the following rules:

tail_in_aatail_out_aa
p_in_aap_out_aa
head_in_aahead_out_aa

The set Q consists of the following terms:

tail_in_aa
head_in_aa
p_in_aa

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

(56) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule CONVERT_IN_AGA(Y) → U6_AGA(Y, head_in_aa) at position [1] we obtained the following new rules [LPAR04]:

CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)

(57) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_in_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag)
U2_AGA(Y, head_out_ag) → U3_AGA(Y, tail_out_aa)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)

The TRS R consists of the following rules:

tail_in_aatail_out_aa
p_in_aap_out_aa
head_in_aahead_out_aa

The set Q consists of the following terms:

tail_in_aa
head_in_aa
p_in_aa

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

(58) UsableRulesProof (EQUIVALENT transformation)

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

(59) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_in_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag)
U2_AGA(Y, head_out_ag) → U3_AGA(Y, tail_out_aa)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)

The TRS R consists of the following rules:

tail_in_aatail_out_aa
p_in_aap_out_aa

The set Q consists of the following terms:

tail_in_aa
head_in_aa
p_in_aa

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

(60) QReductionProof (EQUIVALENT transformation)

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

head_in_aa

(61) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_in_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag)
U2_AGA(Y, head_out_ag) → U3_AGA(Y, tail_out_aa)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)

The TRS R consists of the following rules:

tail_in_aatail_out_aa
p_in_aap_out_aa

The set Q consists of the following terms:

tail_in_aa
p_in_aa

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

(62) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_in_aa) at position [1] we obtained the following new rules [LPAR04]:

U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_out_aa)

(63) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag)
U2_AGA(Y, head_out_ag) → U3_AGA(Y, tail_out_aa)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_out_aa)

The TRS R consists of the following rules:

tail_in_aatail_out_aa
p_in_aap_out_aa

The set Q consists of the following terms:

tail_in_aa
p_in_aa

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

(64) UsableRulesProof (EQUIVALENT transformation)

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

(65) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag)
U2_AGA(Y, head_out_ag) → U3_AGA(Y, tail_out_aa)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_out_aa)

The TRS R consists of the following rules:

tail_in_aatail_out_aa

The set Q consists of the following terms:

tail_in_aa
p_in_aa

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

(66) QReductionProof (EQUIVALENT transformation)

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

p_in_aa

(67) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag)
U2_AGA(Y, head_out_ag) → U3_AGA(Y, tail_out_aa)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_out_aa)

The TRS R consists of the following rules:

tail_in_aatail_out_aa

The set Q consists of the following terms:

tail_in_aa

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

(68) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa) at position [1] we obtained the following new rules [LPAR04]:

U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_out_aa)

(69) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag)
U2_AGA(Y, head_out_ag) → U3_AGA(Y, tail_out_aa)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_out_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_out_aa)

The TRS R consists of the following rules:

tail_in_aatail_out_aa

The set Q consists of the following terms:

tail_in_aa

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

(70) UsableRulesProof (EQUIVALENT transformation)

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

(71) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag)
U2_AGA(Y, head_out_ag) → U3_AGA(Y, tail_out_aa)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_out_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_out_aa)

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

tail_in_aa

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

(72) QReductionProof (EQUIVALENT transformation)

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

tail_in_aa

(73) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag)
U2_AGA(Y, head_out_ag) → U3_AGA(Y, tail_out_aa)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_out_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_out_aa)

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

(74) NonTerminationProof (EQUIVALENT transformation)

We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = CONVERT_IN_AGA(Y) evaluates to t =CONVERT_IN_AGA(Y)

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




Rewriting sequence

CONVERT_IN_AGA(Y)U2_AGA(Y, head_out_ag)
with rule CONVERT_IN_AGA(Y') → U2_AGA(Y', head_out_ag) at position [] and matcher [Y' / Y]

U2_AGA(Y, head_out_ag)U3_AGA(Y, tail_out_aa)
with rule U2_AGA(Y', head_out_ag) → U3_AGA(Y', tail_out_aa) at position [] and matcher [Y' / Y]

U3_AGA(Y, tail_out_aa)CONVERT_IN_AGA(Y)
with rule U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.



(75) FALSE

(76) Obligation:

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

CONVERT_IN_GGA(X, Y, Z) → U2_GGA(X, Y, Z, head_in_gg(X, 0))
U2_GGA(X, Y, Z, head_out_gg(X, 0)) → U3_GGA(X, Y, Z, tail_in_ga(X, T))
U3_GGA(X, Y, Z, tail_out_ga(X, T)) → CONVERT_IN_GGA(T, Y, U)

The TRS R consists of the following rules:

convert_in_gga([], X1, Z) → U1_gga(X1, Z, eq_in_ag(Z, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_gga(X1, Z, eq_out_ag(Z, 0)) → convert_out_gga([], X1, Z)
convert_in_gga(X, Y, Z) → U2_gga(X, Y, Z, head_in_gg(X, 0))
head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
U2_gga(X, Y, Z, head_out_gg(X, 0)) → U3_gga(X, Y, Z, tail_in_ga(X, T))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs), Xs) → tail_out_ga(.(X4, Xs), Xs)
U3_gga(X, Y, Z, tail_out_ga(X, T)) → U4_gga(X, Y, Z, T, convert_in_gga(T, Y, U))
convert_in_gga(X, Y, Z) → U6_gga(X, Y, Z, head_in_ga(X, H))
head_in_ga([], X2) → head_out_ga([], X2)
head_in_ga(.(H, X3), H) → head_out_ga(.(H, X3), H)
U6_gga(X, Y, Z, head_out_ga(X, H)) → U7_gga(X, Y, Z, H, p_in_aa(H, P))
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_aa(0, 0) → p_out_aa(0, 0)
U7_gga(X, Y, Z, H, p_out_aa(H, P)) → U8_gga(X, Y, Z, H, P, tail_in_ga(X, T))
U8_gga(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_gga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
convert_in_aga([], X1, Z) → U1_aga(X1, Z, eq_in_ag(Z, 0))
U1_aga(X1, Z, eq_out_ag(Z, 0)) → convert_out_aga([], X1, Z)
convert_in_aga(X, Y, Z) → U2_aga(X, Y, Z, head_in_ag(X, 0))
head_in_ag([], X2) → head_out_ag([], X2)
head_in_ag(.(H, X3), H) → head_out_ag(.(H, X3), H)
U2_aga(X, Y, Z, head_out_ag(X, 0)) → U3_aga(X, Y, Z, tail_in_aa(X, T))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X4, Xs), Xs) → tail_out_aa(.(X4, Xs), Xs)
U3_aga(X, Y, Z, tail_out_aa(X, T)) → U4_aga(X, Y, Z, T, convert_in_aga(T, Y, U))
convert_in_aga(X, Y, Z) → U6_aga(X, Y, Z, head_in_aa(X, H))
head_in_aa([], X2) → head_out_aa([], X2)
head_in_aa(.(H, X3), H) → head_out_aa(.(H, X3), H)
U6_aga(X, Y, Z, head_out_aa(X, H)) → U7_aga(X, Y, Z, H, p_in_aa(H, P))
U7_aga(X, Y, Z, H, p_out_aa(H, P)) → U8_aga(X, Y, Z, H, P, tail_in_aa(X, T))
U8_aga(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_aga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U9_aga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_aga(X, Y, Z, p_in_ag(Z, U))
p_in_ag(s(X), X) → p_out_ag(s(X), X)
p_in_ag(0, 0) → p_out_ag(0, 0)
U10_aga(X, Y, Z, p_out_ag(Z, U)) → convert_out_aga(X, Y, Z)
U4_aga(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_aga(X, Y, Z, times_in_gga(U, Y, Z))
times_in_gga(0, Y, Z) → U11_gga(Y, Z, eq_in_ag(Z, 0))
U11_gga(Y, Z, eq_out_ag(Z, 0)) → times_out_gga(0, Y, Z)
times_in_gga(X, Y, Z) → U12_gga(X, Y, Z, p_in_ga(X, P))
p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)
U12_gga(X, Y, Z, p_out_ga(X, P)) → U13_gga(X, Y, Z, P, times_in_gga(P, Y, U))
U13_gga(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_gga(X, Y, Z, plus_in_gga(Y, U, Z))
plus_in_gga(0, Y, Z) → U15_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U15_gga(Y, Z, eq_out_ga(Y, Z)) → plus_out_gga(0, Y, Z)
plus_in_gga(X, Y, Z) → U16_gga(X, Y, Z, p_in_ga(X, P))
U16_gga(X, Y, Z, p_out_ga(X, P)) → U17_gga(X, Y, Z, P, plus_in_gga(P, Y, U))
U17_gga(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_gga(X, Y, Z, p_in_ag(Z, U))
U18_gga(X, Y, Z, p_out_ag(Z, U)) → plus_out_gga(X, Y, Z)
U14_gga(X, Y, Z, plus_out_gga(Y, U, Z)) → times_out_gga(X, Y, Z)
U5_aga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_aga(X, Y, Z)
U9_gga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_gga(X, Y, Z, p_in_ag(Z, U))
U10_gga(X, Y, Z, p_out_ag(Z, U)) → convert_out_gga(X, Y, Z)
U4_gga(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_gga(X, Y, Z, times_in_gga(U, Y, Z))
U5_gga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_gga(X, Y, Z)

The argument filtering Pi contains the following mapping:
convert_in_gga(x1, x2, x3)  =  convert_in_gga(x1, x2)
[]  =  []
U1_gga(x1, x2, x3)  =  U1_gga(x3)
eq_in_ag(x1, x2)  =  eq_in_ag(x2)
eq_out_ag(x1, x2)  =  eq_out_ag(x1)
0  =  0
convert_out_gga(x1, x2, x3)  =  convert_out_gga(x3)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
head_in_gg(x1, x2)  =  head_in_gg(x1, x2)
head_out_gg(x1, x2)  =  head_out_gg
.(x1, x2)  =  .(x1, x2)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x2, x4)
tail_in_ga(x1, x2)  =  tail_in_ga(x1)
tail_out_ga(x1, x2)  =  tail_out_ga(x2)
U4_gga(x1, x2, x3, x4, x5)  =  U4_gga(x2, x5)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
head_in_ga(x1, x2)  =  head_in_ga(x1)
head_out_ga(x1, x2)  =  head_out_ga
U7_gga(x1, x2, x3, x4, x5)  =  U7_gga(x1, x2, x5)
p_in_aa(x1, x2)  =  p_in_aa
p_out_aa(x1, x2)  =  p_out_aa
U8_gga(x1, x2, x3, x4, x5, x6)  =  U8_gga(x2, x6)
U9_gga(x1, x2, x3, x4, x5, x6, x7)  =  U9_gga(x7)
convert_in_aga(x1, x2, x3)  =  convert_in_aga(x2)
U1_aga(x1, x2, x3)  =  U1_aga(x3)
convert_out_aga(x1, x2, x3)  =  convert_out_aga(x3)
U2_aga(x1, x2, x3, x4)  =  U2_aga(x2, x4)
head_in_ag(x1, x2)  =  head_in_ag(x2)
head_out_ag(x1, x2)  =  head_out_ag
U3_aga(x1, x2, x3, x4)  =  U3_aga(x2, x4)
tail_in_aa(x1, x2)  =  tail_in_aa
tail_out_aa(x1, x2)  =  tail_out_aa
U4_aga(x1, x2, x3, x4, x5)  =  U4_aga(x2, x5)
U6_aga(x1, x2, x3, x4)  =  U6_aga(x2, x4)
head_in_aa(x1, x2)  =  head_in_aa
head_out_aa(x1, x2)  =  head_out_aa
U7_aga(x1, x2, x3, x4, x5)  =  U7_aga(x2, x5)
U8_aga(x1, x2, x3, x4, x5, x6)  =  U8_aga(x2, x6)
U9_aga(x1, x2, x3, x4, x5, x6, x7)  =  U9_aga(x7)
U10_aga(x1, x2, x3, x4)  =  U10_aga(x4)
p_in_ag(x1, x2)  =  p_in_ag(x2)
p_out_ag(x1, x2)  =  p_out_ag(x1)
U5_aga(x1, x2, x3, x4)  =  U5_aga(x4)
times_in_gga(x1, x2, x3)  =  times_in_gga(x1, x2)
U11_gga(x1, x2, x3)  =  U11_gga(x3)
times_out_gga(x1, x2, x3)  =  times_out_gga(x3)
U12_gga(x1, x2, x3, x4)  =  U12_gga(x2, x4)
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x2)
U13_gga(x1, x2, x3, x4, x5)  =  U13_gga(x2, x5)
U14_gga(x1, x2, x3, x4)  =  U14_gga(x4)
plus_in_gga(x1, x2, x3)  =  plus_in_gga(x1, x2)
U15_gga(x1, x2, x3)  =  U15_gga(x3)
eq_in_ga(x1, x2)  =  eq_in_ga(x1)
eq_out_ga(x1, x2)  =  eq_out_ga(x2)
plus_out_gga(x1, x2, x3)  =  plus_out_gga(x3)
U16_gga(x1, x2, x3, x4)  =  U16_gga(x2, x4)
U17_gga(x1, x2, x3, x4, x5)  =  U17_gga(x5)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x4)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x4)
CONVERT_IN_GGA(x1, x2, x3)  =  CONVERT_IN_GGA(x1, x2)
U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x2, x4)
U3_GGA(x1, x2, x3, x4)  =  U3_GGA(x2, x4)

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

(77) UsableRulesProof (EQUIVALENT transformation)

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

(78) Obligation:

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

CONVERT_IN_GGA(X, Y, Z) → U2_GGA(X, Y, Z, head_in_gg(X, 0))
U2_GGA(X, Y, Z, head_out_gg(X, 0)) → U3_GGA(X, Y, Z, tail_in_ga(X, T))
U3_GGA(X, Y, Z, tail_out_ga(X, T)) → CONVERT_IN_GGA(T, Y, U)

The TRS R consists of the following rules:

head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs), Xs) → tail_out_ga(.(X4, Xs), Xs)

The argument filtering Pi contains the following mapping:
[]  =  []
0  =  0
head_in_gg(x1, x2)  =  head_in_gg(x1, x2)
head_out_gg(x1, x2)  =  head_out_gg
.(x1, x2)  =  .(x1, x2)
tail_in_ga(x1, x2)  =  tail_in_ga(x1)
tail_out_ga(x1, x2)  =  tail_out_ga(x2)
CONVERT_IN_GGA(x1, x2, x3)  =  CONVERT_IN_GGA(x1, x2)
U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x2, x4)
U3_GGA(x1, x2, x3, x4)  =  U3_GGA(x2, x4)

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

(79) PiDPToQDPProof (SOUND transformation)

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

(80) Obligation:

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

CONVERT_IN_GGA(X, Y) → U2_GGA(X, Y, head_in_gg(X, 0))
U2_GGA(X, Y, head_out_gg) → U3_GGA(Y, tail_in_ga(X))
U3_GGA(Y, tail_out_ga(T)) → CONVERT_IN_GGA(T, Y)

The TRS R consists of the following rules:

head_in_gg([], X2) → head_out_gg
head_in_gg(.(H, X3), H) → head_out_gg
tail_in_ga([]) → tail_out_ga([])
tail_in_ga(.(X4, Xs)) → tail_out_ga(Xs)

The set Q consists of the following terms:

head_in_gg(x0, x1)
tail_in_ga(x0)

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

(81) 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.

No dependency pairs are removed.

The following rules are removed from R:

tail_in_ga(.(X4, Xs)) → tail_out_ga(Xs)
head_in_gg(.(H, X3), H) → head_out_gg
Used ordering: POLO with Polynomial interpretation [POLO]:

POL(.(x1, x2)) = x1 + 2·x2   
POL(0) = 0   
POL(CONVERT_IN_GGA(x1, x2)) = 2·x1 + x2   
POL(U2_GGA(x1, x2, x3)) = x1 + x2 + x3   
POL(U3_GGA(x1, x2)) = x1 + x2   
POL([]) = 0   
POL(head_in_gg(x1, x2)) = x1 + 2·x2   
POL(head_out_gg) = 0   
POL(tail_in_ga(x1)) = x1   
POL(tail_out_ga(x1)) = 2·x1   

(82) Obligation:

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

CONVERT_IN_GGA(X, Y) → U2_GGA(X, Y, head_in_gg(X, 0))
U2_GGA(X, Y, head_out_gg) → U3_GGA(Y, tail_in_ga(X))
U3_GGA(Y, tail_out_ga(T)) → CONVERT_IN_GGA(T, Y)

The TRS R consists of the following rules:

tail_in_ga([]) → tail_out_ga([])
head_in_gg([], X2) → head_out_gg

The set Q consists of the following terms:

head_in_gg(x0, x1)
tail_in_ga(x0)

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

(83) Narrowing (SOUND transformation)

By narrowing [LPAR04] the rule CONVERT_IN_GGA(X, Y) → U2_GGA(X, Y, head_in_gg(X, 0)) at position [2] we obtained the following new rules [LPAR04]:

CONVERT_IN_GGA([], y1) → U2_GGA([], y1, head_out_gg)

(84) Obligation:

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

U2_GGA(X, Y, head_out_gg) → U3_GGA(Y, tail_in_ga(X))
U3_GGA(Y, tail_out_ga(T)) → CONVERT_IN_GGA(T, Y)
CONVERT_IN_GGA([], y1) → U2_GGA([], y1, head_out_gg)

The TRS R consists of the following rules:

tail_in_ga([]) → tail_out_ga([])
head_in_gg([], X2) → head_out_gg

The set Q consists of the following terms:

head_in_gg(x0, x1)
tail_in_ga(x0)

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

(85) UsableRulesProof (EQUIVALENT transformation)

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

(86) Obligation:

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

U2_GGA(X, Y, head_out_gg) → U3_GGA(Y, tail_in_ga(X))
U3_GGA(Y, tail_out_ga(T)) → CONVERT_IN_GGA(T, Y)
CONVERT_IN_GGA([], y1) → U2_GGA([], y1, head_out_gg)

The TRS R consists of the following rules:

tail_in_ga([]) → tail_out_ga([])

The set Q consists of the following terms:

head_in_gg(x0, x1)
tail_in_ga(x0)

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

(87) QReductionProof (EQUIVALENT transformation)

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

head_in_gg(x0, x1)

(88) Obligation:

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

U2_GGA(X, Y, head_out_gg) → U3_GGA(Y, tail_in_ga(X))
U3_GGA(Y, tail_out_ga(T)) → CONVERT_IN_GGA(T, Y)
CONVERT_IN_GGA([], y1) → U2_GGA([], y1, head_out_gg)

The TRS R consists of the following rules:

tail_in_ga([]) → tail_out_ga([])

The set Q consists of the following terms:

tail_in_ga(x0)

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

(89) Narrowing (SOUND transformation)

By narrowing [LPAR04] the rule U2_GGA(X, Y, head_out_gg) → U3_GGA(Y, tail_in_ga(X)) at position [1] we obtained the following new rules [LPAR04]:

U2_GGA([], y1, head_out_gg) → U3_GGA(y1, tail_out_ga([]))

(90) Obligation:

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

U3_GGA(Y, tail_out_ga(T)) → CONVERT_IN_GGA(T, Y)
CONVERT_IN_GGA([], y1) → U2_GGA([], y1, head_out_gg)
U2_GGA([], y1, head_out_gg) → U3_GGA(y1, tail_out_ga([]))

The TRS R consists of the following rules:

tail_in_ga([]) → tail_out_ga([])

The set Q consists of the following terms:

tail_in_ga(x0)

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

(91) UsableRulesProof (EQUIVALENT transformation)

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

(92) Obligation:

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

U3_GGA(Y, tail_out_ga(T)) → CONVERT_IN_GGA(T, Y)
CONVERT_IN_GGA([], y1) → U2_GGA([], y1, head_out_gg)
U2_GGA([], y1, head_out_gg) → U3_GGA(y1, tail_out_ga([]))

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

tail_in_ga(x0)

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

(93) QReductionProof (EQUIVALENT transformation)

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

tail_in_ga(x0)

(94) Obligation:

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

U3_GGA(Y, tail_out_ga(T)) → CONVERT_IN_GGA(T, Y)
CONVERT_IN_GGA([], y1) → U2_GGA([], y1, head_out_gg)
U2_GGA([], y1, head_out_gg) → U3_GGA(y1, tail_out_ga([]))

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

(95) Instantiation (EQUIVALENT transformation)

By instantiating [LPAR04] the rule U3_GGA(Y, tail_out_ga(T)) → CONVERT_IN_GGA(T, Y) we obtained the following new rules [LPAR04]:

U3_GGA(z0, tail_out_ga([])) → CONVERT_IN_GGA([], z0)

(96) Obligation:

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

CONVERT_IN_GGA([], y1) → U2_GGA([], y1, head_out_gg)
U2_GGA([], y1, head_out_gg) → U3_GGA(y1, tail_out_ga([]))
U3_GGA(z0, tail_out_ga([])) → CONVERT_IN_GGA([], z0)

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

(97) NonTerminationProof (EQUIVALENT transformation)

We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = U2_GGA([], y1, head_out_gg) evaluates to t =U2_GGA([], y1, head_out_gg)

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




Rewriting sequence

U2_GGA([], y1, head_out_gg)U3_GGA(y1, tail_out_ga([]))
with rule U2_GGA([], y1', head_out_gg) → U3_GGA(y1', tail_out_ga([])) at position [] and matcher [y1' / y1]

U3_GGA(y1, tail_out_ga([]))CONVERT_IN_GGA([], y1)
with rule U3_GGA(z0, tail_out_ga([])) → CONVERT_IN_GGA([], z0) at position [] and matcher [z0 / y1]

CONVERT_IN_GGA([], y1)U2_GGA([], y1, head_out_gg)
with rule CONVERT_IN_GGA([], y1) → U2_GGA([], y1, head_out_gg)

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.



(98) FALSE

(99) PrologToPiTRSProof (SOUND transformation)

We use the technique of [LOPSTR]. With regard to the inferred argument filtering the predicates were used in the following modes:
convert_in: (b,b,f) (f,b,f)
times_in: (b,b,f)
plus_in: (b,b,f)
Transforming Prolog into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:

convert_in_gga([], X1, Z) → U1_gga(X1, Z, eq_in_ag(Z, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_gga(X1, Z, eq_out_ag(Z, 0)) → convert_out_gga([], X1, Z)
convert_in_gga(X, Y, Z) → U2_gga(X, Y, Z, head_in_gg(X, 0))
head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
U2_gga(X, Y, Z, head_out_gg(X, 0)) → U3_gga(X, Y, Z, tail_in_ga(X, T))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs), Xs) → tail_out_ga(.(X4, Xs), Xs)
U3_gga(X, Y, Z, tail_out_ga(X, T)) → U4_gga(X, Y, Z, T, convert_in_gga(T, Y, U))
convert_in_gga(X, Y, Z) → U6_gga(X, Y, Z, head_in_ga(X, H))
head_in_ga([], X2) → head_out_ga([], X2)
head_in_ga(.(H, X3), H) → head_out_ga(.(H, X3), H)
U6_gga(X, Y, Z, head_out_ga(X, H)) → U7_gga(X, Y, Z, H, p_in_aa(H, P))
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_aa(0, 0) → p_out_aa(0, 0)
U7_gga(X, Y, Z, H, p_out_aa(H, P)) → U8_gga(X, Y, Z, H, P, tail_in_ga(X, T))
U8_gga(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_gga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
convert_in_aga([], X1, Z) → U1_aga(X1, Z, eq_in_ag(Z, 0))
U1_aga(X1, Z, eq_out_ag(Z, 0)) → convert_out_aga([], X1, Z)
convert_in_aga(X, Y, Z) → U2_aga(X, Y, Z, head_in_ag(X, 0))
head_in_ag([], X2) → head_out_ag([], X2)
head_in_ag(.(H, X3), H) → head_out_ag(.(H, X3), H)
U2_aga(X, Y, Z, head_out_ag(X, 0)) → U3_aga(X, Y, Z, tail_in_aa(X, T))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X4, Xs), Xs) → tail_out_aa(.(X4, Xs), Xs)
U3_aga(X, Y, Z, tail_out_aa(X, T)) → U4_aga(X, Y, Z, T, convert_in_aga(T, Y, U))
convert_in_aga(X, Y, Z) → U6_aga(X, Y, Z, head_in_aa(X, H))
head_in_aa([], X2) → head_out_aa([], X2)
head_in_aa(.(H, X3), H) → head_out_aa(.(H, X3), H)
U6_aga(X, Y, Z, head_out_aa(X, H)) → U7_aga(X, Y, Z, H, p_in_aa(H, P))
U7_aga(X, Y, Z, H, p_out_aa(H, P)) → U8_aga(X, Y, Z, H, P, tail_in_aa(X, T))
U8_aga(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_aga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U9_aga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_aga(X, Y, Z, p_in_ag(Z, U))
p_in_ag(s(X), X) → p_out_ag(s(X), X)
p_in_ag(0, 0) → p_out_ag(0, 0)
U10_aga(X, Y, Z, p_out_ag(Z, U)) → convert_out_aga(X, Y, Z)
U4_aga(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_aga(X, Y, Z, times_in_gga(U, Y, Z))
times_in_gga(0, Y, Z) → U11_gga(Y, Z, eq_in_ag(Z, 0))
U11_gga(Y, Z, eq_out_ag(Z, 0)) → times_out_gga(0, Y, Z)
times_in_gga(X, Y, Z) → U12_gga(X, Y, Z, p_in_ga(X, P))
p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)
U12_gga(X, Y, Z, p_out_ga(X, P)) → U13_gga(X, Y, Z, P, times_in_gga(P, Y, U))
U13_gga(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_gga(X, Y, Z, plus_in_gga(Y, U, Z))
plus_in_gga(0, Y, Z) → U15_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U15_gga(Y, Z, eq_out_ga(Y, Z)) → plus_out_gga(0, Y, Z)
plus_in_gga(X, Y, Z) → U16_gga(X, Y, Z, p_in_ga(X, P))
U16_gga(X, Y, Z, p_out_ga(X, P)) → U17_gga(X, Y, Z, P, plus_in_gga(P, Y, U))
U17_gga(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_gga(X, Y, Z, p_in_ag(Z, U))
U18_gga(X, Y, Z, p_out_ag(Z, U)) → plus_out_gga(X, Y, Z)
U14_gga(X, Y, Z, plus_out_gga(Y, U, Z)) → times_out_gga(X, Y, Z)
U5_aga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_aga(X, Y, Z)
U9_gga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_gga(X, Y, Z, p_in_ag(Z, U))
U10_gga(X, Y, Z, p_out_ag(Z, U)) → convert_out_gga(X, Y, Z)
U4_gga(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_gga(X, Y, Z, times_in_gga(U, Y, Z))
U5_gga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_gga(X, Y, Z)

The argument filtering Pi contains the following mapping:
convert_in_gga(x1, x2, x3)  =  convert_in_gga(x1, x2)
[]  =  []
U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)
eq_in_ag(x1, x2)  =  eq_in_ag(x2)
eq_out_ag(x1, x2)  =  eq_out_ag(x1, x2)
0  =  0
convert_out_gga(x1, x2, x3)  =  convert_out_gga(x1, x2, x3)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
head_in_gg(x1, x2)  =  head_in_gg(x1, x2)
head_out_gg(x1, x2)  =  head_out_gg(x1, x2)
.(x1, x2)  =  .(x1, x2)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)
tail_in_ga(x1, x2)  =  tail_in_ga(x1)
tail_out_ga(x1, x2)  =  tail_out_ga(x1, x2)
U4_gga(x1, x2, x3, x4, x5)  =  U4_gga(x1, x2, x5)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
head_in_ga(x1, x2)  =  head_in_ga(x1)
head_out_ga(x1, x2)  =  head_out_ga(x1)
U7_gga(x1, x2, x3, x4, x5)  =  U7_gga(x1, x2, x5)
p_in_aa(x1, x2)  =  p_in_aa
p_out_aa(x1, x2)  =  p_out_aa
U8_gga(x1, x2, x3, x4, x5, x6)  =  U8_gga(x1, x2, x6)
U9_gga(x1, x2, x3, x4, x5, x6, x7)  =  U9_gga(x1, x2, x7)
convert_in_aga(x1, x2, x3)  =  convert_in_aga(x2)
U1_aga(x1, x2, x3)  =  U1_aga(x1, x3)
convert_out_aga(x1, x2, x3)  =  convert_out_aga(x2, x3)
U2_aga(x1, x2, x3, x4)  =  U2_aga(x2, x4)
head_in_ag(x1, x2)  =  head_in_ag(x2)
head_out_ag(x1, x2)  =  head_out_ag(x2)
U3_aga(x1, x2, x3, x4)  =  U3_aga(x2, x4)
tail_in_aa(x1, x2)  =  tail_in_aa
tail_out_aa(x1, x2)  =  tail_out_aa
U4_aga(x1, x2, x3, x4, x5)  =  U4_aga(x2, x5)
U6_aga(x1, x2, x3, x4)  =  U6_aga(x2, x4)
head_in_aa(x1, x2)  =  head_in_aa
head_out_aa(x1, x2)  =  head_out_aa
U7_aga(x1, x2, x3, x4, x5)  =  U7_aga(x2, x5)
U8_aga(x1, x2, x3, x4, x5, x6)  =  U8_aga(x2, x6)
U9_aga(x1, x2, x3, x4, x5, x6, x7)  =  U9_aga(x2, x7)
U10_aga(x1, x2, x3, x4)  =  U10_aga(x2, x4)
p_in_ag(x1, x2)  =  p_in_ag(x2)
p_out_ag(x1, x2)  =  p_out_ag(x1, x2)
U5_aga(x1, x2, x3, x4)  =  U5_aga(x2, x4)
times_in_gga(x1, x2, x3)  =  times_in_gga(x1, x2)
U11_gga(x1, x2, x3)  =  U11_gga(x1, x3)
times_out_gga(x1, x2, x3)  =  times_out_gga(x1, x2, x3)
U12_gga(x1, x2, x3, x4)  =  U12_gga(x1, x2, x4)
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x1, x2)
U13_gga(x1, x2, x3, x4, x5)  =  U13_gga(x1, x2, x5)
U14_gga(x1, x2, x3, x4)  =  U14_gga(x1, x2, x4)
plus_in_gga(x1, x2, x3)  =  plus_in_gga(x1, x2)
U15_gga(x1, x2, x3)  =  U15_gga(x1, x3)
eq_in_ga(x1, x2)  =  eq_in_ga(x1)
eq_out_ga(x1, x2)  =  eq_out_ga(x1, x2)
plus_out_gga(x1, x2, x3)  =  plus_out_gga(x1, x2, x3)
U16_gga(x1, x2, x3, x4)  =  U16_gga(x1, x2, x4)
U17_gga(x1, x2, x3, x4, x5)  =  U17_gga(x1, x2, x5)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x1, x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x1, x2, x4)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)

Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog

(100) Obligation:

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

convert_in_gga([], X1, Z) → U1_gga(X1, Z, eq_in_ag(Z, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_gga(X1, Z, eq_out_ag(Z, 0)) → convert_out_gga([], X1, Z)
convert_in_gga(X, Y, Z) → U2_gga(X, Y, Z, head_in_gg(X, 0))
head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
U2_gga(X, Y, Z, head_out_gg(X, 0)) → U3_gga(X, Y, Z, tail_in_ga(X, T))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs), Xs) → tail_out_ga(.(X4, Xs), Xs)
U3_gga(X, Y, Z, tail_out_ga(X, T)) → U4_gga(X, Y, Z, T, convert_in_gga(T, Y, U))
convert_in_gga(X, Y, Z) → U6_gga(X, Y, Z, head_in_ga(X, H))
head_in_ga([], X2) → head_out_ga([], X2)
head_in_ga(.(H, X3), H) → head_out_ga(.(H, X3), H)
U6_gga(X, Y, Z, head_out_ga(X, H)) → U7_gga(X, Y, Z, H, p_in_aa(H, P))
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_aa(0, 0) → p_out_aa(0, 0)
U7_gga(X, Y, Z, H, p_out_aa(H, P)) → U8_gga(X, Y, Z, H, P, tail_in_ga(X, T))
U8_gga(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_gga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
convert_in_aga([], X1, Z) → U1_aga(X1, Z, eq_in_ag(Z, 0))
U1_aga(X1, Z, eq_out_ag(Z, 0)) → convert_out_aga([], X1, Z)
convert_in_aga(X, Y, Z) → U2_aga(X, Y, Z, head_in_ag(X, 0))
head_in_ag([], X2) → head_out_ag([], X2)
head_in_ag(.(H, X3), H) → head_out_ag(.(H, X3), H)
U2_aga(X, Y, Z, head_out_ag(X, 0)) → U3_aga(X, Y, Z, tail_in_aa(X, T))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X4, Xs), Xs) → tail_out_aa(.(X4, Xs), Xs)
U3_aga(X, Y, Z, tail_out_aa(X, T)) → U4_aga(X, Y, Z, T, convert_in_aga(T, Y, U))
convert_in_aga(X, Y, Z) → U6_aga(X, Y, Z, head_in_aa(X, H))
head_in_aa([], X2) → head_out_aa([], X2)
head_in_aa(.(H, X3), H) → head_out_aa(.(H, X3), H)
U6_aga(X, Y, Z, head_out_aa(X, H)) → U7_aga(X, Y, Z, H, p_in_aa(H, P))
U7_aga(X, Y, Z, H, p_out_aa(H, P)) → U8_aga(X, Y, Z, H, P, tail_in_aa(X, T))
U8_aga(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_aga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U9_aga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_aga(X, Y, Z, p_in_ag(Z, U))
p_in_ag(s(X), X) → p_out_ag(s(X), X)
p_in_ag(0, 0) → p_out_ag(0, 0)
U10_aga(X, Y, Z, p_out_ag(Z, U)) → convert_out_aga(X, Y, Z)
U4_aga(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_aga(X, Y, Z, times_in_gga(U, Y, Z))
times_in_gga(0, Y, Z) → U11_gga(Y, Z, eq_in_ag(Z, 0))
U11_gga(Y, Z, eq_out_ag(Z, 0)) → times_out_gga(0, Y, Z)
times_in_gga(X, Y, Z) → U12_gga(X, Y, Z, p_in_ga(X, P))
p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)
U12_gga(X, Y, Z, p_out_ga(X, P)) → U13_gga(X, Y, Z, P, times_in_gga(P, Y, U))
U13_gga(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_gga(X, Y, Z, plus_in_gga(Y, U, Z))
plus_in_gga(0, Y, Z) → U15_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U15_gga(Y, Z, eq_out_ga(Y, Z)) → plus_out_gga(0, Y, Z)
plus_in_gga(X, Y, Z) → U16_gga(X, Y, Z, p_in_ga(X, P))
U16_gga(X, Y, Z, p_out_ga(X, P)) → U17_gga(X, Y, Z, P, plus_in_gga(P, Y, U))
U17_gga(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_gga(X, Y, Z, p_in_ag(Z, U))
U18_gga(X, Y, Z, p_out_ag(Z, U)) → plus_out_gga(X, Y, Z)
U14_gga(X, Y, Z, plus_out_gga(Y, U, Z)) → times_out_gga(X, Y, Z)
U5_aga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_aga(X, Y, Z)
U9_gga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_gga(X, Y, Z, p_in_ag(Z, U))
U10_gga(X, Y, Z, p_out_ag(Z, U)) → convert_out_gga(X, Y, Z)
U4_gga(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_gga(X, Y, Z, times_in_gga(U, Y, Z))
U5_gga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_gga(X, Y, Z)

The argument filtering Pi contains the following mapping:
convert_in_gga(x1, x2, x3)  =  convert_in_gga(x1, x2)
[]  =  []
U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)
eq_in_ag(x1, x2)  =  eq_in_ag(x2)
eq_out_ag(x1, x2)  =  eq_out_ag(x1, x2)
0  =  0
convert_out_gga(x1, x2, x3)  =  convert_out_gga(x1, x2, x3)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
head_in_gg(x1, x2)  =  head_in_gg(x1, x2)
head_out_gg(x1, x2)  =  head_out_gg(x1, x2)
.(x1, x2)  =  .(x1, x2)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)
tail_in_ga(x1, x2)  =  tail_in_ga(x1)
tail_out_ga(x1, x2)  =  tail_out_ga(x1, x2)
U4_gga(x1, x2, x3, x4, x5)  =  U4_gga(x1, x2, x5)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
head_in_ga(x1, x2)  =  head_in_ga(x1)
head_out_ga(x1, x2)  =  head_out_ga(x1)
U7_gga(x1, x2, x3, x4, x5)  =  U7_gga(x1, x2, x5)
p_in_aa(x1, x2)  =  p_in_aa
p_out_aa(x1, x2)  =  p_out_aa
U8_gga(x1, x2, x3, x4, x5, x6)  =  U8_gga(x1, x2, x6)
U9_gga(x1, x2, x3, x4, x5, x6, x7)  =  U9_gga(x1, x2, x7)
convert_in_aga(x1, x2, x3)  =  convert_in_aga(x2)
U1_aga(x1, x2, x3)  =  U1_aga(x1, x3)
convert_out_aga(x1, x2, x3)  =  convert_out_aga(x2, x3)
U2_aga(x1, x2, x3, x4)  =  U2_aga(x2, x4)
head_in_ag(x1, x2)  =  head_in_ag(x2)
head_out_ag(x1, x2)  =  head_out_ag(x2)
U3_aga(x1, x2, x3, x4)  =  U3_aga(x2, x4)
tail_in_aa(x1, x2)  =  tail_in_aa
tail_out_aa(x1, x2)  =  tail_out_aa
U4_aga(x1, x2, x3, x4, x5)  =  U4_aga(x2, x5)
U6_aga(x1, x2, x3, x4)  =  U6_aga(x2, x4)
head_in_aa(x1, x2)  =  head_in_aa
head_out_aa(x1, x2)  =  head_out_aa
U7_aga(x1, x2, x3, x4, x5)  =  U7_aga(x2, x5)
U8_aga(x1, x2, x3, x4, x5, x6)  =  U8_aga(x2, x6)
U9_aga(x1, x2, x3, x4, x5, x6, x7)  =  U9_aga(x2, x7)
U10_aga(x1, x2, x3, x4)  =  U10_aga(x2, x4)
p_in_ag(x1, x2)  =  p_in_ag(x2)
p_out_ag(x1, x2)  =  p_out_ag(x1, x2)
U5_aga(x1, x2, x3, x4)  =  U5_aga(x2, x4)
times_in_gga(x1, x2, x3)  =  times_in_gga(x1, x2)
U11_gga(x1, x2, x3)  =  U11_gga(x1, x3)
times_out_gga(x1, x2, x3)  =  times_out_gga(x1, x2, x3)
U12_gga(x1, x2, x3, x4)  =  U12_gga(x1, x2, x4)
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x1, x2)
U13_gga(x1, x2, x3, x4, x5)  =  U13_gga(x1, x2, x5)
U14_gga(x1, x2, x3, x4)  =  U14_gga(x1, x2, x4)
plus_in_gga(x1, x2, x3)  =  plus_in_gga(x1, x2)
U15_gga(x1, x2, x3)  =  U15_gga(x1, x3)
eq_in_ga(x1, x2)  =  eq_in_ga(x1)
eq_out_ga(x1, x2)  =  eq_out_ga(x1, x2)
plus_out_gga(x1, x2, x3)  =  plus_out_gga(x1, x2, x3)
U16_gga(x1, x2, x3, x4)  =  U16_gga(x1, x2, x4)
U17_gga(x1, x2, x3, x4, x5)  =  U17_gga(x1, x2, x5)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x1, x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x1, x2, x4)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)

(101) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem:
Pi DP problem:
The TRS P consists of the following rules:

CONVERT_IN_GGA([], X1, Z) → U1_GGA(X1, Z, eq_in_ag(Z, 0))
CONVERT_IN_GGA([], X1, Z) → EQ_IN_AG(Z, 0)
CONVERT_IN_GGA(X, Y, Z) → U2_GGA(X, Y, Z, head_in_gg(X, 0))
CONVERT_IN_GGA(X, Y, Z) → HEAD_IN_GG(X, 0)
U2_GGA(X, Y, Z, head_out_gg(X, 0)) → U3_GGA(X, Y, Z, tail_in_ga(X, T))
U2_GGA(X, Y, Z, head_out_gg(X, 0)) → TAIL_IN_GA(X, T)
U3_GGA(X, Y, Z, tail_out_ga(X, T)) → U4_GGA(X, Y, Z, T, convert_in_gga(T, Y, U))
U3_GGA(X, Y, Z, tail_out_ga(X, T)) → CONVERT_IN_GGA(T, Y, U)
CONVERT_IN_GGA(X, Y, Z) → U6_GGA(X, Y, Z, head_in_ga(X, H))
CONVERT_IN_GGA(X, Y, Z) → HEAD_IN_GA(X, H)
U6_GGA(X, Y, Z, head_out_ga(X, H)) → U7_GGA(X, Y, Z, H, p_in_aa(H, P))
U6_GGA(X, Y, Z, head_out_ga(X, H)) → P_IN_AA(H, P)
U7_GGA(X, Y, Z, H, p_out_aa(H, P)) → U8_GGA(X, Y, Z, H, P, tail_in_ga(X, T))
U7_GGA(X, Y, Z, H, p_out_aa(H, P)) → TAIL_IN_GA(X, T)
U8_GGA(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_GGA(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U8_GGA(X, Y, Z, H, P, tail_out_ga(X, T)) → CONVERT_IN_AGA(.(P, T), Y, U)
CONVERT_IN_AGA([], X1, Z) → U1_AGA(X1, Z, eq_in_ag(Z, 0))
CONVERT_IN_AGA([], X1, Z) → EQ_IN_AG(Z, 0)
CONVERT_IN_AGA(X, Y, Z) → U2_AGA(X, Y, Z, head_in_ag(X, 0))
CONVERT_IN_AGA(X, Y, Z) → HEAD_IN_AG(X, 0)
U2_AGA(X, Y, Z, head_out_ag(X, 0)) → U3_AGA(X, Y, Z, tail_in_aa(X, T))
U2_AGA(X, Y, Z, head_out_ag(X, 0)) → TAIL_IN_AA(X, T)
U3_AGA(X, Y, Z, tail_out_aa(X, T)) → U4_AGA(X, Y, Z, T, convert_in_aga(T, Y, U))
U3_AGA(X, Y, Z, tail_out_aa(X, T)) → CONVERT_IN_AGA(T, Y, U)
CONVERT_IN_AGA(X, Y, Z) → U6_AGA(X, Y, Z, head_in_aa(X, H))
CONVERT_IN_AGA(X, Y, Z) → HEAD_IN_AA(X, H)
U6_AGA(X, Y, Z, head_out_aa(X, H)) → U7_AGA(X, Y, Z, H, p_in_aa(H, P))
U6_AGA(X, Y, Z, head_out_aa(X, H)) → P_IN_AA(H, P)
U7_AGA(X, Y, Z, H, p_out_aa(H, P)) → U8_AGA(X, Y, Z, H, P, tail_in_aa(X, T))
U7_AGA(X, Y, Z, H, p_out_aa(H, P)) → TAIL_IN_AA(X, T)
U8_AGA(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_AGA(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U8_AGA(X, Y, Z, H, P, tail_out_aa(X, T)) → CONVERT_IN_AGA(.(P, T), Y, U)
U9_AGA(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_AGA(X, Y, Z, p_in_ag(Z, U))
U9_AGA(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → P_IN_AG(Z, U)
U4_AGA(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_AGA(X, Y, Z, times_in_gga(U, Y, Z))
U4_AGA(X, Y, Z, T, convert_out_aga(T, Y, U)) → TIMES_IN_GGA(U, Y, Z)
TIMES_IN_GGA(0, Y, Z) → U11_GGA(Y, Z, eq_in_ag(Z, 0))
TIMES_IN_GGA(0, Y, Z) → EQ_IN_AG(Z, 0)
TIMES_IN_GGA(X, Y, Z) → U12_GGA(X, Y, Z, p_in_ga(X, P))
TIMES_IN_GGA(X, Y, Z) → P_IN_GA(X, P)
U12_GGA(X, Y, Z, p_out_ga(X, P)) → U13_GGA(X, Y, Z, P, times_in_gga(P, Y, U))
U12_GGA(X, Y, Z, p_out_ga(X, P)) → TIMES_IN_GGA(P, Y, U)
U13_GGA(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_GGA(X, Y, Z, plus_in_gga(Y, U, Z))
U13_GGA(X, Y, Z, P, times_out_gga(P, Y, U)) → PLUS_IN_GGA(Y, U, Z)
PLUS_IN_GGA(0, Y, Z) → U15_GGA(Y, Z, eq_in_ga(Y, Z))
PLUS_IN_GGA(0, Y, Z) → EQ_IN_GA(Y, Z)
PLUS_IN_GGA(X, Y, Z) → U16_GGA(X, Y, Z, p_in_ga(X, P))
PLUS_IN_GGA(X, Y, Z) → P_IN_GA(X, P)
U16_GGA(X, Y, Z, p_out_ga(X, P)) → U17_GGA(X, Y, Z, P, plus_in_gga(P, Y, U))
U16_GGA(X, Y, Z, p_out_ga(X, P)) → PLUS_IN_GGA(P, Y, U)
U17_GGA(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_GGA(X, Y, Z, p_in_ag(Z, U))
U17_GGA(X, Y, Z, P, plus_out_gga(P, Y, U)) → P_IN_AG(Z, U)
U9_GGA(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_GGA(X, Y, Z, p_in_ag(Z, U))
U9_GGA(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → P_IN_AG(Z, U)
U4_GGA(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_GGA(X, Y, Z, times_in_gga(U, Y, Z))
U4_GGA(X, Y, Z, T, convert_out_gga(T, Y, U)) → TIMES_IN_GGA(U, Y, Z)

The TRS R consists of the following rules:

convert_in_gga([], X1, Z) → U1_gga(X1, Z, eq_in_ag(Z, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_gga(X1, Z, eq_out_ag(Z, 0)) → convert_out_gga([], X1, Z)
convert_in_gga(X, Y, Z) → U2_gga(X, Y, Z, head_in_gg(X, 0))
head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
U2_gga(X, Y, Z, head_out_gg(X, 0)) → U3_gga(X, Y, Z, tail_in_ga(X, T))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs), Xs) → tail_out_ga(.(X4, Xs), Xs)
U3_gga(X, Y, Z, tail_out_ga(X, T)) → U4_gga(X, Y, Z, T, convert_in_gga(T, Y, U))
convert_in_gga(X, Y, Z) → U6_gga(X, Y, Z, head_in_ga(X, H))
head_in_ga([], X2) → head_out_ga([], X2)
head_in_ga(.(H, X3), H) → head_out_ga(.(H, X3), H)
U6_gga(X, Y, Z, head_out_ga(X, H)) → U7_gga(X, Y, Z, H, p_in_aa(H, P))
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_aa(0, 0) → p_out_aa(0, 0)
U7_gga(X, Y, Z, H, p_out_aa(H, P)) → U8_gga(X, Y, Z, H, P, tail_in_ga(X, T))
U8_gga(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_gga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
convert_in_aga([], X1, Z) → U1_aga(X1, Z, eq_in_ag(Z, 0))
U1_aga(X1, Z, eq_out_ag(Z, 0)) → convert_out_aga([], X1, Z)
convert_in_aga(X, Y, Z) → U2_aga(X, Y, Z, head_in_ag(X, 0))
head_in_ag([], X2) → head_out_ag([], X2)
head_in_ag(.(H, X3), H) → head_out_ag(.(H, X3), H)
U2_aga(X, Y, Z, head_out_ag(X, 0)) → U3_aga(X, Y, Z, tail_in_aa(X, T))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X4, Xs), Xs) → tail_out_aa(.(X4, Xs), Xs)
U3_aga(X, Y, Z, tail_out_aa(X, T)) → U4_aga(X, Y, Z, T, convert_in_aga(T, Y, U))
convert_in_aga(X, Y, Z) → U6_aga(X, Y, Z, head_in_aa(X, H))
head_in_aa([], X2) → head_out_aa([], X2)
head_in_aa(.(H, X3), H) → head_out_aa(.(H, X3), H)
U6_aga(X, Y, Z, head_out_aa(X, H)) → U7_aga(X, Y, Z, H, p_in_aa(H, P))
U7_aga(X, Y, Z, H, p_out_aa(H, P)) → U8_aga(X, Y, Z, H, P, tail_in_aa(X, T))
U8_aga(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_aga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U9_aga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_aga(X, Y, Z, p_in_ag(Z, U))
p_in_ag(s(X), X) → p_out_ag(s(X), X)
p_in_ag(0, 0) → p_out_ag(0, 0)
U10_aga(X, Y, Z, p_out_ag(Z, U)) → convert_out_aga(X, Y, Z)
U4_aga(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_aga(X, Y, Z, times_in_gga(U, Y, Z))
times_in_gga(0, Y, Z) → U11_gga(Y, Z, eq_in_ag(Z, 0))
U11_gga(Y, Z, eq_out_ag(Z, 0)) → times_out_gga(0, Y, Z)
times_in_gga(X, Y, Z) → U12_gga(X, Y, Z, p_in_ga(X, P))
p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)
U12_gga(X, Y, Z, p_out_ga(X, P)) → U13_gga(X, Y, Z, P, times_in_gga(P, Y, U))
U13_gga(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_gga(X, Y, Z, plus_in_gga(Y, U, Z))
plus_in_gga(0, Y, Z) → U15_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U15_gga(Y, Z, eq_out_ga(Y, Z)) → plus_out_gga(0, Y, Z)
plus_in_gga(X, Y, Z) → U16_gga(X, Y, Z, p_in_ga(X, P))
U16_gga(X, Y, Z, p_out_ga(X, P)) → U17_gga(X, Y, Z, P, plus_in_gga(P, Y, U))
U17_gga(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_gga(X, Y, Z, p_in_ag(Z, U))
U18_gga(X, Y, Z, p_out_ag(Z, U)) → plus_out_gga(X, Y, Z)
U14_gga(X, Y, Z, plus_out_gga(Y, U, Z)) → times_out_gga(X, Y, Z)
U5_aga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_aga(X, Y, Z)
U9_gga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_gga(X, Y, Z, p_in_ag(Z, U))
U10_gga(X, Y, Z, p_out_ag(Z, U)) → convert_out_gga(X, Y, Z)
U4_gga(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_gga(X, Y, Z, times_in_gga(U, Y, Z))
U5_gga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_gga(X, Y, Z)

The argument filtering Pi contains the following mapping:
convert_in_gga(x1, x2, x3)  =  convert_in_gga(x1, x2)
[]  =  []
U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)
eq_in_ag(x1, x2)  =  eq_in_ag(x2)
eq_out_ag(x1, x2)  =  eq_out_ag(x1, x2)
0  =  0
convert_out_gga(x1, x2, x3)  =  convert_out_gga(x1, x2, x3)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
head_in_gg(x1, x2)  =  head_in_gg(x1, x2)
head_out_gg(x1, x2)  =  head_out_gg(x1, x2)
.(x1, x2)  =  .(x1, x2)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)
tail_in_ga(x1, x2)  =  tail_in_ga(x1)
tail_out_ga(x1, x2)  =  tail_out_ga(x1, x2)
U4_gga(x1, x2, x3, x4, x5)  =  U4_gga(x1, x2, x5)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
head_in_ga(x1, x2)  =  head_in_ga(x1)
head_out_ga(x1, x2)  =  head_out_ga(x1)
U7_gga(x1, x2, x3, x4, x5)  =  U7_gga(x1, x2, x5)
p_in_aa(x1, x2)  =  p_in_aa
p_out_aa(x1, x2)  =  p_out_aa
U8_gga(x1, x2, x3, x4, x5, x6)  =  U8_gga(x1, x2, x6)
U9_gga(x1, x2, x3, x4, x5, x6, x7)  =  U9_gga(x1, x2, x7)
convert_in_aga(x1, x2, x3)  =  convert_in_aga(x2)
U1_aga(x1, x2, x3)  =  U1_aga(x1, x3)
convert_out_aga(x1, x2, x3)  =  convert_out_aga(x2, x3)
U2_aga(x1, x2, x3, x4)  =  U2_aga(x2, x4)
head_in_ag(x1, x2)  =  head_in_ag(x2)
head_out_ag(x1, x2)  =  head_out_ag(x2)
U3_aga(x1, x2, x3, x4)  =  U3_aga(x2, x4)
tail_in_aa(x1, x2)  =  tail_in_aa
tail_out_aa(x1, x2)  =  tail_out_aa
U4_aga(x1, x2, x3, x4, x5)  =  U4_aga(x2, x5)
U6_aga(x1, x2, x3, x4)  =  U6_aga(x2, x4)
head_in_aa(x1, x2)  =  head_in_aa
head_out_aa(x1, x2)  =  head_out_aa
U7_aga(x1, x2, x3, x4, x5)  =  U7_aga(x2, x5)
U8_aga(x1, x2, x3, x4, x5, x6)  =  U8_aga(x2, x6)
U9_aga(x1, x2, x3, x4, x5, x6, x7)  =  U9_aga(x2, x7)
U10_aga(x1, x2, x3, x4)  =  U10_aga(x2, x4)
p_in_ag(x1, x2)  =  p_in_ag(x2)
p_out_ag(x1, x2)  =  p_out_ag(x1, x2)
U5_aga(x1, x2, x3, x4)  =  U5_aga(x2, x4)
times_in_gga(x1, x2, x3)  =  times_in_gga(x1, x2)
U11_gga(x1, x2, x3)  =  U11_gga(x1, x3)
times_out_gga(x1, x2, x3)  =  times_out_gga(x1, x2, x3)
U12_gga(x1, x2, x3, x4)  =  U12_gga(x1, x2, x4)
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x1, x2)
U13_gga(x1, x2, x3, x4, x5)  =  U13_gga(x1, x2, x5)
U14_gga(x1, x2, x3, x4)  =  U14_gga(x1, x2, x4)
plus_in_gga(x1, x2, x3)  =  plus_in_gga(x1, x2)
U15_gga(x1, x2, x3)  =  U15_gga(x1, x3)
eq_in_ga(x1, x2)  =  eq_in_ga(x1)
eq_out_ga(x1, x2)  =  eq_out_ga(x1, x2)
plus_out_gga(x1, x2, x3)  =  plus_out_gga(x1, x2, x3)
U16_gga(x1, x2, x3, x4)  =  U16_gga(x1, x2, x4)
U17_gga(x1, x2, x3, x4, x5)  =  U17_gga(x1, x2, x5)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x1, x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x1, x2, x4)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)
CONVERT_IN_GGA(x1, x2, x3)  =  CONVERT_IN_GGA(x1, x2)
U1_GGA(x1, x2, x3)  =  U1_GGA(x1, x3)
EQ_IN_AG(x1, x2)  =  EQ_IN_AG(x2)
U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x2, x4)
HEAD_IN_GG(x1, x2)  =  HEAD_IN_GG(x1, x2)
U3_GGA(x1, x2, x3, x4)  =  U3_GGA(x1, x2, x4)
TAIL_IN_GA(x1, x2)  =  TAIL_IN_GA(x1)
U4_GGA(x1, x2, x3, x4, x5)  =  U4_GGA(x1, x2, x5)
U6_GGA(x1, x2, x3, x4)  =  U6_GGA(x1, x2, x4)
HEAD_IN_GA(x1, x2)  =  HEAD_IN_GA(x1)
U7_GGA(x1, x2, x3, x4, x5)  =  U7_GGA(x1, x2, x5)
P_IN_AA(x1, x2)  =  P_IN_AA
U8_GGA(x1, x2, x3, x4, x5, x6)  =  U8_GGA(x1, x2, x6)
U9_GGA(x1, x2, x3, x4, x5, x6, x7)  =  U9_GGA(x1, x2, x7)
CONVERT_IN_AGA(x1, x2, x3)  =  CONVERT_IN_AGA(x2)
U1_AGA(x1, x2, x3)  =  U1_AGA(x1, x3)
U2_AGA(x1, x2, x3, x4)  =  U2_AGA(x2, x4)
HEAD_IN_AG(x1, x2)  =  HEAD_IN_AG(x2)
U3_AGA(x1, x2, x3, x4)  =  U3_AGA(x2, x4)
TAIL_IN_AA(x1, x2)  =  TAIL_IN_AA
U4_AGA(x1, x2, x3, x4, x5)  =  U4_AGA(x2, x5)
U6_AGA(x1, x2, x3, x4)  =  U6_AGA(x2, x4)
HEAD_IN_AA(x1, x2)  =  HEAD_IN_AA
U7_AGA(x1, x2, x3, x4, x5)  =  U7_AGA(x2, x5)
U8_AGA(x1, x2, x3, x4, x5, x6)  =  U8_AGA(x2, x6)
U9_AGA(x1, x2, x3, x4, x5, x6, x7)  =  U9_AGA(x2, x7)
U10_AGA(x1, x2, x3, x4)  =  U10_AGA(x2, x4)
P_IN_AG(x1, x2)  =  P_IN_AG(x2)
U5_AGA(x1, x2, x3, x4)  =  U5_AGA(x2, x4)
TIMES_IN_GGA(x1, x2, x3)  =  TIMES_IN_GGA(x1, x2)
U11_GGA(x1, x2, x3)  =  U11_GGA(x1, x3)
U12_GGA(x1, x2, x3, x4)  =  U12_GGA(x1, x2, x4)
P_IN_GA(x1, x2)  =  P_IN_GA(x1)
U13_GGA(x1, x2, x3, x4, x5)  =  U13_GGA(x1, x2, x5)
U14_GGA(x1, x2, x3, x4)  =  U14_GGA(x1, x2, x4)
PLUS_IN_GGA(x1, x2, x3)  =  PLUS_IN_GGA(x1, x2)
U15_GGA(x1, x2, x3)  =  U15_GGA(x1, x3)
EQ_IN_GA(x1, x2)  =  EQ_IN_GA(x1)
U16_GGA(x1, x2, x3, x4)  =  U16_GGA(x1, x2, x4)
U17_GGA(x1, x2, x3, x4, x5)  =  U17_GGA(x1, x2, x5)
U18_GGA(x1, x2, x3, x4)  =  U18_GGA(x1, x2, x4)
U10_GGA(x1, x2, x3, x4)  =  U10_GGA(x1, x2, x4)
U5_GGA(x1, x2, x3, x4)  =  U5_GGA(x1, x2, x4)

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

(102) Obligation:

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

CONVERT_IN_GGA([], X1, Z) → U1_GGA(X1, Z, eq_in_ag(Z, 0))
CONVERT_IN_GGA([], X1, Z) → EQ_IN_AG(Z, 0)
CONVERT_IN_GGA(X, Y, Z) → U2_GGA(X, Y, Z, head_in_gg(X, 0))
CONVERT_IN_GGA(X, Y, Z) → HEAD_IN_GG(X, 0)
U2_GGA(X, Y, Z, head_out_gg(X, 0)) → U3_GGA(X, Y, Z, tail_in_ga(X, T))
U2_GGA(X, Y, Z, head_out_gg(X, 0)) → TAIL_IN_GA(X, T)
U3_GGA(X, Y, Z, tail_out_ga(X, T)) → U4_GGA(X, Y, Z, T, convert_in_gga(T, Y, U))
U3_GGA(X, Y, Z, tail_out_ga(X, T)) → CONVERT_IN_GGA(T, Y, U)
CONVERT_IN_GGA(X, Y, Z) → U6_GGA(X, Y, Z, head_in_ga(X, H))
CONVERT_IN_GGA(X, Y, Z) → HEAD_IN_GA(X, H)
U6_GGA(X, Y, Z, head_out_ga(X, H)) → U7_GGA(X, Y, Z, H, p_in_aa(H, P))
U6_GGA(X, Y, Z, head_out_ga(X, H)) → P_IN_AA(H, P)
U7_GGA(X, Y, Z, H, p_out_aa(H, P)) → U8_GGA(X, Y, Z, H, P, tail_in_ga(X, T))
U7_GGA(X, Y, Z, H, p_out_aa(H, P)) → TAIL_IN_GA(X, T)
U8_GGA(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_GGA(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U8_GGA(X, Y, Z, H, P, tail_out_ga(X, T)) → CONVERT_IN_AGA(.(P, T), Y, U)
CONVERT_IN_AGA([], X1, Z) → U1_AGA(X1, Z, eq_in_ag(Z, 0))
CONVERT_IN_AGA([], X1, Z) → EQ_IN_AG(Z, 0)
CONVERT_IN_AGA(X, Y, Z) → U2_AGA(X, Y, Z, head_in_ag(X, 0))
CONVERT_IN_AGA(X, Y, Z) → HEAD_IN_AG(X, 0)
U2_AGA(X, Y, Z, head_out_ag(X, 0)) → U3_AGA(X, Y, Z, tail_in_aa(X, T))
U2_AGA(X, Y, Z, head_out_ag(X, 0)) → TAIL_IN_AA(X, T)
U3_AGA(X, Y, Z, tail_out_aa(X, T)) → U4_AGA(X, Y, Z, T, convert_in_aga(T, Y, U))
U3_AGA(X, Y, Z, tail_out_aa(X, T)) → CONVERT_IN_AGA(T, Y, U)
CONVERT_IN_AGA(X, Y, Z) → U6_AGA(X, Y, Z, head_in_aa(X, H))
CONVERT_IN_AGA(X, Y, Z) → HEAD_IN_AA(X, H)
U6_AGA(X, Y, Z, head_out_aa(X, H)) → U7_AGA(X, Y, Z, H, p_in_aa(H, P))
U6_AGA(X, Y, Z, head_out_aa(X, H)) → P_IN_AA(H, P)
U7_AGA(X, Y, Z, H, p_out_aa(H, P)) → U8_AGA(X, Y, Z, H, P, tail_in_aa(X, T))
U7_AGA(X, Y, Z, H, p_out_aa(H, P)) → TAIL_IN_AA(X, T)
U8_AGA(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_AGA(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U8_AGA(X, Y, Z, H, P, tail_out_aa(X, T)) → CONVERT_IN_AGA(.(P, T), Y, U)
U9_AGA(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_AGA(X, Y, Z, p_in_ag(Z, U))
U9_AGA(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → P_IN_AG(Z, U)
U4_AGA(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_AGA(X, Y, Z, times_in_gga(U, Y, Z))
U4_AGA(X, Y, Z, T, convert_out_aga(T, Y, U)) → TIMES_IN_GGA(U, Y, Z)
TIMES_IN_GGA(0, Y, Z) → U11_GGA(Y, Z, eq_in_ag(Z, 0))
TIMES_IN_GGA(0, Y, Z) → EQ_IN_AG(Z, 0)
TIMES_IN_GGA(X, Y, Z) → U12_GGA(X, Y, Z, p_in_ga(X, P))
TIMES_IN_GGA(X, Y, Z) → P_IN_GA(X, P)
U12_GGA(X, Y, Z, p_out_ga(X, P)) → U13_GGA(X, Y, Z, P, times_in_gga(P, Y, U))
U12_GGA(X, Y, Z, p_out_ga(X, P)) → TIMES_IN_GGA(P, Y, U)
U13_GGA(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_GGA(X, Y, Z, plus_in_gga(Y, U, Z))
U13_GGA(X, Y, Z, P, times_out_gga(P, Y, U)) → PLUS_IN_GGA(Y, U, Z)
PLUS_IN_GGA(0, Y, Z) → U15_GGA(Y, Z, eq_in_ga(Y, Z))
PLUS_IN_GGA(0, Y, Z) → EQ_IN_GA(Y, Z)
PLUS_IN_GGA(X, Y, Z) → U16_GGA(X, Y, Z, p_in_ga(X, P))
PLUS_IN_GGA(X, Y, Z) → P_IN_GA(X, P)
U16_GGA(X, Y, Z, p_out_ga(X, P)) → U17_GGA(X, Y, Z, P, plus_in_gga(P, Y, U))
U16_GGA(X, Y, Z, p_out_ga(X, P)) → PLUS_IN_GGA(P, Y, U)
U17_GGA(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_GGA(X, Y, Z, p_in_ag(Z, U))
U17_GGA(X, Y, Z, P, plus_out_gga(P, Y, U)) → P_IN_AG(Z, U)
U9_GGA(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_GGA(X, Y, Z, p_in_ag(Z, U))
U9_GGA(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → P_IN_AG(Z, U)
U4_GGA(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_GGA(X, Y, Z, times_in_gga(U, Y, Z))
U4_GGA(X, Y, Z, T, convert_out_gga(T, Y, U)) → TIMES_IN_GGA(U, Y, Z)

The TRS R consists of the following rules:

convert_in_gga([], X1, Z) → U1_gga(X1, Z, eq_in_ag(Z, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_gga(X1, Z, eq_out_ag(Z, 0)) → convert_out_gga([], X1, Z)
convert_in_gga(X, Y, Z) → U2_gga(X, Y, Z, head_in_gg(X, 0))
head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
U2_gga(X, Y, Z, head_out_gg(X, 0)) → U3_gga(X, Y, Z, tail_in_ga(X, T))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs), Xs) → tail_out_ga(.(X4, Xs), Xs)
U3_gga(X, Y, Z, tail_out_ga(X, T)) → U4_gga(X, Y, Z, T, convert_in_gga(T, Y, U))
convert_in_gga(X, Y, Z) → U6_gga(X, Y, Z, head_in_ga(X, H))
head_in_ga([], X2) → head_out_ga([], X2)
head_in_ga(.(H, X3), H) → head_out_ga(.(H, X3), H)
U6_gga(X, Y, Z, head_out_ga(X, H)) → U7_gga(X, Y, Z, H, p_in_aa(H, P))
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_aa(0, 0) → p_out_aa(0, 0)
U7_gga(X, Y, Z, H, p_out_aa(H, P)) → U8_gga(X, Y, Z, H, P, tail_in_ga(X, T))
U8_gga(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_gga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
convert_in_aga([], X1, Z) → U1_aga(X1, Z, eq_in_ag(Z, 0))
U1_aga(X1, Z, eq_out_ag(Z, 0)) → convert_out_aga([], X1, Z)
convert_in_aga(X, Y, Z) → U2_aga(X, Y, Z, head_in_ag(X, 0))
head_in_ag([], X2) → head_out_ag([], X2)
head_in_ag(.(H, X3), H) → head_out_ag(.(H, X3), H)
U2_aga(X, Y, Z, head_out_ag(X, 0)) → U3_aga(X, Y, Z, tail_in_aa(X, T))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X4, Xs), Xs) → tail_out_aa(.(X4, Xs), Xs)
U3_aga(X, Y, Z, tail_out_aa(X, T)) → U4_aga(X, Y, Z, T, convert_in_aga(T, Y, U))
convert_in_aga(X, Y, Z) → U6_aga(X, Y, Z, head_in_aa(X, H))
head_in_aa([], X2) → head_out_aa([], X2)
head_in_aa(.(H, X3), H) → head_out_aa(.(H, X3), H)
U6_aga(X, Y, Z, head_out_aa(X, H)) → U7_aga(X, Y, Z, H, p_in_aa(H, P))
U7_aga(X, Y, Z, H, p_out_aa(H, P)) → U8_aga(X, Y, Z, H, P, tail_in_aa(X, T))
U8_aga(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_aga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U9_aga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_aga(X, Y, Z, p_in_ag(Z, U))
p_in_ag(s(X), X) → p_out_ag(s(X), X)
p_in_ag(0, 0) → p_out_ag(0, 0)
U10_aga(X, Y, Z, p_out_ag(Z, U)) → convert_out_aga(X, Y, Z)
U4_aga(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_aga(X, Y, Z, times_in_gga(U, Y, Z))
times_in_gga(0, Y, Z) → U11_gga(Y, Z, eq_in_ag(Z, 0))
U11_gga(Y, Z, eq_out_ag(Z, 0)) → times_out_gga(0, Y, Z)
times_in_gga(X, Y, Z) → U12_gga(X, Y, Z, p_in_ga(X, P))
p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)
U12_gga(X, Y, Z, p_out_ga(X, P)) → U13_gga(X, Y, Z, P, times_in_gga(P, Y, U))
U13_gga(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_gga(X, Y, Z, plus_in_gga(Y, U, Z))
plus_in_gga(0, Y, Z) → U15_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U15_gga(Y, Z, eq_out_ga(Y, Z)) → plus_out_gga(0, Y, Z)
plus_in_gga(X, Y, Z) → U16_gga(X, Y, Z, p_in_ga(X, P))
U16_gga(X, Y, Z, p_out_ga(X, P)) → U17_gga(X, Y, Z, P, plus_in_gga(P, Y, U))
U17_gga(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_gga(X, Y, Z, p_in_ag(Z, U))
U18_gga(X, Y, Z, p_out_ag(Z, U)) → plus_out_gga(X, Y, Z)
U14_gga(X, Y, Z, plus_out_gga(Y, U, Z)) → times_out_gga(X, Y, Z)
U5_aga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_aga(X, Y, Z)
U9_gga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_gga(X, Y, Z, p_in_ag(Z, U))
U10_gga(X, Y, Z, p_out_ag(Z, U)) → convert_out_gga(X, Y, Z)
U4_gga(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_gga(X, Y, Z, times_in_gga(U, Y, Z))
U5_gga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_gga(X, Y, Z)

The argument filtering Pi contains the following mapping:
convert_in_gga(x1, x2, x3)  =  convert_in_gga(x1, x2)
[]  =  []
U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)
eq_in_ag(x1, x2)  =  eq_in_ag(x2)
eq_out_ag(x1, x2)  =  eq_out_ag(x1, x2)
0  =  0
convert_out_gga(x1, x2, x3)  =  convert_out_gga(x1, x2, x3)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
head_in_gg(x1, x2)  =  head_in_gg(x1, x2)
head_out_gg(x1, x2)  =  head_out_gg(x1, x2)
.(x1, x2)  =  .(x1, x2)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)
tail_in_ga(x1, x2)  =  tail_in_ga(x1)
tail_out_ga(x1, x2)  =  tail_out_ga(x1, x2)
U4_gga(x1, x2, x3, x4, x5)  =  U4_gga(x1, x2, x5)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
head_in_ga(x1, x2)  =  head_in_ga(x1)
head_out_ga(x1, x2)  =  head_out_ga(x1)
U7_gga(x1, x2, x3, x4, x5)  =  U7_gga(x1, x2, x5)
p_in_aa(x1, x2)  =  p_in_aa
p_out_aa(x1, x2)  =  p_out_aa
U8_gga(x1, x2, x3, x4, x5, x6)  =  U8_gga(x1, x2, x6)
U9_gga(x1, x2, x3, x4, x5, x6, x7)  =  U9_gga(x1, x2, x7)
convert_in_aga(x1, x2, x3)  =  convert_in_aga(x2)
U1_aga(x1, x2, x3)  =  U1_aga(x1, x3)
convert_out_aga(x1, x2, x3)  =  convert_out_aga(x2, x3)
U2_aga(x1, x2, x3, x4)  =  U2_aga(x2, x4)
head_in_ag(x1, x2)  =  head_in_ag(x2)
head_out_ag(x1, x2)  =  head_out_ag(x2)
U3_aga(x1, x2, x3, x4)  =  U3_aga(x2, x4)
tail_in_aa(x1, x2)  =  tail_in_aa
tail_out_aa(x1, x2)  =  tail_out_aa
U4_aga(x1, x2, x3, x4, x5)  =  U4_aga(x2, x5)
U6_aga(x1, x2, x3, x4)  =  U6_aga(x2, x4)
head_in_aa(x1, x2)  =  head_in_aa
head_out_aa(x1, x2)  =  head_out_aa
U7_aga(x1, x2, x3, x4, x5)  =  U7_aga(x2, x5)
U8_aga(x1, x2, x3, x4, x5, x6)  =  U8_aga(x2, x6)
U9_aga(x1, x2, x3, x4, x5, x6, x7)  =  U9_aga(x2, x7)
U10_aga(x1, x2, x3, x4)  =  U10_aga(x2, x4)
p_in_ag(x1, x2)  =  p_in_ag(x2)
p_out_ag(x1, x2)  =  p_out_ag(x1, x2)
U5_aga(x1, x2, x3, x4)  =  U5_aga(x2, x4)
times_in_gga(x1, x2, x3)  =  times_in_gga(x1, x2)
U11_gga(x1, x2, x3)  =  U11_gga(x1, x3)
times_out_gga(x1, x2, x3)  =  times_out_gga(x1, x2, x3)
U12_gga(x1, x2, x3, x4)  =  U12_gga(x1, x2, x4)
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x1, x2)
U13_gga(x1, x2, x3, x4, x5)  =  U13_gga(x1, x2, x5)
U14_gga(x1, x2, x3, x4)  =  U14_gga(x1, x2, x4)
plus_in_gga(x1, x2, x3)  =  plus_in_gga(x1, x2)
U15_gga(x1, x2, x3)  =  U15_gga(x1, x3)
eq_in_ga(x1, x2)  =  eq_in_ga(x1)
eq_out_ga(x1, x2)  =  eq_out_ga(x1, x2)
plus_out_gga(x1, x2, x3)  =  plus_out_gga(x1, x2, x3)
U16_gga(x1, x2, x3, x4)  =  U16_gga(x1, x2, x4)
U17_gga(x1, x2, x3, x4, x5)  =  U17_gga(x1, x2, x5)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x1, x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x1, x2, x4)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)
CONVERT_IN_GGA(x1, x2, x3)  =  CONVERT_IN_GGA(x1, x2)
U1_GGA(x1, x2, x3)  =  U1_GGA(x1, x3)
EQ_IN_AG(x1, x2)  =  EQ_IN_AG(x2)
U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x2, x4)
HEAD_IN_GG(x1, x2)  =  HEAD_IN_GG(x1, x2)
U3_GGA(x1, x2, x3, x4)  =  U3_GGA(x1, x2, x4)
TAIL_IN_GA(x1, x2)  =  TAIL_IN_GA(x1)
U4_GGA(x1, x2, x3, x4, x5)  =  U4_GGA(x1, x2, x5)
U6_GGA(x1, x2, x3, x4)  =  U6_GGA(x1, x2, x4)
HEAD_IN_GA(x1, x2)  =  HEAD_IN_GA(x1)
U7_GGA(x1, x2, x3, x4, x5)  =  U7_GGA(x1, x2, x5)
P_IN_AA(x1, x2)  =  P_IN_AA
U8_GGA(x1, x2, x3, x4, x5, x6)  =  U8_GGA(x1, x2, x6)
U9_GGA(x1, x2, x3, x4, x5, x6, x7)  =  U9_GGA(x1, x2, x7)
CONVERT_IN_AGA(x1, x2, x3)  =  CONVERT_IN_AGA(x2)
U1_AGA(x1, x2, x3)  =  U1_AGA(x1, x3)
U2_AGA(x1, x2, x3, x4)  =  U2_AGA(x2, x4)
HEAD_IN_AG(x1, x2)  =  HEAD_IN_AG(x2)
U3_AGA(x1, x2, x3, x4)  =  U3_AGA(x2, x4)
TAIL_IN_AA(x1, x2)  =  TAIL_IN_AA
U4_AGA(x1, x2, x3, x4, x5)  =  U4_AGA(x2, x5)
U6_AGA(x1, x2, x3, x4)  =  U6_AGA(x2, x4)
HEAD_IN_AA(x1, x2)  =  HEAD_IN_AA
U7_AGA(x1, x2, x3, x4, x5)  =  U7_AGA(x2, x5)
U8_AGA(x1, x2, x3, x4, x5, x6)  =  U8_AGA(x2, x6)
U9_AGA(x1, x2, x3, x4, x5, x6, x7)  =  U9_AGA(x2, x7)
U10_AGA(x1, x2, x3, x4)  =  U10_AGA(x2, x4)
P_IN_AG(x1, x2)  =  P_IN_AG(x2)
U5_AGA(x1, x2, x3, x4)  =  U5_AGA(x2, x4)
TIMES_IN_GGA(x1, x2, x3)  =  TIMES_IN_GGA(x1, x2)
U11_GGA(x1, x2, x3)  =  U11_GGA(x1, x3)
U12_GGA(x1, x2, x3, x4)  =  U12_GGA(x1, x2, x4)
P_IN_GA(x1, x2)  =  P_IN_GA(x1)
U13_GGA(x1, x2, x3, x4, x5)  =  U13_GGA(x1, x2, x5)
U14_GGA(x1, x2, x3, x4)  =  U14_GGA(x1, x2, x4)
PLUS_IN_GGA(x1, x2, x3)  =  PLUS_IN_GGA(x1, x2)
U15_GGA(x1, x2, x3)  =  U15_GGA(x1, x3)
EQ_IN_GA(x1, x2)  =  EQ_IN_GA(x1)
U16_GGA(x1, x2, x3, x4)  =  U16_GGA(x1, x2, x4)
U17_GGA(x1, x2, x3, x4, x5)  =  U17_GGA(x1, x2, x5)
U18_GGA(x1, x2, x3, x4)  =  U18_GGA(x1, x2, x4)
U10_GGA(x1, x2, x3, x4)  =  U10_GGA(x1, x2, x4)
U5_GGA(x1, x2, x3, x4)  =  U5_GGA(x1, x2, x4)

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

(103) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 4 SCCs with 42 less nodes.

(104) Complex Obligation (AND)

(105) Obligation:

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

PLUS_IN_GGA(X, Y, Z) → U16_GGA(X, Y, Z, p_in_ga(X, P))
U16_GGA(X, Y, Z, p_out_ga(X, P)) → PLUS_IN_GGA(P, Y, U)

The TRS R consists of the following rules:

convert_in_gga([], X1, Z) → U1_gga(X1, Z, eq_in_ag(Z, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_gga(X1, Z, eq_out_ag(Z, 0)) → convert_out_gga([], X1, Z)
convert_in_gga(X, Y, Z) → U2_gga(X, Y, Z, head_in_gg(X, 0))
head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
U2_gga(X, Y, Z, head_out_gg(X, 0)) → U3_gga(X, Y, Z, tail_in_ga(X, T))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs), Xs) → tail_out_ga(.(X4, Xs), Xs)
U3_gga(X, Y, Z, tail_out_ga(X, T)) → U4_gga(X, Y, Z, T, convert_in_gga(T, Y, U))
convert_in_gga(X, Y, Z) → U6_gga(X, Y, Z, head_in_ga(X, H))
head_in_ga([], X2) → head_out_ga([], X2)
head_in_ga(.(H, X3), H) → head_out_ga(.(H, X3), H)
U6_gga(X, Y, Z, head_out_ga(X, H)) → U7_gga(X, Y, Z, H, p_in_aa(H, P))
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_aa(0, 0) → p_out_aa(0, 0)
U7_gga(X, Y, Z, H, p_out_aa(H, P)) → U8_gga(X, Y, Z, H, P, tail_in_ga(X, T))
U8_gga(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_gga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
convert_in_aga([], X1, Z) → U1_aga(X1, Z, eq_in_ag(Z, 0))
U1_aga(X1, Z, eq_out_ag(Z, 0)) → convert_out_aga([], X1, Z)
convert_in_aga(X, Y, Z) → U2_aga(X, Y, Z, head_in_ag(X, 0))
head_in_ag([], X2) → head_out_ag([], X2)
head_in_ag(.(H, X3), H) → head_out_ag(.(H, X3), H)
U2_aga(X, Y, Z, head_out_ag(X, 0)) → U3_aga(X, Y, Z, tail_in_aa(X, T))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X4, Xs), Xs) → tail_out_aa(.(X4, Xs), Xs)
U3_aga(X, Y, Z, tail_out_aa(X, T)) → U4_aga(X, Y, Z, T, convert_in_aga(T, Y, U))
convert_in_aga(X, Y, Z) → U6_aga(X, Y, Z, head_in_aa(X, H))
head_in_aa([], X2) → head_out_aa([], X2)
head_in_aa(.(H, X3), H) → head_out_aa(.(H, X3), H)
U6_aga(X, Y, Z, head_out_aa(X, H)) → U7_aga(X, Y, Z, H, p_in_aa(H, P))
U7_aga(X, Y, Z, H, p_out_aa(H, P)) → U8_aga(X, Y, Z, H, P, tail_in_aa(X, T))
U8_aga(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_aga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U9_aga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_aga(X, Y, Z, p_in_ag(Z, U))
p_in_ag(s(X), X) → p_out_ag(s(X), X)
p_in_ag(0, 0) → p_out_ag(0, 0)
U10_aga(X, Y, Z, p_out_ag(Z, U)) → convert_out_aga(X, Y, Z)
U4_aga(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_aga(X, Y, Z, times_in_gga(U, Y, Z))
times_in_gga(0, Y, Z) → U11_gga(Y, Z, eq_in_ag(Z, 0))
U11_gga(Y, Z, eq_out_ag(Z, 0)) → times_out_gga(0, Y, Z)
times_in_gga(X, Y, Z) → U12_gga(X, Y, Z, p_in_ga(X, P))
p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)
U12_gga(X, Y, Z, p_out_ga(X, P)) → U13_gga(X, Y, Z, P, times_in_gga(P, Y, U))
U13_gga(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_gga(X, Y, Z, plus_in_gga(Y, U, Z))
plus_in_gga(0, Y, Z) → U15_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U15_gga(Y, Z, eq_out_ga(Y, Z)) → plus_out_gga(0, Y, Z)
plus_in_gga(X, Y, Z) → U16_gga(X, Y, Z, p_in_ga(X, P))
U16_gga(X, Y, Z, p_out_ga(X, P)) → U17_gga(X, Y, Z, P, plus_in_gga(P, Y, U))
U17_gga(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_gga(X, Y, Z, p_in_ag(Z, U))
U18_gga(X, Y, Z, p_out_ag(Z, U)) → plus_out_gga(X, Y, Z)
U14_gga(X, Y, Z, plus_out_gga(Y, U, Z)) → times_out_gga(X, Y, Z)
U5_aga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_aga(X, Y, Z)
U9_gga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_gga(X, Y, Z, p_in_ag(Z, U))
U10_gga(X, Y, Z, p_out_ag(Z, U)) → convert_out_gga(X, Y, Z)
U4_gga(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_gga(X, Y, Z, times_in_gga(U, Y, Z))
U5_gga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_gga(X, Y, Z)

The argument filtering Pi contains the following mapping:
convert_in_gga(x1, x2, x3)  =  convert_in_gga(x1, x2)
[]  =  []
U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)
eq_in_ag(x1, x2)  =  eq_in_ag(x2)
eq_out_ag(x1, x2)  =  eq_out_ag(x1, x2)
0  =  0
convert_out_gga(x1, x2, x3)  =  convert_out_gga(x1, x2, x3)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
head_in_gg(x1, x2)  =  head_in_gg(x1, x2)
head_out_gg(x1, x2)  =  head_out_gg(x1, x2)
.(x1, x2)  =  .(x1, x2)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)
tail_in_ga(x1, x2)  =  tail_in_ga(x1)
tail_out_ga(x1, x2)  =  tail_out_ga(x1, x2)
U4_gga(x1, x2, x3, x4, x5)  =  U4_gga(x1, x2, x5)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
head_in_ga(x1, x2)  =  head_in_ga(x1)
head_out_ga(x1, x2)  =  head_out_ga(x1)
U7_gga(x1, x2, x3, x4, x5)  =  U7_gga(x1, x2, x5)
p_in_aa(x1, x2)  =  p_in_aa
p_out_aa(x1, x2)  =  p_out_aa
U8_gga(x1, x2, x3, x4, x5, x6)  =  U8_gga(x1, x2, x6)
U9_gga(x1, x2, x3, x4, x5, x6, x7)  =  U9_gga(x1, x2, x7)
convert_in_aga(x1, x2, x3)  =  convert_in_aga(x2)
U1_aga(x1, x2, x3)  =  U1_aga(x1, x3)
convert_out_aga(x1, x2, x3)  =  convert_out_aga(x2, x3)
U2_aga(x1, x2, x3, x4)  =  U2_aga(x2, x4)
head_in_ag(x1, x2)  =  head_in_ag(x2)
head_out_ag(x1, x2)  =  head_out_ag(x2)
U3_aga(x1, x2, x3, x4)  =  U3_aga(x2, x4)
tail_in_aa(x1, x2)  =  tail_in_aa
tail_out_aa(x1, x2)  =  tail_out_aa
U4_aga(x1, x2, x3, x4, x5)  =  U4_aga(x2, x5)
U6_aga(x1, x2, x3, x4)  =  U6_aga(x2, x4)
head_in_aa(x1, x2)  =  head_in_aa
head_out_aa(x1, x2)  =  head_out_aa
U7_aga(x1, x2, x3, x4, x5)  =  U7_aga(x2, x5)
U8_aga(x1, x2, x3, x4, x5, x6)  =  U8_aga(x2, x6)
U9_aga(x1, x2, x3, x4, x5, x6, x7)  =  U9_aga(x2, x7)
U10_aga(x1, x2, x3, x4)  =  U10_aga(x2, x4)
p_in_ag(x1, x2)  =  p_in_ag(x2)
p_out_ag(x1, x2)  =  p_out_ag(x1, x2)
U5_aga(x1, x2, x3, x4)  =  U5_aga(x2, x4)
times_in_gga(x1, x2, x3)  =  times_in_gga(x1, x2)
U11_gga(x1, x2, x3)  =  U11_gga(x1, x3)
times_out_gga(x1, x2, x3)  =  times_out_gga(x1, x2, x3)
U12_gga(x1, x2, x3, x4)  =  U12_gga(x1, x2, x4)
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x1, x2)
U13_gga(x1, x2, x3, x4, x5)  =  U13_gga(x1, x2, x5)
U14_gga(x1, x2, x3, x4)  =  U14_gga(x1, x2, x4)
plus_in_gga(x1, x2, x3)  =  plus_in_gga(x1, x2)
U15_gga(x1, x2, x3)  =  U15_gga(x1, x3)
eq_in_ga(x1, x2)  =  eq_in_ga(x1)
eq_out_ga(x1, x2)  =  eq_out_ga(x1, x2)
plus_out_gga(x1, x2, x3)  =  plus_out_gga(x1, x2, x3)
U16_gga(x1, x2, x3, x4)  =  U16_gga(x1, x2, x4)
U17_gga(x1, x2, x3, x4, x5)  =  U17_gga(x1, x2, x5)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x1, x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x1, x2, x4)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)
PLUS_IN_GGA(x1, x2, x3)  =  PLUS_IN_GGA(x1, x2)
U16_GGA(x1, x2, x3, x4)  =  U16_GGA(x1, x2, x4)

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

(106) UsableRulesProof (EQUIVALENT transformation)

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

(107) Obligation:

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

PLUS_IN_GGA(X, Y, Z) → U16_GGA(X, Y, Z, p_in_ga(X, P))
U16_GGA(X, Y, Z, p_out_ga(X, P)) → PLUS_IN_GGA(P, Y, U)

The TRS R consists of the following rules:

p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)

The argument filtering Pi contains the following mapping:
0  =  0
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x1, x2)
PLUS_IN_GGA(x1, x2, x3)  =  PLUS_IN_GGA(x1, x2)
U16_GGA(x1, x2, x3, x4)  =  U16_GGA(x1, x2, x4)

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

(108) PiDPToQDPProof (SOUND transformation)

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

(109) Obligation:

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

PLUS_IN_GGA(X, Y) → U16_GGA(X, Y, p_in_ga(X))
U16_GGA(X, Y, p_out_ga(X, P)) → PLUS_IN_GGA(P, Y)

The TRS R consists of the following rules:

p_in_ga(s(X)) → p_out_ga(s(X), X)
p_in_ga(0) → p_out_ga(0, 0)

The set Q consists of the following terms:

p_in_ga(x0)

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

(110) Narrowing (SOUND transformation)

By narrowing [LPAR04] the rule PLUS_IN_GGA(X, Y) → U16_GGA(X, Y, p_in_ga(X)) at position [2] we obtained the following new rules [LPAR04]:

PLUS_IN_GGA(s(x0), y1) → U16_GGA(s(x0), y1, p_out_ga(s(x0), x0))
PLUS_IN_GGA(0, y1) → U16_GGA(0, y1, p_out_ga(0, 0))

(111) Obligation:

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

U16_GGA(X, Y, p_out_ga(X, P)) → PLUS_IN_GGA(P, Y)
PLUS_IN_GGA(s(x0), y1) → U16_GGA(s(x0), y1, p_out_ga(s(x0), x0))
PLUS_IN_GGA(0, y1) → U16_GGA(0, y1, p_out_ga(0, 0))

The TRS R consists of the following rules:

p_in_ga(s(X)) → p_out_ga(s(X), X)
p_in_ga(0) → p_out_ga(0, 0)

The set Q consists of the following terms:

p_in_ga(x0)

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

(112) UsableRulesProof (EQUIVALENT transformation)

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

(113) Obligation:

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

U16_GGA(X, Y, p_out_ga(X, P)) → PLUS_IN_GGA(P, Y)
PLUS_IN_GGA(s(x0), y1) → U16_GGA(s(x0), y1, p_out_ga(s(x0), x0))
PLUS_IN_GGA(0, y1) → U16_GGA(0, y1, p_out_ga(0, 0))

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

p_in_ga(x0)

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

(114) QReductionProof (EQUIVALENT transformation)

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

p_in_ga(x0)

(115) Obligation:

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

U16_GGA(X, Y, p_out_ga(X, P)) → PLUS_IN_GGA(P, Y)
PLUS_IN_GGA(s(x0), y1) → U16_GGA(s(x0), y1, p_out_ga(s(x0), x0))
PLUS_IN_GGA(0, y1) → U16_GGA(0, y1, p_out_ga(0, 0))

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

(116) Instantiation (EQUIVALENT transformation)

By instantiating [LPAR04] the rule U16_GGA(X, Y, p_out_ga(X, P)) → PLUS_IN_GGA(P, Y) we obtained the following new rules [LPAR04]:

U16_GGA(s(z0), z1, p_out_ga(s(z0), z0)) → PLUS_IN_GGA(z0, z1)
U16_GGA(0, z0, p_out_ga(0, 0)) → PLUS_IN_GGA(0, z0)

(117) Obligation:

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

PLUS_IN_GGA(s(x0), y1) → U16_GGA(s(x0), y1, p_out_ga(s(x0), x0))
PLUS_IN_GGA(0, y1) → U16_GGA(0, y1, p_out_ga(0, 0))
U16_GGA(s(z0), z1, p_out_ga(s(z0), z0)) → PLUS_IN_GGA(z0, z1)
U16_GGA(0, z0, p_out_ga(0, 0)) → PLUS_IN_GGA(0, z0)

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

(118) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs.

(119) Complex Obligation (AND)

(120) Obligation:

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

U16_GGA(0, z0, p_out_ga(0, 0)) → PLUS_IN_GGA(0, z0)
PLUS_IN_GGA(0, y1) → U16_GGA(0, y1, p_out_ga(0, 0))

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

(121) NonTerminationProof (EQUIVALENT transformation)

We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = PLUS_IN_GGA(0, y1) evaluates to t =PLUS_IN_GGA(0, y1)

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




Rewriting sequence

PLUS_IN_GGA(0, y1)U16_GGA(0, y1, p_out_ga(0, 0))
with rule PLUS_IN_GGA(0, y1') → U16_GGA(0, y1', p_out_ga(0, 0)) at position [] and matcher [y1' / y1]

U16_GGA(0, y1, p_out_ga(0, 0))PLUS_IN_GGA(0, y1)
with rule U16_GGA(0, z0, p_out_ga(0, 0)) → PLUS_IN_GGA(0, z0)

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.



(122) FALSE

(123) Obligation:

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

U16_GGA(s(z0), z1, p_out_ga(s(z0), z0)) → PLUS_IN_GGA(z0, z1)
PLUS_IN_GGA(s(x0), y1) → U16_GGA(s(x0), y1, p_out_ga(s(x0), x0))

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

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

  • PLUS_IN_GGA(s(x0), y1) → U16_GGA(s(x0), y1, p_out_ga(s(x0), x0))
    The graph contains the following edges 1 >= 1, 2 >= 2

  • U16_GGA(s(z0), z1, p_out_ga(s(z0), z0)) → PLUS_IN_GGA(z0, z1)
    The graph contains the following edges 1 > 1, 3 > 1, 2 >= 2

(125) TRUE

(126) Obligation:

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

TIMES_IN_GGA(X, Y, Z) → U12_GGA(X, Y, Z, p_in_ga(X, P))
U12_GGA(X, Y, Z, p_out_ga(X, P)) → TIMES_IN_GGA(P, Y, U)

The TRS R consists of the following rules:

convert_in_gga([], X1, Z) → U1_gga(X1, Z, eq_in_ag(Z, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_gga(X1, Z, eq_out_ag(Z, 0)) → convert_out_gga([], X1, Z)
convert_in_gga(X, Y, Z) → U2_gga(X, Y, Z, head_in_gg(X, 0))
head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
U2_gga(X, Y, Z, head_out_gg(X, 0)) → U3_gga(X, Y, Z, tail_in_ga(X, T))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs), Xs) → tail_out_ga(.(X4, Xs), Xs)
U3_gga(X, Y, Z, tail_out_ga(X, T)) → U4_gga(X, Y, Z, T, convert_in_gga(T, Y, U))
convert_in_gga(X, Y, Z) → U6_gga(X, Y, Z, head_in_ga(X, H))
head_in_ga([], X2) → head_out_ga([], X2)
head_in_ga(.(H, X3), H) → head_out_ga(.(H, X3), H)
U6_gga(X, Y, Z, head_out_ga(X, H)) → U7_gga(X, Y, Z, H, p_in_aa(H, P))
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_aa(0, 0) → p_out_aa(0, 0)
U7_gga(X, Y, Z, H, p_out_aa(H, P)) → U8_gga(X, Y, Z, H, P, tail_in_ga(X, T))
U8_gga(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_gga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
convert_in_aga([], X1, Z) → U1_aga(X1, Z, eq_in_ag(Z, 0))
U1_aga(X1, Z, eq_out_ag(Z, 0)) → convert_out_aga([], X1, Z)
convert_in_aga(X, Y, Z) → U2_aga(X, Y, Z, head_in_ag(X, 0))
head_in_ag([], X2) → head_out_ag([], X2)
head_in_ag(.(H, X3), H) → head_out_ag(.(H, X3), H)
U2_aga(X, Y, Z, head_out_ag(X, 0)) → U3_aga(X, Y, Z, tail_in_aa(X, T))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X4, Xs), Xs) → tail_out_aa(.(X4, Xs), Xs)
U3_aga(X, Y, Z, tail_out_aa(X, T)) → U4_aga(X, Y, Z, T, convert_in_aga(T, Y, U))
convert_in_aga(X, Y, Z) → U6_aga(X, Y, Z, head_in_aa(X, H))
head_in_aa([], X2) → head_out_aa([], X2)
head_in_aa(.(H, X3), H) → head_out_aa(.(H, X3), H)
U6_aga(X, Y, Z, head_out_aa(X, H)) → U7_aga(X, Y, Z, H, p_in_aa(H, P))
U7_aga(X, Y, Z, H, p_out_aa(H, P)) → U8_aga(X, Y, Z, H, P, tail_in_aa(X, T))
U8_aga(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_aga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U9_aga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_aga(X, Y, Z, p_in_ag(Z, U))
p_in_ag(s(X), X) → p_out_ag(s(X), X)
p_in_ag(0, 0) → p_out_ag(0, 0)
U10_aga(X, Y, Z, p_out_ag(Z, U)) → convert_out_aga(X, Y, Z)
U4_aga(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_aga(X, Y, Z, times_in_gga(U, Y, Z))
times_in_gga(0, Y, Z) → U11_gga(Y, Z, eq_in_ag(Z, 0))
U11_gga(Y, Z, eq_out_ag(Z, 0)) → times_out_gga(0, Y, Z)
times_in_gga(X, Y, Z) → U12_gga(X, Y, Z, p_in_ga(X, P))
p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)
U12_gga(X, Y, Z, p_out_ga(X, P)) → U13_gga(X, Y, Z, P, times_in_gga(P, Y, U))
U13_gga(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_gga(X, Y, Z, plus_in_gga(Y, U, Z))
plus_in_gga(0, Y, Z) → U15_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U15_gga(Y, Z, eq_out_ga(Y, Z)) → plus_out_gga(0, Y, Z)
plus_in_gga(X, Y, Z) → U16_gga(X, Y, Z, p_in_ga(X, P))
U16_gga(X, Y, Z, p_out_ga(X, P)) → U17_gga(X, Y, Z, P, plus_in_gga(P, Y, U))
U17_gga(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_gga(X, Y, Z, p_in_ag(Z, U))
U18_gga(X, Y, Z, p_out_ag(Z, U)) → plus_out_gga(X, Y, Z)
U14_gga(X, Y, Z, plus_out_gga(Y, U, Z)) → times_out_gga(X, Y, Z)
U5_aga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_aga(X, Y, Z)
U9_gga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_gga(X, Y, Z, p_in_ag(Z, U))
U10_gga(X, Y, Z, p_out_ag(Z, U)) → convert_out_gga(X, Y, Z)
U4_gga(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_gga(X, Y, Z, times_in_gga(U, Y, Z))
U5_gga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_gga(X, Y, Z)

The argument filtering Pi contains the following mapping:
convert_in_gga(x1, x2, x3)  =  convert_in_gga(x1, x2)
[]  =  []
U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)
eq_in_ag(x1, x2)  =  eq_in_ag(x2)
eq_out_ag(x1, x2)  =  eq_out_ag(x1, x2)
0  =  0
convert_out_gga(x1, x2, x3)  =  convert_out_gga(x1, x2, x3)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
head_in_gg(x1, x2)  =  head_in_gg(x1, x2)
head_out_gg(x1, x2)  =  head_out_gg(x1, x2)
.(x1, x2)  =  .(x1, x2)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)
tail_in_ga(x1, x2)  =  tail_in_ga(x1)
tail_out_ga(x1, x2)  =  tail_out_ga(x1, x2)
U4_gga(x1, x2, x3, x4, x5)  =  U4_gga(x1, x2, x5)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
head_in_ga(x1, x2)  =  head_in_ga(x1)
head_out_ga(x1, x2)  =  head_out_ga(x1)
U7_gga(x1, x2, x3, x4, x5)  =  U7_gga(x1, x2, x5)
p_in_aa(x1, x2)  =  p_in_aa
p_out_aa(x1, x2)  =  p_out_aa
U8_gga(x1, x2, x3, x4, x5, x6)  =  U8_gga(x1, x2, x6)
U9_gga(x1, x2, x3, x4, x5, x6, x7)  =  U9_gga(x1, x2, x7)
convert_in_aga(x1, x2, x3)  =  convert_in_aga(x2)
U1_aga(x1, x2, x3)  =  U1_aga(x1, x3)
convert_out_aga(x1, x2, x3)  =  convert_out_aga(x2, x3)
U2_aga(x1, x2, x3, x4)  =  U2_aga(x2, x4)
head_in_ag(x1, x2)  =  head_in_ag(x2)
head_out_ag(x1, x2)  =  head_out_ag(x2)
U3_aga(x1, x2, x3, x4)  =  U3_aga(x2, x4)
tail_in_aa(x1, x2)  =  tail_in_aa
tail_out_aa(x1, x2)  =  tail_out_aa
U4_aga(x1, x2, x3, x4, x5)  =  U4_aga(x2, x5)
U6_aga(x1, x2, x3, x4)  =  U6_aga(x2, x4)
head_in_aa(x1, x2)  =  head_in_aa
head_out_aa(x1, x2)  =  head_out_aa
U7_aga(x1, x2, x3, x4, x5)  =  U7_aga(x2, x5)
U8_aga(x1, x2, x3, x4, x5, x6)  =  U8_aga(x2, x6)
U9_aga(x1, x2, x3, x4, x5, x6, x7)  =  U9_aga(x2, x7)
U10_aga(x1, x2, x3, x4)  =  U10_aga(x2, x4)
p_in_ag(x1, x2)  =  p_in_ag(x2)
p_out_ag(x1, x2)  =  p_out_ag(x1, x2)
U5_aga(x1, x2, x3, x4)  =  U5_aga(x2, x4)
times_in_gga(x1, x2, x3)  =  times_in_gga(x1, x2)
U11_gga(x1, x2, x3)  =  U11_gga(x1, x3)
times_out_gga(x1, x2, x3)  =  times_out_gga(x1, x2, x3)
U12_gga(x1, x2, x3, x4)  =  U12_gga(x1, x2, x4)
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x1, x2)
U13_gga(x1, x2, x3, x4, x5)  =  U13_gga(x1, x2, x5)
U14_gga(x1, x2, x3, x4)  =  U14_gga(x1, x2, x4)
plus_in_gga(x1, x2, x3)  =  plus_in_gga(x1, x2)
U15_gga(x1, x2, x3)  =  U15_gga(x1, x3)
eq_in_ga(x1, x2)  =  eq_in_ga(x1)
eq_out_ga(x1, x2)  =  eq_out_ga(x1, x2)
plus_out_gga(x1, x2, x3)  =  plus_out_gga(x1, x2, x3)
U16_gga(x1, x2, x3, x4)  =  U16_gga(x1, x2, x4)
U17_gga(x1, x2, x3, x4, x5)  =  U17_gga(x1, x2, x5)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x1, x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x1, x2, x4)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)
TIMES_IN_GGA(x1, x2, x3)  =  TIMES_IN_GGA(x1, x2)
U12_GGA(x1, x2, x3, x4)  =  U12_GGA(x1, x2, x4)

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

(127) UsableRulesProof (EQUIVALENT transformation)

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

(128) Obligation:

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

TIMES_IN_GGA(X, Y, Z) → U12_GGA(X, Y, Z, p_in_ga(X, P))
U12_GGA(X, Y, Z, p_out_ga(X, P)) → TIMES_IN_GGA(P, Y, U)

The TRS R consists of the following rules:

p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)

The argument filtering Pi contains the following mapping:
0  =  0
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x1, x2)
TIMES_IN_GGA(x1, x2, x3)  =  TIMES_IN_GGA(x1, x2)
U12_GGA(x1, x2, x3, x4)  =  U12_GGA(x1, x2, x4)

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

(129) PiDPToQDPProof (SOUND transformation)

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

(130) Obligation:

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

TIMES_IN_GGA(X, Y) → U12_GGA(X, Y, p_in_ga(X))
U12_GGA(X, Y, p_out_ga(X, P)) → TIMES_IN_GGA(P, Y)

The TRS R consists of the following rules:

p_in_ga(s(X)) → p_out_ga(s(X), X)
p_in_ga(0) → p_out_ga(0, 0)

The set Q consists of the following terms:

p_in_ga(x0)

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

(131) Narrowing (SOUND transformation)

By narrowing [LPAR04] the rule TIMES_IN_GGA(X, Y) → U12_GGA(X, Y, p_in_ga(X)) at position [2] we obtained the following new rules [LPAR04]:

TIMES_IN_GGA(s(x0), y1) → U12_GGA(s(x0), y1, p_out_ga(s(x0), x0))
TIMES_IN_GGA(0, y1) → U12_GGA(0, y1, p_out_ga(0, 0))

(132) Obligation:

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

U12_GGA(X, Y, p_out_ga(X, P)) → TIMES_IN_GGA(P, Y)
TIMES_IN_GGA(s(x0), y1) → U12_GGA(s(x0), y1, p_out_ga(s(x0), x0))
TIMES_IN_GGA(0, y1) → U12_GGA(0, y1, p_out_ga(0, 0))

The TRS R consists of the following rules:

p_in_ga(s(X)) → p_out_ga(s(X), X)
p_in_ga(0) → p_out_ga(0, 0)

The set Q consists of the following terms:

p_in_ga(x0)

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

(133) UsableRulesProof (EQUIVALENT transformation)

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

(134) Obligation:

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

U12_GGA(X, Y, p_out_ga(X, P)) → TIMES_IN_GGA(P, Y)
TIMES_IN_GGA(s(x0), y1) → U12_GGA(s(x0), y1, p_out_ga(s(x0), x0))
TIMES_IN_GGA(0, y1) → U12_GGA(0, y1, p_out_ga(0, 0))

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

p_in_ga(x0)

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

(135) QReductionProof (EQUIVALENT transformation)

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

p_in_ga(x0)

(136) Obligation:

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

U12_GGA(X, Y, p_out_ga(X, P)) → TIMES_IN_GGA(P, Y)
TIMES_IN_GGA(s(x0), y1) → U12_GGA(s(x0), y1, p_out_ga(s(x0), x0))
TIMES_IN_GGA(0, y1) → U12_GGA(0, y1, p_out_ga(0, 0))

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

(137) Instantiation (EQUIVALENT transformation)

By instantiating [LPAR04] the rule U12_GGA(X, Y, p_out_ga(X, P)) → TIMES_IN_GGA(P, Y) we obtained the following new rules [LPAR04]:

U12_GGA(s(z0), z1, p_out_ga(s(z0), z0)) → TIMES_IN_GGA(z0, z1)
U12_GGA(0, z0, p_out_ga(0, 0)) → TIMES_IN_GGA(0, z0)

(138) Obligation:

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

TIMES_IN_GGA(s(x0), y1) → U12_GGA(s(x0), y1, p_out_ga(s(x0), x0))
TIMES_IN_GGA(0, y1) → U12_GGA(0, y1, p_out_ga(0, 0))
U12_GGA(s(z0), z1, p_out_ga(s(z0), z0)) → TIMES_IN_GGA(z0, z1)
U12_GGA(0, z0, p_out_ga(0, 0)) → TIMES_IN_GGA(0, z0)

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

(139) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs.

(140) Complex Obligation (AND)

(141) Obligation:

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

U12_GGA(0, z0, p_out_ga(0, 0)) → TIMES_IN_GGA(0, z0)
TIMES_IN_GGA(0, y1) → U12_GGA(0, y1, p_out_ga(0, 0))

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

(142) NonTerminationProof (EQUIVALENT transformation)

We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = TIMES_IN_GGA(0, y1) evaluates to t =TIMES_IN_GGA(0, y1)

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




Rewriting sequence

TIMES_IN_GGA(0, y1)U12_GGA(0, y1, p_out_ga(0, 0))
with rule TIMES_IN_GGA(0, y1') → U12_GGA(0, y1', p_out_ga(0, 0)) at position [] and matcher [y1' / y1]

U12_GGA(0, y1, p_out_ga(0, 0))TIMES_IN_GGA(0, y1)
with rule U12_GGA(0, z0, p_out_ga(0, 0)) → TIMES_IN_GGA(0, z0)

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.



(143) FALSE

(144) Obligation:

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

U12_GGA(s(z0), z1, p_out_ga(s(z0), z0)) → TIMES_IN_GGA(z0, z1)
TIMES_IN_GGA(s(x0), y1) → U12_GGA(s(x0), y1, p_out_ga(s(x0), x0))

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

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

  • TIMES_IN_GGA(s(x0), y1) → U12_GGA(s(x0), y1, p_out_ga(s(x0), x0))
    The graph contains the following edges 1 >= 1, 2 >= 2

  • U12_GGA(s(z0), z1, p_out_ga(s(z0), z0)) → TIMES_IN_GGA(z0, z1)
    The graph contains the following edges 1 > 1, 3 > 1, 2 >= 2

(146) TRUE

(147) Obligation:

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

CONVERT_IN_AGA(X, Y, Z) → U2_AGA(X, Y, Z, head_in_ag(X, 0))
U2_AGA(X, Y, Z, head_out_ag(X, 0)) → U3_AGA(X, Y, Z, tail_in_aa(X, T))
U3_AGA(X, Y, Z, tail_out_aa(X, T)) → CONVERT_IN_AGA(T, Y, U)
CONVERT_IN_AGA(X, Y, Z) → U6_AGA(X, Y, Z, head_in_aa(X, H))
U6_AGA(X, Y, Z, head_out_aa(X, H)) → U7_AGA(X, Y, Z, H, p_in_aa(H, P))
U7_AGA(X, Y, Z, H, p_out_aa(H, P)) → U8_AGA(X, Y, Z, H, P, tail_in_aa(X, T))
U8_AGA(X, Y, Z, H, P, tail_out_aa(X, T)) → CONVERT_IN_AGA(.(P, T), Y, U)

The TRS R consists of the following rules:

convert_in_gga([], X1, Z) → U1_gga(X1, Z, eq_in_ag(Z, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_gga(X1, Z, eq_out_ag(Z, 0)) → convert_out_gga([], X1, Z)
convert_in_gga(X, Y, Z) → U2_gga(X, Y, Z, head_in_gg(X, 0))
head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
U2_gga(X, Y, Z, head_out_gg(X, 0)) → U3_gga(X, Y, Z, tail_in_ga(X, T))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs), Xs) → tail_out_ga(.(X4, Xs), Xs)
U3_gga(X, Y, Z, tail_out_ga(X, T)) → U4_gga(X, Y, Z, T, convert_in_gga(T, Y, U))
convert_in_gga(X, Y, Z) → U6_gga(X, Y, Z, head_in_ga(X, H))
head_in_ga([], X2) → head_out_ga([], X2)
head_in_ga(.(H, X3), H) → head_out_ga(.(H, X3), H)
U6_gga(X, Y, Z, head_out_ga(X, H)) → U7_gga(X, Y, Z, H, p_in_aa(H, P))
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_aa(0, 0) → p_out_aa(0, 0)
U7_gga(X, Y, Z, H, p_out_aa(H, P)) → U8_gga(X, Y, Z, H, P, tail_in_ga(X, T))
U8_gga(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_gga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
convert_in_aga([], X1, Z) → U1_aga(X1, Z, eq_in_ag(Z, 0))
U1_aga(X1, Z, eq_out_ag(Z, 0)) → convert_out_aga([], X1, Z)
convert_in_aga(X, Y, Z) → U2_aga(X, Y, Z, head_in_ag(X, 0))
head_in_ag([], X2) → head_out_ag([], X2)
head_in_ag(.(H, X3), H) → head_out_ag(.(H, X3), H)
U2_aga(X, Y, Z, head_out_ag(X, 0)) → U3_aga(X, Y, Z, tail_in_aa(X, T))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X4, Xs), Xs) → tail_out_aa(.(X4, Xs), Xs)
U3_aga(X, Y, Z, tail_out_aa(X, T)) → U4_aga(X, Y, Z, T, convert_in_aga(T, Y, U))
convert_in_aga(X, Y, Z) → U6_aga(X, Y, Z, head_in_aa(X, H))
head_in_aa([], X2) → head_out_aa([], X2)
head_in_aa(.(H, X3), H) → head_out_aa(.(H, X3), H)
U6_aga(X, Y, Z, head_out_aa(X, H)) → U7_aga(X, Y, Z, H, p_in_aa(H, P))
U7_aga(X, Y, Z, H, p_out_aa(H, P)) → U8_aga(X, Y, Z, H, P, tail_in_aa(X, T))
U8_aga(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_aga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U9_aga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_aga(X, Y, Z, p_in_ag(Z, U))
p_in_ag(s(X), X) → p_out_ag(s(X), X)
p_in_ag(0, 0) → p_out_ag(0, 0)
U10_aga(X, Y, Z, p_out_ag(Z, U)) → convert_out_aga(X, Y, Z)
U4_aga(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_aga(X, Y, Z, times_in_gga(U, Y, Z))
times_in_gga(0, Y, Z) → U11_gga(Y, Z, eq_in_ag(Z, 0))
U11_gga(Y, Z, eq_out_ag(Z, 0)) → times_out_gga(0, Y, Z)
times_in_gga(X, Y, Z) → U12_gga(X, Y, Z, p_in_ga(X, P))
p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)
U12_gga(X, Y, Z, p_out_ga(X, P)) → U13_gga(X, Y, Z, P, times_in_gga(P, Y, U))
U13_gga(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_gga(X, Y, Z, plus_in_gga(Y, U, Z))
plus_in_gga(0, Y, Z) → U15_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U15_gga(Y, Z, eq_out_ga(Y, Z)) → plus_out_gga(0, Y, Z)
plus_in_gga(X, Y, Z) → U16_gga(X, Y, Z, p_in_ga(X, P))
U16_gga(X, Y, Z, p_out_ga(X, P)) → U17_gga(X, Y, Z, P, plus_in_gga(P, Y, U))
U17_gga(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_gga(X, Y, Z, p_in_ag(Z, U))
U18_gga(X, Y, Z, p_out_ag(Z, U)) → plus_out_gga(X, Y, Z)
U14_gga(X, Y, Z, plus_out_gga(Y, U, Z)) → times_out_gga(X, Y, Z)
U5_aga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_aga(X, Y, Z)
U9_gga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_gga(X, Y, Z, p_in_ag(Z, U))
U10_gga(X, Y, Z, p_out_ag(Z, U)) → convert_out_gga(X, Y, Z)
U4_gga(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_gga(X, Y, Z, times_in_gga(U, Y, Z))
U5_gga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_gga(X, Y, Z)

The argument filtering Pi contains the following mapping:
convert_in_gga(x1, x2, x3)  =  convert_in_gga(x1, x2)
[]  =  []
U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)
eq_in_ag(x1, x2)  =  eq_in_ag(x2)
eq_out_ag(x1, x2)  =  eq_out_ag(x1, x2)
0  =  0
convert_out_gga(x1, x2, x3)  =  convert_out_gga(x1, x2, x3)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
head_in_gg(x1, x2)  =  head_in_gg(x1, x2)
head_out_gg(x1, x2)  =  head_out_gg(x1, x2)
.(x1, x2)  =  .(x1, x2)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)
tail_in_ga(x1, x2)  =  tail_in_ga(x1)
tail_out_ga(x1, x2)  =  tail_out_ga(x1, x2)
U4_gga(x1, x2, x3, x4, x5)  =  U4_gga(x1, x2, x5)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
head_in_ga(x1, x2)  =  head_in_ga(x1)
head_out_ga(x1, x2)  =  head_out_ga(x1)
U7_gga(x1, x2, x3, x4, x5)  =  U7_gga(x1, x2, x5)
p_in_aa(x1, x2)  =  p_in_aa
p_out_aa(x1, x2)  =  p_out_aa
U8_gga(x1, x2, x3, x4, x5, x6)  =  U8_gga(x1, x2, x6)
U9_gga(x1, x2, x3, x4, x5, x6, x7)  =  U9_gga(x1, x2, x7)
convert_in_aga(x1, x2, x3)  =  convert_in_aga(x2)
U1_aga(x1, x2, x3)  =  U1_aga(x1, x3)
convert_out_aga(x1, x2, x3)  =  convert_out_aga(x2, x3)
U2_aga(x1, x2, x3, x4)  =  U2_aga(x2, x4)
head_in_ag(x1, x2)  =  head_in_ag(x2)
head_out_ag(x1, x2)  =  head_out_ag(x2)
U3_aga(x1, x2, x3, x4)  =  U3_aga(x2, x4)
tail_in_aa(x1, x2)  =  tail_in_aa
tail_out_aa(x1, x2)  =  tail_out_aa
U4_aga(x1, x2, x3, x4, x5)  =  U4_aga(x2, x5)
U6_aga(x1, x2, x3, x4)  =  U6_aga(x2, x4)
head_in_aa(x1, x2)  =  head_in_aa
head_out_aa(x1, x2)  =  head_out_aa
U7_aga(x1, x2, x3, x4, x5)  =  U7_aga(x2, x5)
U8_aga(x1, x2, x3, x4, x5, x6)  =  U8_aga(x2, x6)
U9_aga(x1, x2, x3, x4, x5, x6, x7)  =  U9_aga(x2, x7)
U10_aga(x1, x2, x3, x4)  =  U10_aga(x2, x4)
p_in_ag(x1, x2)  =  p_in_ag(x2)
p_out_ag(x1, x2)  =  p_out_ag(x1, x2)
U5_aga(x1, x2, x3, x4)  =  U5_aga(x2, x4)
times_in_gga(x1, x2, x3)  =  times_in_gga(x1, x2)
U11_gga(x1, x2, x3)  =  U11_gga(x1, x3)
times_out_gga(x1, x2, x3)  =  times_out_gga(x1, x2, x3)
U12_gga(x1, x2, x3, x4)  =  U12_gga(x1, x2, x4)
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x1, x2)
U13_gga(x1, x2, x3, x4, x5)  =  U13_gga(x1, x2, x5)
U14_gga(x1, x2, x3, x4)  =  U14_gga(x1, x2, x4)
plus_in_gga(x1, x2, x3)  =  plus_in_gga(x1, x2)
U15_gga(x1, x2, x3)  =  U15_gga(x1, x3)
eq_in_ga(x1, x2)  =  eq_in_ga(x1)
eq_out_ga(x1, x2)  =  eq_out_ga(x1, x2)
plus_out_gga(x1, x2, x3)  =  plus_out_gga(x1, x2, x3)
U16_gga(x1, x2, x3, x4)  =  U16_gga(x1, x2, x4)
U17_gga(x1, x2, x3, x4, x5)  =  U17_gga(x1, x2, x5)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x1, x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x1, x2, x4)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)
CONVERT_IN_AGA(x1, x2, x3)  =  CONVERT_IN_AGA(x2)
U2_AGA(x1, x2, x3, x4)  =  U2_AGA(x2, x4)
U3_AGA(x1, x2, x3, x4)  =  U3_AGA(x2, x4)
U6_AGA(x1, x2, x3, x4)  =  U6_AGA(x2, x4)
U7_AGA(x1, x2, x3, x4, x5)  =  U7_AGA(x2, x5)
U8_AGA(x1, x2, x3, x4, x5, x6)  =  U8_AGA(x2, x6)

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

(148) UsableRulesProof (EQUIVALENT transformation)

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

(149) Obligation:

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

CONVERT_IN_AGA(X, Y, Z) → U2_AGA(X, Y, Z, head_in_ag(X, 0))
U2_AGA(X, Y, Z, head_out_ag(X, 0)) → U3_AGA(X, Y, Z, tail_in_aa(X, T))
U3_AGA(X, Y, Z, tail_out_aa(X, T)) → CONVERT_IN_AGA(T, Y, U)
CONVERT_IN_AGA(X, Y, Z) → U6_AGA(X, Y, Z, head_in_aa(X, H))
U6_AGA(X, Y, Z, head_out_aa(X, H)) → U7_AGA(X, Y, Z, H, p_in_aa(H, P))
U7_AGA(X, Y, Z, H, p_out_aa(H, P)) → U8_AGA(X, Y, Z, H, P, tail_in_aa(X, T))
U8_AGA(X, Y, Z, H, P, tail_out_aa(X, T)) → CONVERT_IN_AGA(.(P, T), Y, U)

The TRS R consists of the following rules:

head_in_ag([], X2) → head_out_ag([], X2)
head_in_ag(.(H, X3), H) → head_out_ag(.(H, X3), H)
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X4, Xs), Xs) → tail_out_aa(.(X4, Xs), Xs)
head_in_aa([], X2) → head_out_aa([], X2)
head_in_aa(.(H, X3), H) → head_out_aa(.(H, X3), H)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_aa(0, 0) → p_out_aa(0, 0)

The argument filtering Pi contains the following mapping:
[]  =  []
0  =  0
.(x1, x2)  =  .(x1, x2)
p_in_aa(x1, x2)  =  p_in_aa
p_out_aa(x1, x2)  =  p_out_aa
head_in_ag(x1, x2)  =  head_in_ag(x2)
head_out_ag(x1, x2)  =  head_out_ag(x2)
tail_in_aa(x1, x2)  =  tail_in_aa
tail_out_aa(x1, x2)  =  tail_out_aa
head_in_aa(x1, x2)  =  head_in_aa
head_out_aa(x1, x2)  =  head_out_aa
s(x1)  =  s(x1)
CONVERT_IN_AGA(x1, x2, x3)  =  CONVERT_IN_AGA(x2)
U2_AGA(x1, x2, x3, x4)  =  U2_AGA(x2, x4)
U3_AGA(x1, x2, x3, x4)  =  U3_AGA(x2, x4)
U6_AGA(x1, x2, x3, x4)  =  U6_AGA(x2, x4)
U7_AGA(x1, x2, x3, x4, x5)  =  U7_AGA(x2, x5)
U8_AGA(x1, x2, x3, x4, x5, x6)  =  U8_AGA(x2, x6)

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

(150) PiDPToQDPProof (SOUND transformation)

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

(151) Obligation:

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

CONVERT_IN_AGA(Y) → U2_AGA(Y, head_in_ag(0))
U2_AGA(Y, head_out_ag(0)) → U3_AGA(Y, tail_in_aa)
U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_in_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_in_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)

The TRS R consists of the following rules:

head_in_ag(X2) → head_out_ag(X2)
tail_in_aatail_out_aa
head_in_aahead_out_aa
p_in_aap_out_aa

The set Q consists of the following terms:

head_in_ag(x0)
tail_in_aa
head_in_aa
p_in_aa

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

(152) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule CONVERT_IN_AGA(Y) → U2_AGA(Y, head_in_ag(0)) at position [1] we obtained the following new rules [LPAR04]:

CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag(0))

(153) Obligation:

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

U2_AGA(Y, head_out_ag(0)) → U3_AGA(Y, tail_in_aa)
U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_in_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_in_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag(0))

The TRS R consists of the following rules:

head_in_ag(X2) → head_out_ag(X2)
tail_in_aatail_out_aa
head_in_aahead_out_aa
p_in_aap_out_aa

The set Q consists of the following terms:

head_in_ag(x0)
tail_in_aa
head_in_aa
p_in_aa

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

(154) UsableRulesProof (EQUIVALENT transformation)

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

(155) Obligation:

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

U2_AGA(Y, head_out_ag(0)) → U3_AGA(Y, tail_in_aa)
U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_in_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_in_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag(0))

The TRS R consists of the following rules:

tail_in_aatail_out_aa
p_in_aap_out_aa
head_in_aahead_out_aa

The set Q consists of the following terms:

head_in_ag(x0)
tail_in_aa
head_in_aa
p_in_aa

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

(156) QReductionProof (EQUIVALENT transformation)

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

head_in_ag(x0)

(157) Obligation:

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

U2_AGA(Y, head_out_ag(0)) → U3_AGA(Y, tail_in_aa)
U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_in_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_in_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag(0))

The TRS R consists of the following rules:

tail_in_aatail_out_aa
p_in_aap_out_aa
head_in_aahead_out_aa

The set Q consists of the following terms:

tail_in_aa
head_in_aa
p_in_aa

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

(158) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule U2_AGA(Y, head_out_ag(0)) → U3_AGA(Y, tail_in_aa) at position [1] we obtained the following new rules [LPAR04]:

U2_AGA(Y, head_out_ag(0)) → U3_AGA(Y, tail_out_aa)

(159) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_in_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_in_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag(0))
U2_AGA(Y, head_out_ag(0)) → U3_AGA(Y, tail_out_aa)

The TRS R consists of the following rules:

tail_in_aatail_out_aa
p_in_aap_out_aa
head_in_aahead_out_aa

The set Q consists of the following terms:

tail_in_aa
head_in_aa
p_in_aa

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

(160) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule CONVERT_IN_AGA(Y) → U6_AGA(Y, head_in_aa) at position [1] we obtained the following new rules [LPAR04]:

CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)

(161) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_in_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag(0))
U2_AGA(Y, head_out_ag(0)) → U3_AGA(Y, tail_out_aa)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)

The TRS R consists of the following rules:

tail_in_aatail_out_aa
p_in_aap_out_aa
head_in_aahead_out_aa

The set Q consists of the following terms:

tail_in_aa
head_in_aa
p_in_aa

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

(162) UsableRulesProof (EQUIVALENT transformation)

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

(163) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_in_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag(0))
U2_AGA(Y, head_out_ag(0)) → U3_AGA(Y, tail_out_aa)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)

The TRS R consists of the following rules:

tail_in_aatail_out_aa
p_in_aap_out_aa

The set Q consists of the following terms:

tail_in_aa
head_in_aa
p_in_aa

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

(164) QReductionProof (EQUIVALENT transformation)

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

head_in_aa

(165) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_in_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag(0))
U2_AGA(Y, head_out_ag(0)) → U3_AGA(Y, tail_out_aa)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)

The TRS R consists of the following rules:

tail_in_aatail_out_aa
p_in_aap_out_aa

The set Q consists of the following terms:

tail_in_aa
p_in_aa

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

(166) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_in_aa) at position [1] we obtained the following new rules [LPAR04]:

U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_out_aa)

(167) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag(0))
U2_AGA(Y, head_out_ag(0)) → U3_AGA(Y, tail_out_aa)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_out_aa)

The TRS R consists of the following rules:

tail_in_aatail_out_aa
p_in_aap_out_aa

The set Q consists of the following terms:

tail_in_aa
p_in_aa

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

(168) UsableRulesProof (EQUIVALENT transformation)

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

(169) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag(0))
U2_AGA(Y, head_out_ag(0)) → U3_AGA(Y, tail_out_aa)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_out_aa)

The TRS R consists of the following rules:

tail_in_aatail_out_aa

The set Q consists of the following terms:

tail_in_aa
p_in_aa

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

(170) QReductionProof (EQUIVALENT transformation)

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

p_in_aa

(171) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag(0))
U2_AGA(Y, head_out_ag(0)) → U3_AGA(Y, tail_out_aa)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_out_aa)

The TRS R consists of the following rules:

tail_in_aatail_out_aa

The set Q consists of the following terms:

tail_in_aa

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

(172) Rewriting (EQUIVALENT transformation)

By rewriting [LPAR04] the rule U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_in_aa) at position [1] we obtained the following new rules [LPAR04]:

U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_out_aa)

(173) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag(0))
U2_AGA(Y, head_out_ag(0)) → U3_AGA(Y, tail_out_aa)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_out_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_out_aa)

The TRS R consists of the following rules:

tail_in_aatail_out_aa

The set Q consists of the following terms:

tail_in_aa

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

(174) UsableRulesProof (EQUIVALENT transformation)

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

(175) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag(0))
U2_AGA(Y, head_out_ag(0)) → U3_AGA(Y, tail_out_aa)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_out_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_out_aa)

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

tail_in_aa

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

(176) QReductionProof (EQUIVALENT transformation)

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

tail_in_aa

(177) Obligation:

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

U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
U8_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)
CONVERT_IN_AGA(Y) → U2_AGA(Y, head_out_ag(0))
U2_AGA(Y, head_out_ag(0)) → U3_AGA(Y, tail_out_aa)
CONVERT_IN_AGA(Y) → U6_AGA(Y, head_out_aa)
U6_AGA(Y, head_out_aa) → U7_AGA(Y, p_out_aa)
U7_AGA(Y, p_out_aa) → U8_AGA(Y, tail_out_aa)

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

(178) NonTerminationProof (EQUIVALENT transformation)

We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = CONVERT_IN_AGA(Y) evaluates to t =CONVERT_IN_AGA(Y)

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




Rewriting sequence

CONVERT_IN_AGA(Y)U2_AGA(Y, head_out_ag(0))
with rule CONVERT_IN_AGA(Y') → U2_AGA(Y', head_out_ag(0)) at position [] and matcher [Y' / Y]

U2_AGA(Y, head_out_ag(0))U3_AGA(Y, tail_out_aa)
with rule U2_AGA(Y', head_out_ag(0)) → U3_AGA(Y', tail_out_aa) at position [] and matcher [Y' / Y]

U3_AGA(Y, tail_out_aa)CONVERT_IN_AGA(Y)
with rule U3_AGA(Y, tail_out_aa) → CONVERT_IN_AGA(Y)

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.



(179) FALSE

(180) Obligation:

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

CONVERT_IN_GGA(X, Y, Z) → U2_GGA(X, Y, Z, head_in_gg(X, 0))
U2_GGA(X, Y, Z, head_out_gg(X, 0)) → U3_GGA(X, Y, Z, tail_in_ga(X, T))
U3_GGA(X, Y, Z, tail_out_ga(X, T)) → CONVERT_IN_GGA(T, Y, U)

The TRS R consists of the following rules:

convert_in_gga([], X1, Z) → U1_gga(X1, Z, eq_in_ag(Z, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U1_gga(X1, Z, eq_out_ag(Z, 0)) → convert_out_gga([], X1, Z)
convert_in_gga(X, Y, Z) → U2_gga(X, Y, Z, head_in_gg(X, 0))
head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
U2_gga(X, Y, Z, head_out_gg(X, 0)) → U3_gga(X, Y, Z, tail_in_ga(X, T))
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs), Xs) → tail_out_ga(.(X4, Xs), Xs)
U3_gga(X, Y, Z, tail_out_ga(X, T)) → U4_gga(X, Y, Z, T, convert_in_gga(T, Y, U))
convert_in_gga(X, Y, Z) → U6_gga(X, Y, Z, head_in_ga(X, H))
head_in_ga([], X2) → head_out_ga([], X2)
head_in_ga(.(H, X3), H) → head_out_ga(.(H, X3), H)
U6_gga(X, Y, Z, head_out_ga(X, H)) → U7_gga(X, Y, Z, H, p_in_aa(H, P))
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_aa(0, 0) → p_out_aa(0, 0)
U7_gga(X, Y, Z, H, p_out_aa(H, P)) → U8_gga(X, Y, Z, H, P, tail_in_ga(X, T))
U8_gga(X, Y, Z, H, P, tail_out_ga(X, T)) → U9_gga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
convert_in_aga([], X1, Z) → U1_aga(X1, Z, eq_in_ag(Z, 0))
U1_aga(X1, Z, eq_out_ag(Z, 0)) → convert_out_aga([], X1, Z)
convert_in_aga(X, Y, Z) → U2_aga(X, Y, Z, head_in_ag(X, 0))
head_in_ag([], X2) → head_out_ag([], X2)
head_in_ag(.(H, X3), H) → head_out_ag(.(H, X3), H)
U2_aga(X, Y, Z, head_out_ag(X, 0)) → U3_aga(X, Y, Z, tail_in_aa(X, T))
tail_in_aa([], []) → tail_out_aa([], [])
tail_in_aa(.(X4, Xs), Xs) → tail_out_aa(.(X4, Xs), Xs)
U3_aga(X, Y, Z, tail_out_aa(X, T)) → U4_aga(X, Y, Z, T, convert_in_aga(T, Y, U))
convert_in_aga(X, Y, Z) → U6_aga(X, Y, Z, head_in_aa(X, H))
head_in_aa([], X2) → head_out_aa([], X2)
head_in_aa(.(H, X3), H) → head_out_aa(.(H, X3), H)
U6_aga(X, Y, Z, head_out_aa(X, H)) → U7_aga(X, Y, Z, H, p_in_aa(H, P))
U7_aga(X, Y, Z, H, p_out_aa(H, P)) → U8_aga(X, Y, Z, H, P, tail_in_aa(X, T))
U8_aga(X, Y, Z, H, P, tail_out_aa(X, T)) → U9_aga(X, Y, Z, H, P, T, convert_in_aga(.(P, T), Y, U))
U9_aga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_aga(X, Y, Z, p_in_ag(Z, U))
p_in_ag(s(X), X) → p_out_ag(s(X), X)
p_in_ag(0, 0) → p_out_ag(0, 0)
U10_aga(X, Y, Z, p_out_ag(Z, U)) → convert_out_aga(X, Y, Z)
U4_aga(X, Y, Z, T, convert_out_aga(T, Y, U)) → U5_aga(X, Y, Z, times_in_gga(U, Y, Z))
times_in_gga(0, Y, Z) → U11_gga(Y, Z, eq_in_ag(Z, 0))
U11_gga(Y, Z, eq_out_ag(Z, 0)) → times_out_gga(0, Y, Z)
times_in_gga(X, Y, Z) → U12_gga(X, Y, Z, p_in_ga(X, P))
p_in_ga(s(X), X) → p_out_ga(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)
U12_gga(X, Y, Z, p_out_ga(X, P)) → U13_gga(X, Y, Z, P, times_in_gga(P, Y, U))
U13_gga(X, Y, Z, P, times_out_gga(P, Y, U)) → U14_gga(X, Y, Z, plus_in_gga(Y, U, Z))
plus_in_gga(0, Y, Z) → U15_gga(Y, Z, eq_in_ga(Y, Z))
eq_in_ga(X, X) → eq_out_ga(X, X)
U15_gga(Y, Z, eq_out_ga(Y, Z)) → plus_out_gga(0, Y, Z)
plus_in_gga(X, Y, Z) → U16_gga(X, Y, Z, p_in_ga(X, P))
U16_gga(X, Y, Z, p_out_ga(X, P)) → U17_gga(X, Y, Z, P, plus_in_gga(P, Y, U))
U17_gga(X, Y, Z, P, plus_out_gga(P, Y, U)) → U18_gga(X, Y, Z, p_in_ag(Z, U))
U18_gga(X, Y, Z, p_out_ag(Z, U)) → plus_out_gga(X, Y, Z)
U14_gga(X, Y, Z, plus_out_gga(Y, U, Z)) → times_out_gga(X, Y, Z)
U5_aga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_aga(X, Y, Z)
U9_gga(X, Y, Z, H, P, T, convert_out_aga(.(P, T), Y, U)) → U10_gga(X, Y, Z, p_in_ag(Z, U))
U10_gga(X, Y, Z, p_out_ag(Z, U)) → convert_out_gga(X, Y, Z)
U4_gga(X, Y, Z, T, convert_out_gga(T, Y, U)) → U5_gga(X, Y, Z, times_in_gga(U, Y, Z))
U5_gga(X, Y, Z, times_out_gga(U, Y, Z)) → convert_out_gga(X, Y, Z)

The argument filtering Pi contains the following mapping:
convert_in_gga(x1, x2, x3)  =  convert_in_gga(x1, x2)
[]  =  []
U1_gga(x1, x2, x3)  =  U1_gga(x1, x3)
eq_in_ag(x1, x2)  =  eq_in_ag(x2)
eq_out_ag(x1, x2)  =  eq_out_ag(x1, x2)
0  =  0
convert_out_gga(x1, x2, x3)  =  convert_out_gga(x1, x2, x3)
U2_gga(x1, x2, x3, x4)  =  U2_gga(x1, x2, x4)
head_in_gg(x1, x2)  =  head_in_gg(x1, x2)
head_out_gg(x1, x2)  =  head_out_gg(x1, x2)
.(x1, x2)  =  .(x1, x2)
U3_gga(x1, x2, x3, x4)  =  U3_gga(x1, x2, x4)
tail_in_ga(x1, x2)  =  tail_in_ga(x1)
tail_out_ga(x1, x2)  =  tail_out_ga(x1, x2)
U4_gga(x1, x2, x3, x4, x5)  =  U4_gga(x1, x2, x5)
U6_gga(x1, x2, x3, x4)  =  U6_gga(x1, x2, x4)
head_in_ga(x1, x2)  =  head_in_ga(x1)
head_out_ga(x1, x2)  =  head_out_ga(x1)
U7_gga(x1, x2, x3, x4, x5)  =  U7_gga(x1, x2, x5)
p_in_aa(x1, x2)  =  p_in_aa
p_out_aa(x1, x2)  =  p_out_aa
U8_gga(x1, x2, x3, x4, x5, x6)  =  U8_gga(x1, x2, x6)
U9_gga(x1, x2, x3, x4, x5, x6, x7)  =  U9_gga(x1, x2, x7)
convert_in_aga(x1, x2, x3)  =  convert_in_aga(x2)
U1_aga(x1, x2, x3)  =  U1_aga(x1, x3)
convert_out_aga(x1, x2, x3)  =  convert_out_aga(x2, x3)
U2_aga(x1, x2, x3, x4)  =  U2_aga(x2, x4)
head_in_ag(x1, x2)  =  head_in_ag(x2)
head_out_ag(x1, x2)  =  head_out_ag(x2)
U3_aga(x1, x2, x3, x4)  =  U3_aga(x2, x4)
tail_in_aa(x1, x2)  =  tail_in_aa
tail_out_aa(x1, x2)  =  tail_out_aa
U4_aga(x1, x2, x3, x4, x5)  =  U4_aga(x2, x5)
U6_aga(x1, x2, x3, x4)  =  U6_aga(x2, x4)
head_in_aa(x1, x2)  =  head_in_aa
head_out_aa(x1, x2)  =  head_out_aa
U7_aga(x1, x2, x3, x4, x5)  =  U7_aga(x2, x5)
U8_aga(x1, x2, x3, x4, x5, x6)  =  U8_aga(x2, x6)
U9_aga(x1, x2, x3, x4, x5, x6, x7)  =  U9_aga(x2, x7)
U10_aga(x1, x2, x3, x4)  =  U10_aga(x2, x4)
p_in_ag(x1, x2)  =  p_in_ag(x2)
p_out_ag(x1, x2)  =  p_out_ag(x1, x2)
U5_aga(x1, x2, x3, x4)  =  U5_aga(x2, x4)
times_in_gga(x1, x2, x3)  =  times_in_gga(x1, x2)
U11_gga(x1, x2, x3)  =  U11_gga(x1, x3)
times_out_gga(x1, x2, x3)  =  times_out_gga(x1, x2, x3)
U12_gga(x1, x2, x3, x4)  =  U12_gga(x1, x2, x4)
p_in_ga(x1, x2)  =  p_in_ga(x1)
s(x1)  =  s(x1)
p_out_ga(x1, x2)  =  p_out_ga(x1, x2)
U13_gga(x1, x2, x3, x4, x5)  =  U13_gga(x1, x2, x5)
U14_gga(x1, x2, x3, x4)  =  U14_gga(x1, x2, x4)
plus_in_gga(x1, x2, x3)  =  plus_in_gga(x1, x2)
U15_gga(x1, x2, x3)  =  U15_gga(x1, x3)
eq_in_ga(x1, x2)  =  eq_in_ga(x1)
eq_out_ga(x1, x2)  =  eq_out_ga(x1, x2)
plus_out_gga(x1, x2, x3)  =  plus_out_gga(x1, x2, x3)
U16_gga(x1, x2, x3, x4)  =  U16_gga(x1, x2, x4)
U17_gga(x1, x2, x3, x4, x5)  =  U17_gga(x1, x2, x5)
U18_gga(x1, x2, x3, x4)  =  U18_gga(x1, x2, x4)
U10_gga(x1, x2, x3, x4)  =  U10_gga(x1, x2, x4)
U5_gga(x1, x2, x3, x4)  =  U5_gga(x1, x2, x4)
CONVERT_IN_GGA(x1, x2, x3)  =  CONVERT_IN_GGA(x1, x2)
U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x2, x4)
U3_GGA(x1, x2, x3, x4)  =  U3_GGA(x1, x2, x4)

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

(181) UsableRulesProof (EQUIVALENT transformation)

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

(182) Obligation:

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

CONVERT_IN_GGA(X, Y, Z) → U2_GGA(X, Y, Z, head_in_gg(X, 0))
U2_GGA(X, Y, Z, head_out_gg(X, 0)) → U3_GGA(X, Y, Z, tail_in_ga(X, T))
U3_GGA(X, Y, Z, tail_out_ga(X, T)) → CONVERT_IN_GGA(T, Y, U)

The TRS R consists of the following rules:

head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
tail_in_ga([], []) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs), Xs) → tail_out_ga(.(X4, Xs), Xs)

The argument filtering Pi contains the following mapping:
[]  =  []
0  =  0
head_in_gg(x1, x2)  =  head_in_gg(x1, x2)
head_out_gg(x1, x2)  =  head_out_gg(x1, x2)
.(x1, x2)  =  .(x1, x2)
tail_in_ga(x1, x2)  =  tail_in_ga(x1)
tail_out_ga(x1, x2)  =  tail_out_ga(x1, x2)
CONVERT_IN_GGA(x1, x2, x3)  =  CONVERT_IN_GGA(x1, x2)
U2_GGA(x1, x2, x3, x4)  =  U2_GGA(x1, x2, x4)
U3_GGA(x1, x2, x3, x4)  =  U3_GGA(x1, x2, x4)

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

(183) PiDPToQDPProof (SOUND transformation)

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

(184) Obligation:

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

CONVERT_IN_GGA(X, Y) → U2_GGA(X, Y, head_in_gg(X, 0))
U2_GGA(X, Y, head_out_gg(X, 0)) → U3_GGA(X, Y, tail_in_ga(X))
U3_GGA(X, Y, tail_out_ga(X, T)) → CONVERT_IN_GGA(T, Y)

The TRS R consists of the following rules:

head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
tail_in_ga([]) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs)) → tail_out_ga(.(X4, Xs), Xs)

The set Q consists of the following terms:

head_in_gg(x0, x1)
tail_in_ga(x0)

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

(185) Narrowing (SOUND transformation)

By narrowing [LPAR04] the rule CONVERT_IN_GGA(X, Y) → U2_GGA(X, Y, head_in_gg(X, 0)) at position [2] we obtained the following new rules [LPAR04]:

CONVERT_IN_GGA([], y1) → U2_GGA([], y1, head_out_gg([], 0))
CONVERT_IN_GGA(.(0, x1), y1) → U2_GGA(.(0, x1), y1, head_out_gg(.(0, x1), 0))

(186) Obligation:

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

U2_GGA(X, Y, head_out_gg(X, 0)) → U3_GGA(X, Y, tail_in_ga(X))
U3_GGA(X, Y, tail_out_ga(X, T)) → CONVERT_IN_GGA(T, Y)
CONVERT_IN_GGA([], y1) → U2_GGA([], y1, head_out_gg([], 0))
CONVERT_IN_GGA(.(0, x1), y1) → U2_GGA(.(0, x1), y1, head_out_gg(.(0, x1), 0))

The TRS R consists of the following rules:

head_in_gg([], X2) → head_out_gg([], X2)
head_in_gg(.(H, X3), H) → head_out_gg(.(H, X3), H)
tail_in_ga([]) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs)) → tail_out_ga(.(X4, Xs), Xs)

The set Q consists of the following terms:

head_in_gg(x0, x1)
tail_in_ga(x0)

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

(187) UsableRulesProof (EQUIVALENT transformation)

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

(188) Obligation:

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

U2_GGA(X, Y, head_out_gg(X, 0)) → U3_GGA(X, Y, tail_in_ga(X))
U3_GGA(X, Y, tail_out_ga(X, T)) → CONVERT_IN_GGA(T, Y)
CONVERT_IN_GGA([], y1) → U2_GGA([], y1, head_out_gg([], 0))
CONVERT_IN_GGA(.(0, x1), y1) → U2_GGA(.(0, x1), y1, head_out_gg(.(0, x1), 0))

The TRS R consists of the following rules:

tail_in_ga([]) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs)) → tail_out_ga(.(X4, Xs), Xs)

The set Q consists of the following terms:

head_in_gg(x0, x1)
tail_in_ga(x0)

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

(189) QReductionProof (EQUIVALENT transformation)

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

head_in_gg(x0, x1)

(190) Obligation:

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

U2_GGA(X, Y, head_out_gg(X, 0)) → U3_GGA(X, Y, tail_in_ga(X))
U3_GGA(X, Y, tail_out_ga(X, T)) → CONVERT_IN_GGA(T, Y)
CONVERT_IN_GGA([], y1) → U2_GGA([], y1, head_out_gg([], 0))
CONVERT_IN_GGA(.(0, x1), y1) → U2_GGA(.(0, x1), y1, head_out_gg(.(0, x1), 0))

The TRS R consists of the following rules:

tail_in_ga([]) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs)) → tail_out_ga(.(X4, Xs), Xs)

The set Q consists of the following terms:

tail_in_ga(x0)

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

(191) Narrowing (SOUND transformation)

By narrowing [LPAR04] the rule U2_GGA(X, Y, head_out_gg(X, 0)) → U3_GGA(X, Y, tail_in_ga(X)) at position [2] we obtained the following new rules [LPAR04]:

U2_GGA([], y1, head_out_gg([], 0)) → U3_GGA([], y1, tail_out_ga([], []))
U2_GGA(.(x0, x1), y1, head_out_gg(.(x0, x1), 0)) → U3_GGA(.(x0, x1), y1, tail_out_ga(.(x0, x1), x1))

(192) Obligation:

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

U3_GGA(X, Y, tail_out_ga(X, T)) → CONVERT_IN_GGA(T, Y)
CONVERT_IN_GGA([], y1) → U2_GGA([], y1, head_out_gg([], 0))
CONVERT_IN_GGA(.(0, x1), y1) → U2_GGA(.(0, x1), y1, head_out_gg(.(0, x1), 0))
U2_GGA([], y1, head_out_gg([], 0)) → U3_GGA([], y1, tail_out_ga([], []))
U2_GGA(.(x0, x1), y1, head_out_gg(.(x0, x1), 0)) → U3_GGA(.(x0, x1), y1, tail_out_ga(.(x0, x1), x1))

The TRS R consists of the following rules:

tail_in_ga([]) → tail_out_ga([], [])
tail_in_ga(.(X4, Xs)) → tail_out_ga(.(X4, Xs), Xs)

The set Q consists of the following terms:

tail_in_ga(x0)

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

(193) UsableRulesProof (EQUIVALENT transformation)

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

(194) Obligation:

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

U3_GGA(X, Y, tail_out_ga(X, T)) → CONVERT_IN_GGA(T, Y)
CONVERT_IN_GGA([], y1) → U2_GGA([], y1, head_out_gg([], 0))
CONVERT_IN_GGA(.(0, x1), y1) → U2_GGA(.(0, x1), y1, head_out_gg(.(0, x1), 0))
U2_GGA([], y1, head_out_gg([], 0)) → U3_GGA([], y1, tail_out_ga([], []))
U2_GGA(.(x0, x1), y1, head_out_gg(.(x0, x1), 0)) → U3_GGA(.(x0, x1), y1, tail_out_ga(.(x0, x1), x1))

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

tail_in_ga(x0)

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

(195) QReductionProof (EQUIVALENT transformation)

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

tail_in_ga(x0)

(196) Obligation:

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

U3_GGA(X, Y, tail_out_ga(X, T)) → CONVERT_IN_GGA(T, Y)
CONVERT_IN_GGA([], y1) → U2_GGA([], y1, head_out_gg([], 0))
CONVERT_IN_GGA(.(0, x1), y1) → U2_GGA(.(0, x1), y1, head_out_gg(.(0, x1), 0))
U2_GGA([], y1, head_out_gg([], 0)) → U3_GGA([], y1, tail_out_ga([], []))
U2_GGA(.(x0, x1), y1, head_out_gg(.(x0, x1), 0)) → U3_GGA(.(x0, x1), y1, tail_out_ga(.(x0, x1), x1))

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

(197) Instantiation (EQUIVALENT transformation)

By instantiating [LPAR04] the rule U2_GGA(.(x0, x1), y1, head_out_gg(.(x0, x1), 0)) → U3_GGA(.(x0, x1), y1, tail_out_ga(.(x0, x1), x1)) we obtained the following new rules [LPAR04]:

U2_GGA(.(0, z0), z1, head_out_gg(.(0, z0), 0)) → U3_GGA(.(0, z0), z1, tail_out_ga(.(0, z0), z0))

(198) Obligation:

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

U3_GGA(X, Y, tail_out_ga(X, T)) → CONVERT_IN_GGA(T, Y)
CONVERT_IN_GGA([], y1) → U2_GGA([], y1, head_out_gg([], 0))
CONVERT_IN_GGA(.(0, x1), y1) → U2_GGA(.(0, x1), y1, head_out_gg(.(0, x1), 0))
U2_GGA([], y1, head_out_gg([], 0)) → U3_GGA([], y1, tail_out_ga([], []))
U2_GGA(.(0, z0), z1, head_out_gg(.(0, z0), 0)) → U3_GGA(.(0, z0), z1, tail_out_ga(.(0, z0), z0))

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

(199) Instantiation (EQUIVALENT transformation)

By instantiating [LPAR04] the rule U3_GGA(X, Y, tail_out_ga(X, T)) → CONVERT_IN_GGA(T, Y) we obtained the following new rules [LPAR04]:

U3_GGA([], z0, tail_out_ga([], [])) → CONVERT_IN_GGA([], z0)
U3_GGA(.(0, z0), z1, tail_out_ga(.(0, z0), z0)) → CONVERT_IN_GGA(z0, z1)

(200) Obligation:

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

CONVERT_IN_GGA([], y1) → U2_GGA([], y1, head_out_gg([], 0))
CONVERT_IN_GGA(.(0, x1), y1) → U2_GGA(.(0, x1), y1, head_out_gg(.(0, x1), 0))
U2_GGA([], y1, head_out_gg([], 0)) → U3_GGA([], y1, tail_out_ga([], []))
U2_GGA(.(0, z0), z1, head_out_gg(.(0, z0), 0)) → U3_GGA(.(0, z0), z1, tail_out_ga(.(0, z0), z0))
U3_GGA([], z0, tail_out_ga([], [])) → CONVERT_IN_GGA([], z0)
U3_GGA(.(0, z0), z1, tail_out_ga(.(0, z0), z0)) → CONVERT_IN_GGA(z0, z1)

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

(201) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 2 SCCs.

(202) Complex Obligation (AND)

(203) Obligation:

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

U2_GGA([], y1, head_out_gg([], 0)) → U3_GGA([], y1, tail_out_ga([], []))
U3_GGA([], z0, tail_out_ga([], [])) → CONVERT_IN_GGA([], z0)
CONVERT_IN_GGA([], y1) → U2_GGA([], y1, head_out_gg([], 0))

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

(204) NonTerminationProof (EQUIVALENT transformation)

We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = U3_GGA([], z0, tail_out_ga([], [])) evaluates to t =U3_GGA([], z0, tail_out_ga([], []))

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




Rewriting sequence

U3_GGA([], z0, tail_out_ga([], []))CONVERT_IN_GGA([], z0)
with rule U3_GGA([], z0', tail_out_ga([], [])) → CONVERT_IN_GGA([], z0') at position [] and matcher [z0' / z0]

CONVERT_IN_GGA([], z0)U2_GGA([], z0, head_out_gg([], 0))
with rule CONVERT_IN_GGA([], y1') → U2_GGA([], y1', head_out_gg([], 0)) at position [] and matcher [y1' / z0]

U2_GGA([], z0, head_out_gg([], 0))U3_GGA([], z0, tail_out_ga([], []))
with rule U2_GGA([], y1, head_out_gg([], 0)) → U3_GGA([], y1, tail_out_ga([], []))

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.



(205) FALSE

(206) Obligation:

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

CONVERT_IN_GGA(.(0, x1), y1) → U2_GGA(.(0, x1), y1, head_out_gg(.(0, x1), 0))
U2_GGA(.(0, z0), z1, head_out_gg(.(0, z0), 0)) → U3_GGA(.(0, z0), z1, tail_out_ga(.(0, z0), z0))
U3_GGA(.(0, z0), z1, tail_out_ga(.(0, z0), z0)) → CONVERT_IN_GGA(z0, z1)

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

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

  • U2_GGA(.(0, z0), z1, head_out_gg(.(0, z0), 0)) → U3_GGA(.(0, z0), z1, tail_out_ga(.(0, z0), z0))
    The graph contains the following edges 1 >= 1, 3 > 1, 2 >= 2

  • U3_GGA(.(0, z0), z1, tail_out_ga(.(0, z0), z0)) → CONVERT_IN_GGA(z0, z1)
    The graph contains the following edges 1 > 1, 3 > 1, 2 >= 2

  • CONVERT_IN_GGA(.(0, x1), y1) → U2_GGA(.(0, x1), y1, head_out_gg(.(0, x1), 0))
    The graph contains the following edges 1 >= 1, 2 >= 2

(208) TRUE