(0) Obligation:

Clauses:

goal(A, B, C) :- ','(s2t(A, T), tapplast(T, B, C)).
tapplast(L, X, Last) :- ','(tappend(L, node(nil, X, nil), LX), tlast(Last, LX)).
tlast(X, node(nil, X, nil)).
tlast(X, node(L, H, R)) :- tlast(X, L).
tlast(X, node(L, H, R)) :- tlast(X, R).
tappend(nil, T, T).
tappend(node(nil, X, T2), T1, node(T1, X, T2)).
tappend(node(T1, X, nil), T2, node(T1, X, T2)).
tappend(node(T1, X, T2), T3, node(U, X, T2)) :- tappend(T1, T3, U).
tappend(node(T1, X, T2), T3, node(T1, X, U)) :- tappend(T2, T3, U).
s2t(s(X), node(T, Y, T)) :- s2t(X, T).
s2t(s(X), node(nil, Y, T)) :- s2t(X, T).
s2t(s(X), node(T, Y, nil)) :- s2t(X, T).
s2t(s(X), node(nil, Y, nil)).
s2t(0, nil).

Queries:

goal(g,a,a).

(1) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph.

(2) Obligation:

Triples:

s2t9(s(T27), node(X69, X70, X69)) :- s2t9(T27, X69).
s2t9(s(T33), node(nil, X102, X103)) :- s2t9(T33, X103).
s2t9(s(T39), node(X135, X136, nil)) :- s2t9(T39, X135).
tappend50(node(T165, T162, T163), T166, node(X370, T162, T163)) :- tappend50(T165, T166, X370).
tappend50(node(T177, T178, T181), T182, node(T177, T178, X395)) :- tappend50(T181, T182, X395).
tlast35(T226, node(T227, T224, T225)) :- tlast35(T226, T227).
tlast35(T242, node(T239, T240, T243)) :- tlast35(T242, T243).
p33(T106, X295, T107, node(X296, X295, T106), T65) :- tappend50(T106, T107, X296).
p33(T195, X424, T196, node(T195, X424, X425), T65) :- tappend50(T195, T196, X425).
p33(T63, T68, T64, T69, T70) :- ','(tappendc34(T63, T68, T64, T69), tlast35(T70, T69)).
goal1(s(T19), T13, T14) :- s2t9(T19, X31).
goal1(s(T19), T64, T65) :- ','(s2tc9(T19, T63), p33(T63, X190, T64, X189, T65)).
goal1(s(T250), T13, T14) :- s2t9(T250, X504).
goal1(s(T250), T273, T274) :- ','(s2tc9(T250, T272), tappend50(node(nil, X543, T272), T273, X542)).
goal1(s(T250), T273, T280) :- ','(s2tc9(T250, T272), ','(tappendc50(node(nil, T278, T272), T273, T279), tlast35(T280, T279))).
goal1(s(T289), T13, T14) :- s2t9(T289, X582).
goal1(s(T289), T311, T312) :- ','(s2tc9(T289, T310), tappend50(node(T310, X625, nil), T311, X624)).
goal1(s(T289), T311, T317) :- ','(s2tc9(T289, T310), ','(tappendc50(node(T310, T315, nil), T311, T316), tlast35(T317, T316))).
goal1(s(T326), T339, T340) :- p33(nil, X690, T339, X689, T340).
goal1(0, T355, T356) :- tappend50(nil, T355, X714).
goal1(0, T355, T360) :- ','(tappendc50(nil, T355, T359), tlast35(T360, T359)).

Clauses:

s2tc9(s(T27), node(X69, X70, X69)) :- s2tc9(T27, X69).
s2tc9(s(T33), node(nil, X102, X103)) :- s2tc9(T33, X103).
s2tc9(s(T39), node(X135, X136, nil)) :- s2tc9(T39, X135).
s2tc9(s(T45), node(nil, X159, nil)).
s2tc9(0, nil).
tappendc50(nil, T114, node(nil, T114, nil)).
tappendc50(node(nil, T127, T128), T129, node(node(nil, T129, nil), T127, T128)).
tappendc50(node(T142, T143, nil), T144, node(T142, T143, node(nil, T144, nil))).
tappendc50(node(T165, T162, T163), T166, node(X370, T162, T163)) :- tappendc50(T165, T166, X370).
tappendc50(node(T177, T178, T181), T182, node(T177, T178, X395)) :- tappendc50(T181, T182, X395).
tlastc35(T205, node(nil, T205, nil)).
tlastc35(T226, node(T227, T224, T225)) :- tlastc35(T226, T227).
tlastc35(T242, node(T239, T240, T243)) :- tlastc35(T242, T243).
qc33(T63, T68, T64, T69, T70) :- ','(tappendc34(T63, T68, T64, T69), tlastc35(T70, T69)).
tappendc34(nil, X231, T77, node(node(nil, T77, nil), X231, nil)).
tappendc34(nil, X254, T87, node(nil, X254, node(nil, T87, nil))).
tappendc34(T106, X295, T107, node(X296, X295, T106)) :- tappendc50(T106, T107, X296).
tappendc34(T195, X424, T196, node(T195, X424, X425)) :- tappendc50(T195, T196, X425).

Afs:

goal1(x1, x2, x3)  =  goal1(x1)

(3) TriplesToPiDPProof (SOUND transformation)

We use the technique of [LOPSTR]. With regard to the inferred argument filtering the predicates were used in the following modes:
goal1_in: (b,f,f)
s2t9_in: (b,f)
s2tc9_in: (b,f)
p33_in: (b,f,f,f,f)
tappend50_in: (b,f,f)
tappendc34_in: (b,f,f,f)
tappendc50_in: (b,f,f)
tlast35_in: (f,b)
Transforming TRIPLES into the following Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:

GOAL1_IN_GAA(s(T19), T13, T14) → U12_GAA(T19, T13, T14, s2t9_in_ga(T19, X31))
GOAL1_IN_GAA(s(T19), T13, T14) → S2T9_IN_GA(T19, X31)
S2T9_IN_GA(s(T27), node(X69, X70, X69)) → U1_GA(T27, X69, X70, s2t9_in_ga(T27, X69))
S2T9_IN_GA(s(T27), node(X69, X70, X69)) → S2T9_IN_GA(T27, X69)
S2T9_IN_GA(s(T33), node(nil, X102, X103)) → U2_GA(T33, X102, X103, s2t9_in_ga(T33, X103))
S2T9_IN_GA(s(T33), node(nil, X102, X103)) → S2T9_IN_GA(T33, X103)
S2T9_IN_GA(s(T39), node(X135, X136, nil)) → U3_GA(T39, X135, X136, s2t9_in_ga(T39, X135))
S2T9_IN_GA(s(T39), node(X135, X136, nil)) → S2T9_IN_GA(T39, X135)
GOAL1_IN_GAA(s(T19), T64, T65) → U13_GAA(T19, T64, T65, s2tc9_in_ga(T19, T63))
U13_GAA(T19, T64, T65, s2tc9_out_ga(T19, T63)) → U14_GAA(T19, T64, T65, p33_in_gaaaa(T63, X190, T64, X189, T65))
U13_GAA(T19, T64, T65, s2tc9_out_ga(T19, T63)) → P33_IN_GAAAA(T63, X190, T64, X189, T65)
P33_IN_GAAAA(T106, X295, T107, node(X296, X295, T106), T65) → U8_GAAAA(T106, X295, T107, X296, T65, tappend50_in_gaa(T106, T107, X296))
P33_IN_GAAAA(T106, X295, T107, node(X296, X295, T106), T65) → TAPPEND50_IN_GAA(T106, T107, X296)
TAPPEND50_IN_GAA(node(T165, T162, T163), T166, node(X370, T162, T163)) → U4_GAA(T165, T162, T163, T166, X370, tappend50_in_gaa(T165, T166, X370))
TAPPEND50_IN_GAA(node(T165, T162, T163), T166, node(X370, T162, T163)) → TAPPEND50_IN_GAA(T165, T166, X370)
TAPPEND50_IN_GAA(node(T177, T178, T181), T182, node(T177, T178, X395)) → U5_GAA(T177, T178, T181, T182, X395, tappend50_in_gaa(T181, T182, X395))
TAPPEND50_IN_GAA(node(T177, T178, T181), T182, node(T177, T178, X395)) → TAPPEND50_IN_GAA(T181, T182, X395)
P33_IN_GAAAA(T195, X424, T196, node(T195, X424, X425), T65) → U9_GAAAA(T195, X424, T196, X425, T65, tappend50_in_gaa(T195, T196, X425))
P33_IN_GAAAA(T195, X424, T196, node(T195, X424, X425), T65) → TAPPEND50_IN_GAA(T195, T196, X425)
P33_IN_GAAAA(T63, T68, T64, T69, T70) → U10_GAAAA(T63, T68, T64, T69, T70, tappendc34_in_gaaa(T63, T68, T64, T69))
U10_GAAAA(T63, T68, T64, T69, T70, tappendc34_out_gaaa(T63, T68, T64, T69)) → U11_GAAAA(T63, T68, T64, T69, T70, tlast35_in_ag(T70, T69))
U10_GAAAA(T63, T68, T64, T69, T70, tappendc34_out_gaaa(T63, T68, T64, T69)) → TLAST35_IN_AG(T70, T69)
TLAST35_IN_AG(T226, node(T227, T224, T225)) → U6_AG(T226, T227, T224, T225, tlast35_in_ag(T226, T227))
TLAST35_IN_AG(T226, node(T227, T224, T225)) → TLAST35_IN_AG(T226, T227)
TLAST35_IN_AG(T242, node(T239, T240, T243)) → U7_AG(T242, T239, T240, T243, tlast35_in_ag(T242, T243))
TLAST35_IN_AG(T242, node(T239, T240, T243)) → TLAST35_IN_AG(T242, T243)
GOAL1_IN_GAA(s(T250), T13, T14) → U15_GAA(T250, T13, T14, s2t9_in_ga(T250, X504))
GOAL1_IN_GAA(s(T250), T273, T274) → U16_GAA(T250, T273, T274, s2tc9_in_ga(T250, T272))
U16_GAA(T250, T273, T274, s2tc9_out_ga(T250, T272)) → U17_GAA(T250, T273, T274, tappend50_in_gaa(node(nil, X543, T272), T273, X542))
U16_GAA(T250, T273, T274, s2tc9_out_ga(T250, T272)) → TAPPEND50_IN_GAA(node(nil, X543, T272), T273, X542)
GOAL1_IN_GAA(s(T250), T273, T280) → U18_GAA(T250, T273, T280, s2tc9_in_ga(T250, T272))
U18_GAA(T250, T273, T280, s2tc9_out_ga(T250, T272)) → U19_GAA(T250, T273, T280, tappendc50_in_gaa(node(nil, T278, T272), T273, T279))
U19_GAA(T250, T273, T280, tappendc50_out_gaa(node(nil, T278, T272), T273, T279)) → U20_GAA(T250, T273, T280, tlast35_in_ag(T280, T279))
U19_GAA(T250, T273, T280, tappendc50_out_gaa(node(nil, T278, T272), T273, T279)) → TLAST35_IN_AG(T280, T279)
GOAL1_IN_GAA(s(T289), T13, T14) → U21_GAA(T289, T13, T14, s2t9_in_ga(T289, X582))
GOAL1_IN_GAA(s(T289), T311, T312) → U22_GAA(T289, T311, T312, s2tc9_in_ga(T289, T310))
U22_GAA(T289, T311, T312, s2tc9_out_ga(T289, T310)) → U23_GAA(T289, T311, T312, tappend50_in_gaa(node(T310, X625, nil), T311, X624))
U22_GAA(T289, T311, T312, s2tc9_out_ga(T289, T310)) → TAPPEND50_IN_GAA(node(T310, X625, nil), T311, X624)
GOAL1_IN_GAA(s(T289), T311, T317) → U24_GAA(T289, T311, T317, s2tc9_in_ga(T289, T310))
U24_GAA(T289, T311, T317, s2tc9_out_ga(T289, T310)) → U25_GAA(T289, T311, T317, tappendc50_in_gaa(node(T310, T315, nil), T311, T316))
U25_GAA(T289, T311, T317, tappendc50_out_gaa(node(T310, T315, nil), T311, T316)) → U26_GAA(T289, T311, T317, tlast35_in_ag(T317, T316))
U25_GAA(T289, T311, T317, tappendc50_out_gaa(node(T310, T315, nil), T311, T316)) → TLAST35_IN_AG(T317, T316)
GOAL1_IN_GAA(s(T326), T339, T340) → U27_GAA(T326, T339, T340, p33_in_gaaaa(nil, X690, T339, X689, T340))
GOAL1_IN_GAA(s(T326), T339, T340) → P33_IN_GAAAA(nil, X690, T339, X689, T340)
GOAL1_IN_GAA(0, T355, T356) → U28_GAA(T355, T356, tappend50_in_gaa(nil, T355, X714))
GOAL1_IN_GAA(0, T355, T356) → TAPPEND50_IN_GAA(nil, T355, X714)
GOAL1_IN_GAA(0, T355, T360) → U29_GAA(T355, T360, tappendc50_in_gaa(nil, T355, T359))
U29_GAA(T355, T360, tappendc50_out_gaa(nil, T355, T359)) → U30_GAA(T355, T360, tlast35_in_ag(T360, T359))
U29_GAA(T355, T360, tappendc50_out_gaa(nil, T355, T359)) → TLAST35_IN_AG(T360, T359)

The TRS R consists of the following rules:

s2tc9_in_ga(s(T27), node(X69, X70, X69)) → U32_ga(T27, X69, X70, s2tc9_in_ga(T27, X69))
s2tc9_in_ga(s(T33), node(nil, X102, X103)) → U33_ga(T33, X102, X103, s2tc9_in_ga(T33, X103))
s2tc9_in_ga(s(T39), node(X135, X136, nil)) → U34_ga(T39, X135, X136, s2tc9_in_ga(T39, X135))
s2tc9_in_ga(s(T45), node(nil, X159, nil)) → s2tc9_out_ga(s(T45), node(nil, X159, nil))
s2tc9_in_ga(0, nil) → s2tc9_out_ga(0, nil)
U34_ga(T39, X135, X136, s2tc9_out_ga(T39, X135)) → s2tc9_out_ga(s(T39), node(X135, X136, nil))
U33_ga(T33, X102, X103, s2tc9_out_ga(T33, X103)) → s2tc9_out_ga(s(T33), node(nil, X102, X103))
U32_ga(T27, X69, X70, s2tc9_out_ga(T27, X69)) → s2tc9_out_ga(s(T27), node(X69, X70, X69))
tappendc34_in_gaaa(nil, X231, T77, node(node(nil, T77, nil), X231, nil)) → tappendc34_out_gaaa(nil, X231, T77, node(node(nil, T77, nil), X231, nil))
tappendc34_in_gaaa(nil, X254, T87, node(nil, X254, node(nil, T87, nil))) → tappendc34_out_gaaa(nil, X254, T87, node(nil, X254, node(nil, T87, nil)))
tappendc34_in_gaaa(T106, X295, T107, node(X296, X295, T106)) → U41_gaaa(T106, X295, T107, X296, tappendc50_in_gaa(T106, T107, X296))
tappendc50_in_gaa(nil, T114, node(nil, T114, nil)) → tappendc50_out_gaa(nil, T114, node(nil, T114, nil))
tappendc50_in_gaa(node(nil, T127, T128), T129, node(node(nil, T129, nil), T127, T128)) → tappendc50_out_gaa(node(nil, T127, T128), T129, node(node(nil, T129, nil), T127, T128))
tappendc50_in_gaa(node(T142, T143, nil), T144, node(T142, T143, node(nil, T144, nil))) → tappendc50_out_gaa(node(T142, T143, nil), T144, node(T142, T143, node(nil, T144, nil)))
tappendc50_in_gaa(node(T165, T162, T163), T166, node(X370, T162, T163)) → U35_gaa(T165, T162, T163, T166, X370, tappendc50_in_gaa(T165, T166, X370))
tappendc50_in_gaa(node(T177, T178, T181), T182, node(T177, T178, X395)) → U36_gaa(T177, T178, T181, T182, X395, tappendc50_in_gaa(T181, T182, X395))
U36_gaa(T177, T178, T181, T182, X395, tappendc50_out_gaa(T181, T182, X395)) → tappendc50_out_gaa(node(T177, T178, T181), T182, node(T177, T178, X395))
U35_gaa(T165, T162, T163, T166, X370, tappendc50_out_gaa(T165, T166, X370)) → tappendc50_out_gaa(node(T165, T162, T163), T166, node(X370, T162, T163))
U41_gaaa(T106, X295, T107, X296, tappendc50_out_gaa(T106, T107, X296)) → tappendc34_out_gaaa(T106, X295, T107, node(X296, X295, T106))
tappendc34_in_gaaa(T195, X424, T196, node(T195, X424, X425)) → U42_gaaa(T195, X424, T196, X425, tappendc50_in_gaa(T195, T196, X425))
U42_gaaa(T195, X424, T196, X425, tappendc50_out_gaa(T195, T196, X425)) → tappendc34_out_gaaa(T195, X424, T196, node(T195, X424, X425))

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
s2t9_in_ga(x1, x2)  =  s2t9_in_ga(x1)
node(x1, x2, x3)  =  node(x1, x3)
s2tc9_in_ga(x1, x2)  =  s2tc9_in_ga(x1)
U32_ga(x1, x2, x3, x4)  =  U32_ga(x1, x4)
U33_ga(x1, x2, x3, x4)  =  U33_ga(x1, x4)
U34_ga(x1, x2, x3, x4)  =  U34_ga(x1, x4)
s2tc9_out_ga(x1, x2)  =  s2tc9_out_ga(x1, x2)
0  =  0
p33_in_gaaaa(x1, x2, x3, x4, x5)  =  p33_in_gaaaa(x1)
tappend50_in_gaa(x1, x2, x3)  =  tappend50_in_gaa(x1)
tappendc34_in_gaaa(x1, x2, x3, x4)  =  tappendc34_in_gaaa(x1)
nil  =  nil
tappendc34_out_gaaa(x1, x2, x3, x4)  =  tappendc34_out_gaaa(x1, x4)
U41_gaaa(x1, x2, x3, x4, x5)  =  U41_gaaa(x1, x5)
tappendc50_in_gaa(x1, x2, x3)  =  tappendc50_in_gaa(x1)
tappendc50_out_gaa(x1, x2, x3)  =  tappendc50_out_gaa(x1, x3)
U35_gaa(x1, x2, x3, x4, x5, x6)  =  U35_gaa(x1, x3, x6)
U36_gaa(x1, x2, x3, x4, x5, x6)  =  U36_gaa(x1, x3, x6)
U42_gaaa(x1, x2, x3, x4, x5)  =  U42_gaaa(x1, x5)
tlast35_in_ag(x1, x2)  =  tlast35_in_ag(x2)
GOAL1_IN_GAA(x1, x2, x3)  =  GOAL1_IN_GAA(x1)
U12_GAA(x1, x2, x3, x4)  =  U12_GAA(x1, x4)
S2T9_IN_GA(x1, x2)  =  S2T9_IN_GA(x1)
U1_GA(x1, x2, x3, x4)  =  U1_GA(x1, x4)
U2_GA(x1, x2, x3, x4)  =  U2_GA(x1, x4)
U3_GA(x1, x2, x3, x4)  =  U3_GA(x1, x4)
U13_GAA(x1, x2, x3, x4)  =  U13_GAA(x1, x4)
U14_GAA(x1, x2, x3, x4)  =  U14_GAA(x1, x4)
P33_IN_GAAAA(x1, x2, x3, x4, x5)  =  P33_IN_GAAAA(x1)
U8_GAAAA(x1, x2, x3, x4, x5, x6)  =  U8_GAAAA(x1, x6)
TAPPEND50_IN_GAA(x1, x2, x3)  =  TAPPEND50_IN_GAA(x1)
U4_GAA(x1, x2, x3, x4, x5, x6)  =  U4_GAA(x1, x3, x6)
U5_GAA(x1, x2, x3, x4, x5, x6)  =  U5_GAA(x1, x3, x6)
U9_GAAAA(x1, x2, x3, x4, x5, x6)  =  U9_GAAAA(x1, x6)
U10_GAAAA(x1, x2, x3, x4, x5, x6)  =  U10_GAAAA(x1, x6)
U11_GAAAA(x1, x2, x3, x4, x5, x6)  =  U11_GAAAA(x1, x4, x6)
TLAST35_IN_AG(x1, x2)  =  TLAST35_IN_AG(x2)
U6_AG(x1, x2, x3, x4, x5)  =  U6_AG(x2, x4, x5)
U7_AG(x1, x2, x3, x4, x5)  =  U7_AG(x2, x4, x5)
U15_GAA(x1, x2, x3, x4)  =  U15_GAA(x1, x4)
U16_GAA(x1, x2, x3, x4)  =  U16_GAA(x1, x4)
U17_GAA(x1, x2, x3, x4)  =  U17_GAA(x1, x4)
U18_GAA(x1, x2, x3, x4)  =  U18_GAA(x1, x4)
U19_GAA(x1, x2, x3, x4)  =  U19_GAA(x1, x4)
U20_GAA(x1, x2, x3, x4)  =  U20_GAA(x1, x4)
U21_GAA(x1, x2, x3, x4)  =  U21_GAA(x1, x4)
U22_GAA(x1, x2, x3, x4)  =  U22_GAA(x1, x4)
U23_GAA(x1, x2, x3, x4)  =  U23_GAA(x1, x4)
U24_GAA(x1, x2, x3, x4)  =  U24_GAA(x1, x4)
U25_GAA(x1, x2, x3, x4)  =  U25_GAA(x1, x4)
U26_GAA(x1, x2, x3, x4)  =  U26_GAA(x1, x4)
U27_GAA(x1, x2, x3, x4)  =  U27_GAA(x1, x4)
U28_GAA(x1, x2, x3)  =  U28_GAA(x3)
U29_GAA(x1, x2, x3)  =  U29_GAA(x3)
U30_GAA(x1, x2, x3)  =  U30_GAA(x3)

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

Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES

(4) Obligation:

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

GOAL1_IN_GAA(s(T19), T13, T14) → U12_GAA(T19, T13, T14, s2t9_in_ga(T19, X31))
GOAL1_IN_GAA(s(T19), T13, T14) → S2T9_IN_GA(T19, X31)
S2T9_IN_GA(s(T27), node(X69, X70, X69)) → U1_GA(T27, X69, X70, s2t9_in_ga(T27, X69))
S2T9_IN_GA(s(T27), node(X69, X70, X69)) → S2T9_IN_GA(T27, X69)
S2T9_IN_GA(s(T33), node(nil, X102, X103)) → U2_GA(T33, X102, X103, s2t9_in_ga(T33, X103))
S2T9_IN_GA(s(T33), node(nil, X102, X103)) → S2T9_IN_GA(T33, X103)
S2T9_IN_GA(s(T39), node(X135, X136, nil)) → U3_GA(T39, X135, X136, s2t9_in_ga(T39, X135))
S2T9_IN_GA(s(T39), node(X135, X136, nil)) → S2T9_IN_GA(T39, X135)
GOAL1_IN_GAA(s(T19), T64, T65) → U13_GAA(T19, T64, T65, s2tc9_in_ga(T19, T63))
U13_GAA(T19, T64, T65, s2tc9_out_ga(T19, T63)) → U14_GAA(T19, T64, T65, p33_in_gaaaa(T63, X190, T64, X189, T65))
U13_GAA(T19, T64, T65, s2tc9_out_ga(T19, T63)) → P33_IN_GAAAA(T63, X190, T64, X189, T65)
P33_IN_GAAAA(T106, X295, T107, node(X296, X295, T106), T65) → U8_GAAAA(T106, X295, T107, X296, T65, tappend50_in_gaa(T106, T107, X296))
P33_IN_GAAAA(T106, X295, T107, node(X296, X295, T106), T65) → TAPPEND50_IN_GAA(T106, T107, X296)
TAPPEND50_IN_GAA(node(T165, T162, T163), T166, node(X370, T162, T163)) → U4_GAA(T165, T162, T163, T166, X370, tappend50_in_gaa(T165, T166, X370))
TAPPEND50_IN_GAA(node(T165, T162, T163), T166, node(X370, T162, T163)) → TAPPEND50_IN_GAA(T165, T166, X370)
TAPPEND50_IN_GAA(node(T177, T178, T181), T182, node(T177, T178, X395)) → U5_GAA(T177, T178, T181, T182, X395, tappend50_in_gaa(T181, T182, X395))
TAPPEND50_IN_GAA(node(T177, T178, T181), T182, node(T177, T178, X395)) → TAPPEND50_IN_GAA(T181, T182, X395)
P33_IN_GAAAA(T195, X424, T196, node(T195, X424, X425), T65) → U9_GAAAA(T195, X424, T196, X425, T65, tappend50_in_gaa(T195, T196, X425))
P33_IN_GAAAA(T195, X424, T196, node(T195, X424, X425), T65) → TAPPEND50_IN_GAA(T195, T196, X425)
P33_IN_GAAAA(T63, T68, T64, T69, T70) → U10_GAAAA(T63, T68, T64, T69, T70, tappendc34_in_gaaa(T63, T68, T64, T69))
U10_GAAAA(T63, T68, T64, T69, T70, tappendc34_out_gaaa(T63, T68, T64, T69)) → U11_GAAAA(T63, T68, T64, T69, T70, tlast35_in_ag(T70, T69))
U10_GAAAA(T63, T68, T64, T69, T70, tappendc34_out_gaaa(T63, T68, T64, T69)) → TLAST35_IN_AG(T70, T69)
TLAST35_IN_AG(T226, node(T227, T224, T225)) → U6_AG(T226, T227, T224, T225, tlast35_in_ag(T226, T227))
TLAST35_IN_AG(T226, node(T227, T224, T225)) → TLAST35_IN_AG(T226, T227)
TLAST35_IN_AG(T242, node(T239, T240, T243)) → U7_AG(T242, T239, T240, T243, tlast35_in_ag(T242, T243))
TLAST35_IN_AG(T242, node(T239, T240, T243)) → TLAST35_IN_AG(T242, T243)
GOAL1_IN_GAA(s(T250), T13, T14) → U15_GAA(T250, T13, T14, s2t9_in_ga(T250, X504))
GOAL1_IN_GAA(s(T250), T273, T274) → U16_GAA(T250, T273, T274, s2tc9_in_ga(T250, T272))
U16_GAA(T250, T273, T274, s2tc9_out_ga(T250, T272)) → U17_GAA(T250, T273, T274, tappend50_in_gaa(node(nil, X543, T272), T273, X542))
U16_GAA(T250, T273, T274, s2tc9_out_ga(T250, T272)) → TAPPEND50_IN_GAA(node(nil, X543, T272), T273, X542)
GOAL1_IN_GAA(s(T250), T273, T280) → U18_GAA(T250, T273, T280, s2tc9_in_ga(T250, T272))
U18_GAA(T250, T273, T280, s2tc9_out_ga(T250, T272)) → U19_GAA(T250, T273, T280, tappendc50_in_gaa(node(nil, T278, T272), T273, T279))
U19_GAA(T250, T273, T280, tappendc50_out_gaa(node(nil, T278, T272), T273, T279)) → U20_GAA(T250, T273, T280, tlast35_in_ag(T280, T279))
U19_GAA(T250, T273, T280, tappendc50_out_gaa(node(nil, T278, T272), T273, T279)) → TLAST35_IN_AG(T280, T279)
GOAL1_IN_GAA(s(T289), T13, T14) → U21_GAA(T289, T13, T14, s2t9_in_ga(T289, X582))
GOAL1_IN_GAA(s(T289), T311, T312) → U22_GAA(T289, T311, T312, s2tc9_in_ga(T289, T310))
U22_GAA(T289, T311, T312, s2tc9_out_ga(T289, T310)) → U23_GAA(T289, T311, T312, tappend50_in_gaa(node(T310, X625, nil), T311, X624))
U22_GAA(T289, T311, T312, s2tc9_out_ga(T289, T310)) → TAPPEND50_IN_GAA(node(T310, X625, nil), T311, X624)
GOAL1_IN_GAA(s(T289), T311, T317) → U24_GAA(T289, T311, T317, s2tc9_in_ga(T289, T310))
U24_GAA(T289, T311, T317, s2tc9_out_ga(T289, T310)) → U25_GAA(T289, T311, T317, tappendc50_in_gaa(node(T310, T315, nil), T311, T316))
U25_GAA(T289, T311, T317, tappendc50_out_gaa(node(T310, T315, nil), T311, T316)) → U26_GAA(T289, T311, T317, tlast35_in_ag(T317, T316))
U25_GAA(T289, T311, T317, tappendc50_out_gaa(node(T310, T315, nil), T311, T316)) → TLAST35_IN_AG(T317, T316)
GOAL1_IN_GAA(s(T326), T339, T340) → U27_GAA(T326, T339, T340, p33_in_gaaaa(nil, X690, T339, X689, T340))
GOAL1_IN_GAA(s(T326), T339, T340) → P33_IN_GAAAA(nil, X690, T339, X689, T340)
GOAL1_IN_GAA(0, T355, T356) → U28_GAA(T355, T356, tappend50_in_gaa(nil, T355, X714))
GOAL1_IN_GAA(0, T355, T356) → TAPPEND50_IN_GAA(nil, T355, X714)
GOAL1_IN_GAA(0, T355, T360) → U29_GAA(T355, T360, tappendc50_in_gaa(nil, T355, T359))
U29_GAA(T355, T360, tappendc50_out_gaa(nil, T355, T359)) → U30_GAA(T355, T360, tlast35_in_ag(T360, T359))
U29_GAA(T355, T360, tappendc50_out_gaa(nil, T355, T359)) → TLAST35_IN_AG(T360, T359)

The TRS R consists of the following rules:

s2tc9_in_ga(s(T27), node(X69, X70, X69)) → U32_ga(T27, X69, X70, s2tc9_in_ga(T27, X69))
s2tc9_in_ga(s(T33), node(nil, X102, X103)) → U33_ga(T33, X102, X103, s2tc9_in_ga(T33, X103))
s2tc9_in_ga(s(T39), node(X135, X136, nil)) → U34_ga(T39, X135, X136, s2tc9_in_ga(T39, X135))
s2tc9_in_ga(s(T45), node(nil, X159, nil)) → s2tc9_out_ga(s(T45), node(nil, X159, nil))
s2tc9_in_ga(0, nil) → s2tc9_out_ga(0, nil)
U34_ga(T39, X135, X136, s2tc9_out_ga(T39, X135)) → s2tc9_out_ga(s(T39), node(X135, X136, nil))
U33_ga(T33, X102, X103, s2tc9_out_ga(T33, X103)) → s2tc9_out_ga(s(T33), node(nil, X102, X103))
U32_ga(T27, X69, X70, s2tc9_out_ga(T27, X69)) → s2tc9_out_ga(s(T27), node(X69, X70, X69))
tappendc34_in_gaaa(nil, X231, T77, node(node(nil, T77, nil), X231, nil)) → tappendc34_out_gaaa(nil, X231, T77, node(node(nil, T77, nil), X231, nil))
tappendc34_in_gaaa(nil, X254, T87, node(nil, X254, node(nil, T87, nil))) → tappendc34_out_gaaa(nil, X254, T87, node(nil, X254, node(nil, T87, nil)))
tappendc34_in_gaaa(T106, X295, T107, node(X296, X295, T106)) → U41_gaaa(T106, X295, T107, X296, tappendc50_in_gaa(T106, T107, X296))
tappendc50_in_gaa(nil, T114, node(nil, T114, nil)) → tappendc50_out_gaa(nil, T114, node(nil, T114, nil))
tappendc50_in_gaa(node(nil, T127, T128), T129, node(node(nil, T129, nil), T127, T128)) → tappendc50_out_gaa(node(nil, T127, T128), T129, node(node(nil, T129, nil), T127, T128))
tappendc50_in_gaa(node(T142, T143, nil), T144, node(T142, T143, node(nil, T144, nil))) → tappendc50_out_gaa(node(T142, T143, nil), T144, node(T142, T143, node(nil, T144, nil)))
tappendc50_in_gaa(node(T165, T162, T163), T166, node(X370, T162, T163)) → U35_gaa(T165, T162, T163, T166, X370, tappendc50_in_gaa(T165, T166, X370))
tappendc50_in_gaa(node(T177, T178, T181), T182, node(T177, T178, X395)) → U36_gaa(T177, T178, T181, T182, X395, tappendc50_in_gaa(T181, T182, X395))
U36_gaa(T177, T178, T181, T182, X395, tappendc50_out_gaa(T181, T182, X395)) → tappendc50_out_gaa(node(T177, T178, T181), T182, node(T177, T178, X395))
U35_gaa(T165, T162, T163, T166, X370, tappendc50_out_gaa(T165, T166, X370)) → tappendc50_out_gaa(node(T165, T162, T163), T166, node(X370, T162, T163))
U41_gaaa(T106, X295, T107, X296, tappendc50_out_gaa(T106, T107, X296)) → tappendc34_out_gaaa(T106, X295, T107, node(X296, X295, T106))
tappendc34_in_gaaa(T195, X424, T196, node(T195, X424, X425)) → U42_gaaa(T195, X424, T196, X425, tappendc50_in_gaa(T195, T196, X425))
U42_gaaa(T195, X424, T196, X425, tappendc50_out_gaa(T195, T196, X425)) → tappendc34_out_gaaa(T195, X424, T196, node(T195, X424, X425))

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
s2t9_in_ga(x1, x2)  =  s2t9_in_ga(x1)
node(x1, x2, x3)  =  node(x1, x3)
s2tc9_in_ga(x1, x2)  =  s2tc9_in_ga(x1)
U32_ga(x1, x2, x3, x4)  =  U32_ga(x1, x4)
U33_ga(x1, x2, x3, x4)  =  U33_ga(x1, x4)
U34_ga(x1, x2, x3, x4)  =  U34_ga(x1, x4)
s2tc9_out_ga(x1, x2)  =  s2tc9_out_ga(x1, x2)
0  =  0
p33_in_gaaaa(x1, x2, x3, x4, x5)  =  p33_in_gaaaa(x1)
tappend50_in_gaa(x1, x2, x3)  =  tappend50_in_gaa(x1)
tappendc34_in_gaaa(x1, x2, x3, x4)  =  tappendc34_in_gaaa(x1)
nil  =  nil
tappendc34_out_gaaa(x1, x2, x3, x4)  =  tappendc34_out_gaaa(x1, x4)
U41_gaaa(x1, x2, x3, x4, x5)  =  U41_gaaa(x1, x5)
tappendc50_in_gaa(x1, x2, x3)  =  tappendc50_in_gaa(x1)
tappendc50_out_gaa(x1, x2, x3)  =  tappendc50_out_gaa(x1, x3)
U35_gaa(x1, x2, x3, x4, x5, x6)  =  U35_gaa(x1, x3, x6)
U36_gaa(x1, x2, x3, x4, x5, x6)  =  U36_gaa(x1, x3, x6)
U42_gaaa(x1, x2, x3, x4, x5)  =  U42_gaaa(x1, x5)
tlast35_in_ag(x1, x2)  =  tlast35_in_ag(x2)
GOAL1_IN_GAA(x1, x2, x3)  =  GOAL1_IN_GAA(x1)
U12_GAA(x1, x2, x3, x4)  =  U12_GAA(x1, x4)
S2T9_IN_GA(x1, x2)  =  S2T9_IN_GA(x1)
U1_GA(x1, x2, x3, x4)  =  U1_GA(x1, x4)
U2_GA(x1, x2, x3, x4)  =  U2_GA(x1, x4)
U3_GA(x1, x2, x3, x4)  =  U3_GA(x1, x4)
U13_GAA(x1, x2, x3, x4)  =  U13_GAA(x1, x4)
U14_GAA(x1, x2, x3, x4)  =  U14_GAA(x1, x4)
P33_IN_GAAAA(x1, x2, x3, x4, x5)  =  P33_IN_GAAAA(x1)
U8_GAAAA(x1, x2, x3, x4, x5, x6)  =  U8_GAAAA(x1, x6)
TAPPEND50_IN_GAA(x1, x2, x3)  =  TAPPEND50_IN_GAA(x1)
U4_GAA(x1, x2, x3, x4, x5, x6)  =  U4_GAA(x1, x3, x6)
U5_GAA(x1, x2, x3, x4, x5, x6)  =  U5_GAA(x1, x3, x6)
U9_GAAAA(x1, x2, x3, x4, x5, x6)  =  U9_GAAAA(x1, x6)
U10_GAAAA(x1, x2, x3, x4, x5, x6)  =  U10_GAAAA(x1, x6)
U11_GAAAA(x1, x2, x3, x4, x5, x6)  =  U11_GAAAA(x1, x4, x6)
TLAST35_IN_AG(x1, x2)  =  TLAST35_IN_AG(x2)
U6_AG(x1, x2, x3, x4, x5)  =  U6_AG(x2, x4, x5)
U7_AG(x1, x2, x3, x4, x5)  =  U7_AG(x2, x4, x5)
U15_GAA(x1, x2, x3, x4)  =  U15_GAA(x1, x4)
U16_GAA(x1, x2, x3, x4)  =  U16_GAA(x1, x4)
U17_GAA(x1, x2, x3, x4)  =  U17_GAA(x1, x4)
U18_GAA(x1, x2, x3, x4)  =  U18_GAA(x1, x4)
U19_GAA(x1, x2, x3, x4)  =  U19_GAA(x1, x4)
U20_GAA(x1, x2, x3, x4)  =  U20_GAA(x1, x4)
U21_GAA(x1, x2, x3, x4)  =  U21_GAA(x1, x4)
U22_GAA(x1, x2, x3, x4)  =  U22_GAA(x1, x4)
U23_GAA(x1, x2, x3, x4)  =  U23_GAA(x1, x4)
U24_GAA(x1, x2, x3, x4)  =  U24_GAA(x1, x4)
U25_GAA(x1, x2, x3, x4)  =  U25_GAA(x1, x4)
U26_GAA(x1, x2, x3, x4)  =  U26_GAA(x1, x4)
U27_GAA(x1, x2, x3, x4)  =  U27_GAA(x1, x4)
U28_GAA(x1, x2, x3)  =  U28_GAA(x3)
U29_GAA(x1, x2, x3)  =  U29_GAA(x3)
U30_GAA(x1, x2, x3)  =  U30_GAA(x3)

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

(5) DependencyGraphProof (EQUIVALENT transformation)

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

(6) Complex Obligation (AND)

(7) Obligation:

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

TLAST35_IN_AG(T242, node(T239, T240, T243)) → TLAST35_IN_AG(T242, T243)
TLAST35_IN_AG(T226, node(T227, T224, T225)) → TLAST35_IN_AG(T226, T227)

The TRS R consists of the following rules:

s2tc9_in_ga(s(T27), node(X69, X70, X69)) → U32_ga(T27, X69, X70, s2tc9_in_ga(T27, X69))
s2tc9_in_ga(s(T33), node(nil, X102, X103)) → U33_ga(T33, X102, X103, s2tc9_in_ga(T33, X103))
s2tc9_in_ga(s(T39), node(X135, X136, nil)) → U34_ga(T39, X135, X136, s2tc9_in_ga(T39, X135))
s2tc9_in_ga(s(T45), node(nil, X159, nil)) → s2tc9_out_ga(s(T45), node(nil, X159, nil))
s2tc9_in_ga(0, nil) → s2tc9_out_ga(0, nil)
U34_ga(T39, X135, X136, s2tc9_out_ga(T39, X135)) → s2tc9_out_ga(s(T39), node(X135, X136, nil))
U33_ga(T33, X102, X103, s2tc9_out_ga(T33, X103)) → s2tc9_out_ga(s(T33), node(nil, X102, X103))
U32_ga(T27, X69, X70, s2tc9_out_ga(T27, X69)) → s2tc9_out_ga(s(T27), node(X69, X70, X69))
tappendc34_in_gaaa(nil, X231, T77, node(node(nil, T77, nil), X231, nil)) → tappendc34_out_gaaa(nil, X231, T77, node(node(nil, T77, nil), X231, nil))
tappendc34_in_gaaa(nil, X254, T87, node(nil, X254, node(nil, T87, nil))) → tappendc34_out_gaaa(nil, X254, T87, node(nil, X254, node(nil, T87, nil)))
tappendc34_in_gaaa(T106, X295, T107, node(X296, X295, T106)) → U41_gaaa(T106, X295, T107, X296, tappendc50_in_gaa(T106, T107, X296))
tappendc50_in_gaa(nil, T114, node(nil, T114, nil)) → tappendc50_out_gaa(nil, T114, node(nil, T114, nil))
tappendc50_in_gaa(node(nil, T127, T128), T129, node(node(nil, T129, nil), T127, T128)) → tappendc50_out_gaa(node(nil, T127, T128), T129, node(node(nil, T129, nil), T127, T128))
tappendc50_in_gaa(node(T142, T143, nil), T144, node(T142, T143, node(nil, T144, nil))) → tappendc50_out_gaa(node(T142, T143, nil), T144, node(T142, T143, node(nil, T144, nil)))
tappendc50_in_gaa(node(T165, T162, T163), T166, node(X370, T162, T163)) → U35_gaa(T165, T162, T163, T166, X370, tappendc50_in_gaa(T165, T166, X370))
tappendc50_in_gaa(node(T177, T178, T181), T182, node(T177, T178, X395)) → U36_gaa(T177, T178, T181, T182, X395, tappendc50_in_gaa(T181, T182, X395))
U36_gaa(T177, T178, T181, T182, X395, tappendc50_out_gaa(T181, T182, X395)) → tappendc50_out_gaa(node(T177, T178, T181), T182, node(T177, T178, X395))
U35_gaa(T165, T162, T163, T166, X370, tappendc50_out_gaa(T165, T166, X370)) → tappendc50_out_gaa(node(T165, T162, T163), T166, node(X370, T162, T163))
U41_gaaa(T106, X295, T107, X296, tappendc50_out_gaa(T106, T107, X296)) → tappendc34_out_gaaa(T106, X295, T107, node(X296, X295, T106))
tappendc34_in_gaaa(T195, X424, T196, node(T195, X424, X425)) → U42_gaaa(T195, X424, T196, X425, tappendc50_in_gaa(T195, T196, X425))
U42_gaaa(T195, X424, T196, X425, tappendc50_out_gaa(T195, T196, X425)) → tappendc34_out_gaaa(T195, X424, T196, node(T195, X424, X425))

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
node(x1, x2, x3)  =  node(x1, x3)
s2tc9_in_ga(x1, x2)  =  s2tc9_in_ga(x1)
U32_ga(x1, x2, x3, x4)  =  U32_ga(x1, x4)
U33_ga(x1, x2, x3, x4)  =  U33_ga(x1, x4)
U34_ga(x1, x2, x3, x4)  =  U34_ga(x1, x4)
s2tc9_out_ga(x1, x2)  =  s2tc9_out_ga(x1, x2)
0  =  0
tappendc34_in_gaaa(x1, x2, x3, x4)  =  tappendc34_in_gaaa(x1)
nil  =  nil
tappendc34_out_gaaa(x1, x2, x3, x4)  =  tappendc34_out_gaaa(x1, x4)
U41_gaaa(x1, x2, x3, x4, x5)  =  U41_gaaa(x1, x5)
tappendc50_in_gaa(x1, x2, x3)  =  tappendc50_in_gaa(x1)
tappendc50_out_gaa(x1, x2, x3)  =  tappendc50_out_gaa(x1, x3)
U35_gaa(x1, x2, x3, x4, x5, x6)  =  U35_gaa(x1, x3, x6)
U36_gaa(x1, x2, x3, x4, x5, x6)  =  U36_gaa(x1, x3, x6)
U42_gaaa(x1, x2, x3, x4, x5)  =  U42_gaaa(x1, x5)
TLAST35_IN_AG(x1, x2)  =  TLAST35_IN_AG(x2)

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

(8) UsableRulesProof (EQUIVALENT transformation)

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

(9) Obligation:

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

TLAST35_IN_AG(T242, node(T239, T240, T243)) → TLAST35_IN_AG(T242, T243)
TLAST35_IN_AG(T226, node(T227, T224, T225)) → TLAST35_IN_AG(T226, T227)

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

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

(10) PiDPToQDPProof (SOUND transformation)

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

(11) Obligation:

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

TLAST35_IN_AG(node(T239, T243)) → TLAST35_IN_AG(T243)
TLAST35_IN_AG(node(T227, T225)) → TLAST35_IN_AG(T227)

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

(12) QDPSizeChangeProof (EQUIVALENT transformation)

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

From the DPs we obtained the following set of size-change graphs:

  • TLAST35_IN_AG(node(T239, T243)) → TLAST35_IN_AG(T243)
    The graph contains the following edges 1 > 1

  • TLAST35_IN_AG(node(T227, T225)) → TLAST35_IN_AG(T227)
    The graph contains the following edges 1 > 1

(13) YES

(14) Obligation:

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

TAPPEND50_IN_GAA(node(T177, T178, T181), T182, node(T177, T178, X395)) → TAPPEND50_IN_GAA(T181, T182, X395)
TAPPEND50_IN_GAA(node(T165, T162, T163), T166, node(X370, T162, T163)) → TAPPEND50_IN_GAA(T165, T166, X370)

The TRS R consists of the following rules:

s2tc9_in_ga(s(T27), node(X69, X70, X69)) → U32_ga(T27, X69, X70, s2tc9_in_ga(T27, X69))
s2tc9_in_ga(s(T33), node(nil, X102, X103)) → U33_ga(T33, X102, X103, s2tc9_in_ga(T33, X103))
s2tc9_in_ga(s(T39), node(X135, X136, nil)) → U34_ga(T39, X135, X136, s2tc9_in_ga(T39, X135))
s2tc9_in_ga(s(T45), node(nil, X159, nil)) → s2tc9_out_ga(s(T45), node(nil, X159, nil))
s2tc9_in_ga(0, nil) → s2tc9_out_ga(0, nil)
U34_ga(T39, X135, X136, s2tc9_out_ga(T39, X135)) → s2tc9_out_ga(s(T39), node(X135, X136, nil))
U33_ga(T33, X102, X103, s2tc9_out_ga(T33, X103)) → s2tc9_out_ga(s(T33), node(nil, X102, X103))
U32_ga(T27, X69, X70, s2tc9_out_ga(T27, X69)) → s2tc9_out_ga(s(T27), node(X69, X70, X69))
tappendc34_in_gaaa(nil, X231, T77, node(node(nil, T77, nil), X231, nil)) → tappendc34_out_gaaa(nil, X231, T77, node(node(nil, T77, nil), X231, nil))
tappendc34_in_gaaa(nil, X254, T87, node(nil, X254, node(nil, T87, nil))) → tappendc34_out_gaaa(nil, X254, T87, node(nil, X254, node(nil, T87, nil)))
tappendc34_in_gaaa(T106, X295, T107, node(X296, X295, T106)) → U41_gaaa(T106, X295, T107, X296, tappendc50_in_gaa(T106, T107, X296))
tappendc50_in_gaa(nil, T114, node(nil, T114, nil)) → tappendc50_out_gaa(nil, T114, node(nil, T114, nil))
tappendc50_in_gaa(node(nil, T127, T128), T129, node(node(nil, T129, nil), T127, T128)) → tappendc50_out_gaa(node(nil, T127, T128), T129, node(node(nil, T129, nil), T127, T128))
tappendc50_in_gaa(node(T142, T143, nil), T144, node(T142, T143, node(nil, T144, nil))) → tappendc50_out_gaa(node(T142, T143, nil), T144, node(T142, T143, node(nil, T144, nil)))
tappendc50_in_gaa(node(T165, T162, T163), T166, node(X370, T162, T163)) → U35_gaa(T165, T162, T163, T166, X370, tappendc50_in_gaa(T165, T166, X370))
tappendc50_in_gaa(node(T177, T178, T181), T182, node(T177, T178, X395)) → U36_gaa(T177, T178, T181, T182, X395, tappendc50_in_gaa(T181, T182, X395))
U36_gaa(T177, T178, T181, T182, X395, tappendc50_out_gaa(T181, T182, X395)) → tappendc50_out_gaa(node(T177, T178, T181), T182, node(T177, T178, X395))
U35_gaa(T165, T162, T163, T166, X370, tappendc50_out_gaa(T165, T166, X370)) → tappendc50_out_gaa(node(T165, T162, T163), T166, node(X370, T162, T163))
U41_gaaa(T106, X295, T107, X296, tappendc50_out_gaa(T106, T107, X296)) → tappendc34_out_gaaa(T106, X295, T107, node(X296, X295, T106))
tappendc34_in_gaaa(T195, X424, T196, node(T195, X424, X425)) → U42_gaaa(T195, X424, T196, X425, tappendc50_in_gaa(T195, T196, X425))
U42_gaaa(T195, X424, T196, X425, tappendc50_out_gaa(T195, T196, X425)) → tappendc34_out_gaaa(T195, X424, T196, node(T195, X424, X425))

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
node(x1, x2, x3)  =  node(x1, x3)
s2tc9_in_ga(x1, x2)  =  s2tc9_in_ga(x1)
U32_ga(x1, x2, x3, x4)  =  U32_ga(x1, x4)
U33_ga(x1, x2, x3, x4)  =  U33_ga(x1, x4)
U34_ga(x1, x2, x3, x4)  =  U34_ga(x1, x4)
s2tc9_out_ga(x1, x2)  =  s2tc9_out_ga(x1, x2)
0  =  0
tappendc34_in_gaaa(x1, x2, x3, x4)  =  tappendc34_in_gaaa(x1)
nil  =  nil
tappendc34_out_gaaa(x1, x2, x3, x4)  =  tappendc34_out_gaaa(x1, x4)
U41_gaaa(x1, x2, x3, x4, x5)  =  U41_gaaa(x1, x5)
tappendc50_in_gaa(x1, x2, x3)  =  tappendc50_in_gaa(x1)
tappendc50_out_gaa(x1, x2, x3)  =  tappendc50_out_gaa(x1, x3)
U35_gaa(x1, x2, x3, x4, x5, x6)  =  U35_gaa(x1, x3, x6)
U36_gaa(x1, x2, x3, x4, x5, x6)  =  U36_gaa(x1, x3, x6)
U42_gaaa(x1, x2, x3, x4, x5)  =  U42_gaaa(x1, x5)
TAPPEND50_IN_GAA(x1, x2, x3)  =  TAPPEND50_IN_GAA(x1)

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

(15) UsableRulesProof (EQUIVALENT transformation)

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

(16) Obligation:

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

TAPPEND50_IN_GAA(node(T177, T178, T181), T182, node(T177, T178, X395)) → TAPPEND50_IN_GAA(T181, T182, X395)
TAPPEND50_IN_GAA(node(T165, T162, T163), T166, node(X370, T162, T163)) → TAPPEND50_IN_GAA(T165, T166, X370)

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

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

(17) PiDPToQDPProof (SOUND transformation)

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

(18) Obligation:

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

TAPPEND50_IN_GAA(node(T177, T181)) → TAPPEND50_IN_GAA(T181)
TAPPEND50_IN_GAA(node(T165, T163)) → TAPPEND50_IN_GAA(T165)

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

(19) QDPSizeChangeProof (EQUIVALENT transformation)

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

From the DPs we obtained the following set of size-change graphs:

  • TAPPEND50_IN_GAA(node(T177, T181)) → TAPPEND50_IN_GAA(T181)
    The graph contains the following edges 1 > 1

  • TAPPEND50_IN_GAA(node(T165, T163)) → TAPPEND50_IN_GAA(T165)
    The graph contains the following edges 1 > 1

(20) YES

(21) Obligation:

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

S2T9_IN_GA(s(T33), node(nil, X102, X103)) → S2T9_IN_GA(T33, X103)
S2T9_IN_GA(s(T27), node(X69, X70, X69)) → S2T9_IN_GA(T27, X69)
S2T9_IN_GA(s(T39), node(X135, X136, nil)) → S2T9_IN_GA(T39, X135)

The TRS R consists of the following rules:

s2tc9_in_ga(s(T27), node(X69, X70, X69)) → U32_ga(T27, X69, X70, s2tc9_in_ga(T27, X69))
s2tc9_in_ga(s(T33), node(nil, X102, X103)) → U33_ga(T33, X102, X103, s2tc9_in_ga(T33, X103))
s2tc9_in_ga(s(T39), node(X135, X136, nil)) → U34_ga(T39, X135, X136, s2tc9_in_ga(T39, X135))
s2tc9_in_ga(s(T45), node(nil, X159, nil)) → s2tc9_out_ga(s(T45), node(nil, X159, nil))
s2tc9_in_ga(0, nil) → s2tc9_out_ga(0, nil)
U34_ga(T39, X135, X136, s2tc9_out_ga(T39, X135)) → s2tc9_out_ga(s(T39), node(X135, X136, nil))
U33_ga(T33, X102, X103, s2tc9_out_ga(T33, X103)) → s2tc9_out_ga(s(T33), node(nil, X102, X103))
U32_ga(T27, X69, X70, s2tc9_out_ga(T27, X69)) → s2tc9_out_ga(s(T27), node(X69, X70, X69))
tappendc34_in_gaaa(nil, X231, T77, node(node(nil, T77, nil), X231, nil)) → tappendc34_out_gaaa(nil, X231, T77, node(node(nil, T77, nil), X231, nil))
tappendc34_in_gaaa(nil, X254, T87, node(nil, X254, node(nil, T87, nil))) → tappendc34_out_gaaa(nil, X254, T87, node(nil, X254, node(nil, T87, nil)))
tappendc34_in_gaaa(T106, X295, T107, node(X296, X295, T106)) → U41_gaaa(T106, X295, T107, X296, tappendc50_in_gaa(T106, T107, X296))
tappendc50_in_gaa(nil, T114, node(nil, T114, nil)) → tappendc50_out_gaa(nil, T114, node(nil, T114, nil))
tappendc50_in_gaa(node(nil, T127, T128), T129, node(node(nil, T129, nil), T127, T128)) → tappendc50_out_gaa(node(nil, T127, T128), T129, node(node(nil, T129, nil), T127, T128))
tappendc50_in_gaa(node(T142, T143, nil), T144, node(T142, T143, node(nil, T144, nil))) → tappendc50_out_gaa(node(T142, T143, nil), T144, node(T142, T143, node(nil, T144, nil)))
tappendc50_in_gaa(node(T165, T162, T163), T166, node(X370, T162, T163)) → U35_gaa(T165, T162, T163, T166, X370, tappendc50_in_gaa(T165, T166, X370))
tappendc50_in_gaa(node(T177, T178, T181), T182, node(T177, T178, X395)) → U36_gaa(T177, T178, T181, T182, X395, tappendc50_in_gaa(T181, T182, X395))
U36_gaa(T177, T178, T181, T182, X395, tappendc50_out_gaa(T181, T182, X395)) → tappendc50_out_gaa(node(T177, T178, T181), T182, node(T177, T178, X395))
U35_gaa(T165, T162, T163, T166, X370, tappendc50_out_gaa(T165, T166, X370)) → tappendc50_out_gaa(node(T165, T162, T163), T166, node(X370, T162, T163))
U41_gaaa(T106, X295, T107, X296, tappendc50_out_gaa(T106, T107, X296)) → tappendc34_out_gaaa(T106, X295, T107, node(X296, X295, T106))
tappendc34_in_gaaa(T195, X424, T196, node(T195, X424, X425)) → U42_gaaa(T195, X424, T196, X425, tappendc50_in_gaa(T195, T196, X425))
U42_gaaa(T195, X424, T196, X425, tappendc50_out_gaa(T195, T196, X425)) → tappendc34_out_gaaa(T195, X424, T196, node(T195, X424, X425))

The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
node(x1, x2, x3)  =  node(x1, x3)
s2tc9_in_ga(x1, x2)  =  s2tc9_in_ga(x1)
U32_ga(x1, x2, x3, x4)  =  U32_ga(x1, x4)
U33_ga(x1, x2, x3, x4)  =  U33_ga(x1, x4)
U34_ga(x1, x2, x3, x4)  =  U34_ga(x1, x4)
s2tc9_out_ga(x1, x2)  =  s2tc9_out_ga(x1, x2)
0  =  0
tappendc34_in_gaaa(x1, x2, x3, x4)  =  tappendc34_in_gaaa(x1)
nil  =  nil
tappendc34_out_gaaa(x1, x2, x3, x4)  =  tappendc34_out_gaaa(x1, x4)
U41_gaaa(x1, x2, x3, x4, x5)  =  U41_gaaa(x1, x5)
tappendc50_in_gaa(x1, x2, x3)  =  tappendc50_in_gaa(x1)
tappendc50_out_gaa(x1, x2, x3)  =  tappendc50_out_gaa(x1, x3)
U35_gaa(x1, x2, x3, x4, x5, x6)  =  U35_gaa(x1, x3, x6)
U36_gaa(x1, x2, x3, x4, x5, x6)  =  U36_gaa(x1, x3, x6)
U42_gaaa(x1, x2, x3, x4, x5)  =  U42_gaaa(x1, x5)
S2T9_IN_GA(x1, x2)  =  S2T9_IN_GA(x1)

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

(22) UsableRulesProof (EQUIVALENT transformation)

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

(23) Obligation:

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

S2T9_IN_GA(s(T33), node(nil, X102, X103)) → S2T9_IN_GA(T33, X103)
S2T9_IN_GA(s(T27), node(X69, X70, X69)) → S2T9_IN_GA(T27, X69)
S2T9_IN_GA(s(T39), node(X135, X136, nil)) → S2T9_IN_GA(T39, X135)

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

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

(24) PiDPToQDPProof (SOUND transformation)

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

(25) Obligation:

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

S2T9_IN_GA(s(T33)) → S2T9_IN_GA(T33)

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

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

  • S2T9_IN_GA(s(T33)) → S2T9_IN_GA(T33)
    The graph contains the following edges 1 > 1

(27) YES