(0) Obligation:

Clauses:

palindrome(L) :- ','(halves(L, X1s, X2s, EvenOdd), ','(eq(EvenOdd, even), eq(X1s, X2s))).
palindrome(L) :- ','(halves(L, X1s, X2s, EvenOdd), ','(eq(EvenOdd, odd), last(X1s, X1, X2s))).
halves([], [], [], even).
halves(.(X, []), .(X, []), [], odd).
halves(.(T, .(Y, Xs)), .(T, Ts), .(R, Rs), EvenOdd) :- ','(last(.(Y, Xs), R, Rests), halves(Rests, Ts, Rs, EvenOdd)).
last(.(T, []), T, []).
last(.(H, T), X, .(H, M)) :- last(T, X, M).
eq(X, X).

Query: palindrome(g)

(1) PrologToPiTRSViaGraphTransformerProof (SOUND transformation)

Transformed Prolog program to (Pi-)TRS.

(2) Obligation:

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

palindromeA_in_g([]) → palindromeA_out_g([])
palindromeA_in_g(.(T21, .(T22, T23))) → U1_g(T21, T22, T23, pB_in_ggaaaaag(T22, T23, X74, X72, X73, X75, X76, T21))
pB_in_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21) → U8_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, lastE_in_ggaa(T22, T23, T26, T27))
lastE_in_ggaa(T34, [], T34, []) → lastE_out_ggaa(T34, [], T34, [])
lastE_in_ggaa(T41, T42, X104, .(T41, X105)) → U4_ggaa(T41, T42, X104, X105, lastD_in_gaa(T42, X104, X105))
lastD_in_gaa(.(T49, []), T49, []) → lastD_out_gaa(.(T49, []), T49, [])
lastD_in_gaa(.(T54, T55), X129, .(T54, X130)) → U3_gaa(T54, T55, X129, X130, lastD_in_gaa(T55, X129, X130))
U3_gaa(T54, T55, X129, X130, lastD_out_gaa(T55, X129, X130)) → lastD_out_gaa(.(T54, T55), X129, .(T54, X130))
U4_ggaa(T41, T42, X104, X105, lastD_out_gaa(T42, X104, X105)) → lastE_out_ggaa(T41, T42, X104, .(T41, X105))
U8_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, lastE_out_ggaa(T22, T23, T26, T27)) → U9_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, pK_in_gaaagg(T27, X73, X75, X76, T21, T26))
pK_in_gaaagg(T27, T58, T59, T60, T21, T26) → U10_gaaagg(T27, T58, T59, T60, T21, T26, halvesF_in_gaaa(T27, T58, T59, T60))
halvesF_in_gaaa([], [], [], even) → halvesF_out_gaaa([], [], [], even)
halvesF_in_gaaa(.(T65, []), .(T65, []), [], odd) → halvesF_out_gaaa(.(T65, []), .(T65, []), [], odd)
halvesF_in_gaaa(.(T72, .(T73, T74)), .(T72, X169), .(X170, X171), X172) → U5_gaaa(T72, T73, T74, X169, X170, X171, X172, pG_in_ggaaaaa(T73, T74, X170, X168, X169, X171, X172))
pG_in_ggaaaaa(T73, T74, T77, T78, X169, X171, X172) → U12_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, lastE_in_ggaa(T73, T74, T77, T78))
U12_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, lastE_out_ggaa(T73, T74, T77, T78)) → U13_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, halvesF_in_gaaa(T78, X169, X171, X172))
U13_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, halvesF_out_gaaa(T78, X169, X171, X172)) → pG_out_ggaaaaa(T73, T74, T77, T78, X169, X171, X172)
U5_gaaa(T72, T73, T74, X169, X170, X171, X172, pG_out_ggaaaaa(T73, T74, X170, X168, X169, X171, X172)) → halvesF_out_gaaa(.(T72, .(T73, T74)), .(T72, X169), .(X170, X171), X172)
U10_gaaagg(T27, T58, T59, T60, T21, T26, halvesF_out_gaaa(T27, T58, T59, T60)) → U11_gaaagg(T27, T58, T59, T60, T21, T26, pI_in_ggggg(T60, T21, T58, T26, T59))
pI_in_ggggg(even, T88, T89, T88, T89) → pI_out_ggggg(even, T88, T89, T88, T89)
U11_gaaagg(T27, T58, T59, T60, T21, T26, pI_out_ggggg(T60, T21, T58, T26, T59)) → pK_out_gaaagg(T27, T58, T59, T60, T21, T26)
U9_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, pK_out_gaaagg(T27, X73, X75, X76, T21, T26)) → pB_out_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21)
U1_g(T21, T22, T23, pB_out_ggaaaaag(T22, T23, X74, X72, X73, X75, X76, T21)) → palindromeA_out_g(.(T21, .(T22, T23)))
palindromeA_in_g(T92) → U2_g(T92, pC_in_gaaaa(T92, X190, X191, X192, X193))
pC_in_gaaaa(T92, T93, T94, T95, X193) → U14_gaaaa(T92, T93, T94, T95, X193, halvesF_in_gaaa(T92, T93, T94, T95))
U14_gaaaa(T92, T93, T94, T95, X193, halvesF_out_gaaa(T92, T93, T94, T95)) → U15_gaaaa(T92, T93, T94, T95, X193, pJ_in_ggag(T95, T93, X193, T94))
pJ_in_ggag(odd, T93, X193, T94) → U7_ggag(T93, X193, T94, lastH_in_gag(T93, X193, T94))
lastH_in_gag(.(T107, []), T107, []) → lastH_out_gag(.(T107, []), T107, [])
lastH_in_gag(.(T114, T115), X220, .(T114, T116)) → U6_gag(T114, T115, X220, T116, lastH_in_gag(T115, X220, T116))
U6_gag(T114, T115, X220, T116, lastH_out_gag(T115, X220, T116)) → lastH_out_gag(.(T114, T115), X220, .(T114, T116))
U7_ggag(T93, X193, T94, lastH_out_gag(T93, X193, T94)) → pJ_out_ggag(odd, T93, X193, T94)
U15_gaaaa(T92, T93, T94, T95, X193, pJ_out_ggag(T95, T93, X193, T94)) → pC_out_gaaaa(T92, T93, T94, T95, X193)
U2_g(T92, pC_out_gaaaa(T92, X190, X191, X192, X193)) → palindromeA_out_g(T92)

The argument filtering Pi contains the following mapping:
palindromeA_in_g(x1)  =  palindromeA_in_g(x1)
[]  =  []
palindromeA_out_g(x1)  =  palindromeA_out_g(x1)
.(x1, x2)  =  .(x1, x2)
U1_g(x1, x2, x3, x4)  =  U1_g(x1, x2, x3, x4)
pB_in_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8)  =  pB_in_ggaaaaag(x1, x2, x8)
U8_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U8_ggaaaaag(x1, x2, x8, x9)
lastE_in_ggaa(x1, x2, x3, x4)  =  lastE_in_ggaa(x1, x2)
lastE_out_ggaa(x1, x2, x3, x4)  =  lastE_out_ggaa(x1, x2, x3, x4)
U4_ggaa(x1, x2, x3, x4, x5)  =  U4_ggaa(x1, x2, x5)
lastD_in_gaa(x1, x2, x3)  =  lastD_in_gaa(x1)
lastD_out_gaa(x1, x2, x3)  =  lastD_out_gaa(x1, x2, x3)
U3_gaa(x1, x2, x3, x4, x5)  =  U3_gaa(x1, x2, x5)
U9_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U9_ggaaaaag(x1, x2, x3, x4, x8, x9)
pK_in_gaaagg(x1, x2, x3, x4, x5, x6)  =  pK_in_gaaagg(x1, x5, x6)
U10_gaaagg(x1, x2, x3, x4, x5, x6, x7)  =  U10_gaaagg(x1, x5, x6, x7)
halvesF_in_gaaa(x1, x2, x3, x4)  =  halvesF_in_gaaa(x1)
halvesF_out_gaaa(x1, x2, x3, x4)  =  halvesF_out_gaaa(x1, x2, x3, x4)
U5_gaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  U5_gaaa(x1, x2, x3, x8)
pG_in_ggaaaaa(x1, x2, x3, x4, x5, x6, x7)  =  pG_in_ggaaaaa(x1, x2)
U12_ggaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  U12_ggaaaaa(x1, x2, x8)
U13_ggaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  U13_ggaaaaa(x1, x2, x3, x4, x8)
pG_out_ggaaaaa(x1, x2, x3, x4, x5, x6, x7)  =  pG_out_ggaaaaa(x1, x2, x3, x4, x5, x6, x7)
U11_gaaagg(x1, x2, x3, x4, x5, x6, x7)  =  U11_gaaagg(x1, x2, x3, x4, x5, x6, x7)
pI_in_ggggg(x1, x2, x3, x4, x5)  =  pI_in_ggggg(x1, x2, x3, x4, x5)
even  =  even
pI_out_ggggg(x1, x2, x3, x4, x5)  =  pI_out_ggggg(x1, x2, x3, x4, x5)
pK_out_gaaagg(x1, x2, x3, x4, x5, x6)  =  pK_out_gaaagg(x1, x2, x3, x4, x5, x6)
pB_out_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8)  =  pB_out_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8)
U2_g(x1, x2)  =  U2_g(x1, x2)
pC_in_gaaaa(x1, x2, x3, x4, x5)  =  pC_in_gaaaa(x1)
U14_gaaaa(x1, x2, x3, x4, x5, x6)  =  U14_gaaaa(x1, x6)
U15_gaaaa(x1, x2, x3, x4, x5, x6)  =  U15_gaaaa(x1, x2, x3, x4, x6)
pJ_in_ggag(x1, x2, x3, x4)  =  pJ_in_ggag(x1, x2, x4)
odd  =  odd
U7_ggag(x1, x2, x3, x4)  =  U7_ggag(x1, x3, x4)
lastH_in_gag(x1, x2, x3)  =  lastH_in_gag(x1, x3)
lastH_out_gag(x1, x2, x3)  =  lastH_out_gag(x1, x2, x3)
U6_gag(x1, x2, x3, x4, x5)  =  U6_gag(x1, x2, x4, x5)
pJ_out_ggag(x1, x2, x3, x4)  =  pJ_out_ggag(x1, x2, x3, x4)
pC_out_gaaaa(x1, x2, x3, x4, x5)  =  pC_out_gaaaa(x1, x2, x3, x4, x5)

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

PALINDROMEA_IN_G(.(T21, .(T22, T23))) → U1_G(T21, T22, T23, pB_in_ggaaaaag(T22, T23, X74, X72, X73, X75, X76, T21))
PALINDROMEA_IN_G(.(T21, .(T22, T23))) → PB_IN_GGAAAAAG(T22, T23, X74, X72, X73, X75, X76, T21)
PB_IN_GGAAAAAG(T22, T23, T26, T27, X73, X75, X76, T21) → U8_GGAAAAAG(T22, T23, T26, T27, X73, X75, X76, T21, lastE_in_ggaa(T22, T23, T26, T27))
PB_IN_GGAAAAAG(T22, T23, T26, T27, X73, X75, X76, T21) → LASTE_IN_GGAA(T22, T23, T26, T27)
LASTE_IN_GGAA(T41, T42, X104, .(T41, X105)) → U4_GGAA(T41, T42, X104, X105, lastD_in_gaa(T42, X104, X105))
LASTE_IN_GGAA(T41, T42, X104, .(T41, X105)) → LASTD_IN_GAA(T42, X104, X105)
LASTD_IN_GAA(.(T54, T55), X129, .(T54, X130)) → U3_GAA(T54, T55, X129, X130, lastD_in_gaa(T55, X129, X130))
LASTD_IN_GAA(.(T54, T55), X129, .(T54, X130)) → LASTD_IN_GAA(T55, X129, X130)
U8_GGAAAAAG(T22, T23, T26, T27, X73, X75, X76, T21, lastE_out_ggaa(T22, T23, T26, T27)) → U9_GGAAAAAG(T22, T23, T26, T27, X73, X75, X76, T21, pK_in_gaaagg(T27, X73, X75, X76, T21, T26))
U8_GGAAAAAG(T22, T23, T26, T27, X73, X75, X76, T21, lastE_out_ggaa(T22, T23, T26, T27)) → PK_IN_GAAAGG(T27, X73, X75, X76, T21, T26)
PK_IN_GAAAGG(T27, T58, T59, T60, T21, T26) → U10_GAAAGG(T27, T58, T59, T60, T21, T26, halvesF_in_gaaa(T27, T58, T59, T60))
PK_IN_GAAAGG(T27, T58, T59, T60, T21, T26) → HALVESF_IN_GAAA(T27, T58, T59, T60)
HALVESF_IN_GAAA(.(T72, .(T73, T74)), .(T72, X169), .(X170, X171), X172) → U5_GAAA(T72, T73, T74, X169, X170, X171, X172, pG_in_ggaaaaa(T73, T74, X170, X168, X169, X171, X172))
HALVESF_IN_GAAA(.(T72, .(T73, T74)), .(T72, X169), .(X170, X171), X172) → PG_IN_GGAAAAA(T73, T74, X170, X168, X169, X171, X172)
PG_IN_GGAAAAA(T73, T74, T77, T78, X169, X171, X172) → U12_GGAAAAA(T73, T74, T77, T78, X169, X171, X172, lastE_in_ggaa(T73, T74, T77, T78))
PG_IN_GGAAAAA(T73, T74, T77, T78, X169, X171, X172) → LASTE_IN_GGAA(T73, T74, T77, T78)
U12_GGAAAAA(T73, T74, T77, T78, X169, X171, X172, lastE_out_ggaa(T73, T74, T77, T78)) → U13_GGAAAAA(T73, T74, T77, T78, X169, X171, X172, halvesF_in_gaaa(T78, X169, X171, X172))
U12_GGAAAAA(T73, T74, T77, T78, X169, X171, X172, lastE_out_ggaa(T73, T74, T77, T78)) → HALVESF_IN_GAAA(T78, X169, X171, X172)
U10_GAAAGG(T27, T58, T59, T60, T21, T26, halvesF_out_gaaa(T27, T58, T59, T60)) → U11_GAAAGG(T27, T58, T59, T60, T21, T26, pI_in_ggggg(T60, T21, T58, T26, T59))
U10_GAAAGG(T27, T58, T59, T60, T21, T26, halvesF_out_gaaa(T27, T58, T59, T60)) → PI_IN_GGGGG(T60, T21, T58, T26, T59)
PALINDROMEA_IN_G(T92) → U2_G(T92, pC_in_gaaaa(T92, X190, X191, X192, X193))
PALINDROMEA_IN_G(T92) → PC_IN_GAAAA(T92, X190, X191, X192, X193)
PC_IN_GAAAA(T92, T93, T94, T95, X193) → U14_GAAAA(T92, T93, T94, T95, X193, halvesF_in_gaaa(T92, T93, T94, T95))
PC_IN_GAAAA(T92, T93, T94, T95, X193) → HALVESF_IN_GAAA(T92, T93, T94, T95)
U14_GAAAA(T92, T93, T94, T95, X193, halvesF_out_gaaa(T92, T93, T94, T95)) → U15_GAAAA(T92, T93, T94, T95, X193, pJ_in_ggag(T95, T93, X193, T94))
U14_GAAAA(T92, T93, T94, T95, X193, halvesF_out_gaaa(T92, T93, T94, T95)) → PJ_IN_GGAG(T95, T93, X193, T94)
PJ_IN_GGAG(odd, T93, X193, T94) → U7_GGAG(T93, X193, T94, lastH_in_gag(T93, X193, T94))
PJ_IN_GGAG(odd, T93, X193, T94) → LASTH_IN_GAG(T93, X193, T94)
LASTH_IN_GAG(.(T114, T115), X220, .(T114, T116)) → U6_GAG(T114, T115, X220, T116, lastH_in_gag(T115, X220, T116))
LASTH_IN_GAG(.(T114, T115), X220, .(T114, T116)) → LASTH_IN_GAG(T115, X220, T116)

The TRS R consists of the following rules:

palindromeA_in_g([]) → palindromeA_out_g([])
palindromeA_in_g(.(T21, .(T22, T23))) → U1_g(T21, T22, T23, pB_in_ggaaaaag(T22, T23, X74, X72, X73, X75, X76, T21))
pB_in_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21) → U8_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, lastE_in_ggaa(T22, T23, T26, T27))
lastE_in_ggaa(T34, [], T34, []) → lastE_out_ggaa(T34, [], T34, [])
lastE_in_ggaa(T41, T42, X104, .(T41, X105)) → U4_ggaa(T41, T42, X104, X105, lastD_in_gaa(T42, X104, X105))
lastD_in_gaa(.(T49, []), T49, []) → lastD_out_gaa(.(T49, []), T49, [])
lastD_in_gaa(.(T54, T55), X129, .(T54, X130)) → U3_gaa(T54, T55, X129, X130, lastD_in_gaa(T55, X129, X130))
U3_gaa(T54, T55, X129, X130, lastD_out_gaa(T55, X129, X130)) → lastD_out_gaa(.(T54, T55), X129, .(T54, X130))
U4_ggaa(T41, T42, X104, X105, lastD_out_gaa(T42, X104, X105)) → lastE_out_ggaa(T41, T42, X104, .(T41, X105))
U8_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, lastE_out_ggaa(T22, T23, T26, T27)) → U9_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, pK_in_gaaagg(T27, X73, X75, X76, T21, T26))
pK_in_gaaagg(T27, T58, T59, T60, T21, T26) → U10_gaaagg(T27, T58, T59, T60, T21, T26, halvesF_in_gaaa(T27, T58, T59, T60))
halvesF_in_gaaa([], [], [], even) → halvesF_out_gaaa([], [], [], even)
halvesF_in_gaaa(.(T65, []), .(T65, []), [], odd) → halvesF_out_gaaa(.(T65, []), .(T65, []), [], odd)
halvesF_in_gaaa(.(T72, .(T73, T74)), .(T72, X169), .(X170, X171), X172) → U5_gaaa(T72, T73, T74, X169, X170, X171, X172, pG_in_ggaaaaa(T73, T74, X170, X168, X169, X171, X172))
pG_in_ggaaaaa(T73, T74, T77, T78, X169, X171, X172) → U12_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, lastE_in_ggaa(T73, T74, T77, T78))
U12_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, lastE_out_ggaa(T73, T74, T77, T78)) → U13_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, halvesF_in_gaaa(T78, X169, X171, X172))
U13_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, halvesF_out_gaaa(T78, X169, X171, X172)) → pG_out_ggaaaaa(T73, T74, T77, T78, X169, X171, X172)
U5_gaaa(T72, T73, T74, X169, X170, X171, X172, pG_out_ggaaaaa(T73, T74, X170, X168, X169, X171, X172)) → halvesF_out_gaaa(.(T72, .(T73, T74)), .(T72, X169), .(X170, X171), X172)
U10_gaaagg(T27, T58, T59, T60, T21, T26, halvesF_out_gaaa(T27, T58, T59, T60)) → U11_gaaagg(T27, T58, T59, T60, T21, T26, pI_in_ggggg(T60, T21, T58, T26, T59))
pI_in_ggggg(even, T88, T89, T88, T89) → pI_out_ggggg(even, T88, T89, T88, T89)
U11_gaaagg(T27, T58, T59, T60, T21, T26, pI_out_ggggg(T60, T21, T58, T26, T59)) → pK_out_gaaagg(T27, T58, T59, T60, T21, T26)
U9_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, pK_out_gaaagg(T27, X73, X75, X76, T21, T26)) → pB_out_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21)
U1_g(T21, T22, T23, pB_out_ggaaaaag(T22, T23, X74, X72, X73, X75, X76, T21)) → palindromeA_out_g(.(T21, .(T22, T23)))
palindromeA_in_g(T92) → U2_g(T92, pC_in_gaaaa(T92, X190, X191, X192, X193))
pC_in_gaaaa(T92, T93, T94, T95, X193) → U14_gaaaa(T92, T93, T94, T95, X193, halvesF_in_gaaa(T92, T93, T94, T95))
U14_gaaaa(T92, T93, T94, T95, X193, halvesF_out_gaaa(T92, T93, T94, T95)) → U15_gaaaa(T92, T93, T94, T95, X193, pJ_in_ggag(T95, T93, X193, T94))
pJ_in_ggag(odd, T93, X193, T94) → U7_ggag(T93, X193, T94, lastH_in_gag(T93, X193, T94))
lastH_in_gag(.(T107, []), T107, []) → lastH_out_gag(.(T107, []), T107, [])
lastH_in_gag(.(T114, T115), X220, .(T114, T116)) → U6_gag(T114, T115, X220, T116, lastH_in_gag(T115, X220, T116))
U6_gag(T114, T115, X220, T116, lastH_out_gag(T115, X220, T116)) → lastH_out_gag(.(T114, T115), X220, .(T114, T116))
U7_ggag(T93, X193, T94, lastH_out_gag(T93, X193, T94)) → pJ_out_ggag(odd, T93, X193, T94)
U15_gaaaa(T92, T93, T94, T95, X193, pJ_out_ggag(T95, T93, X193, T94)) → pC_out_gaaaa(T92, T93, T94, T95, X193)
U2_g(T92, pC_out_gaaaa(T92, X190, X191, X192, X193)) → palindromeA_out_g(T92)

The argument filtering Pi contains the following mapping:
palindromeA_in_g(x1)  =  palindromeA_in_g(x1)
[]  =  []
palindromeA_out_g(x1)  =  palindromeA_out_g(x1)
.(x1, x2)  =  .(x1, x2)
U1_g(x1, x2, x3, x4)  =  U1_g(x1, x2, x3, x4)
pB_in_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8)  =  pB_in_ggaaaaag(x1, x2, x8)
U8_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U8_ggaaaaag(x1, x2, x8, x9)
lastE_in_ggaa(x1, x2, x3, x4)  =  lastE_in_ggaa(x1, x2)
lastE_out_ggaa(x1, x2, x3, x4)  =  lastE_out_ggaa(x1, x2, x3, x4)
U4_ggaa(x1, x2, x3, x4, x5)  =  U4_ggaa(x1, x2, x5)
lastD_in_gaa(x1, x2, x3)  =  lastD_in_gaa(x1)
lastD_out_gaa(x1, x2, x3)  =  lastD_out_gaa(x1, x2, x3)
U3_gaa(x1, x2, x3, x4, x5)  =  U3_gaa(x1, x2, x5)
U9_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U9_ggaaaaag(x1, x2, x3, x4, x8, x9)
pK_in_gaaagg(x1, x2, x3, x4, x5, x6)  =  pK_in_gaaagg(x1, x5, x6)
U10_gaaagg(x1, x2, x3, x4, x5, x6, x7)  =  U10_gaaagg(x1, x5, x6, x7)
halvesF_in_gaaa(x1, x2, x3, x4)  =  halvesF_in_gaaa(x1)
halvesF_out_gaaa(x1, x2, x3, x4)  =  halvesF_out_gaaa(x1, x2, x3, x4)
U5_gaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  U5_gaaa(x1, x2, x3, x8)
pG_in_ggaaaaa(x1, x2, x3, x4, x5, x6, x7)  =  pG_in_ggaaaaa(x1, x2)
U12_ggaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  U12_ggaaaaa(x1, x2, x8)
U13_ggaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  U13_ggaaaaa(x1, x2, x3, x4, x8)
pG_out_ggaaaaa(x1, x2, x3, x4, x5, x6, x7)  =  pG_out_ggaaaaa(x1, x2, x3, x4, x5, x6, x7)
U11_gaaagg(x1, x2, x3, x4, x5, x6, x7)  =  U11_gaaagg(x1, x2, x3, x4, x5, x6, x7)
pI_in_ggggg(x1, x2, x3, x4, x5)  =  pI_in_ggggg(x1, x2, x3, x4, x5)
even  =  even
pI_out_ggggg(x1, x2, x3, x4, x5)  =  pI_out_ggggg(x1, x2, x3, x4, x5)
pK_out_gaaagg(x1, x2, x3, x4, x5, x6)  =  pK_out_gaaagg(x1, x2, x3, x4, x5, x6)
pB_out_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8)  =  pB_out_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8)
U2_g(x1, x2)  =  U2_g(x1, x2)
pC_in_gaaaa(x1, x2, x3, x4, x5)  =  pC_in_gaaaa(x1)
U14_gaaaa(x1, x2, x3, x4, x5, x6)  =  U14_gaaaa(x1, x6)
U15_gaaaa(x1, x2, x3, x4, x5, x6)  =  U15_gaaaa(x1, x2, x3, x4, x6)
pJ_in_ggag(x1, x2, x3, x4)  =  pJ_in_ggag(x1, x2, x4)
odd  =  odd
U7_ggag(x1, x2, x3, x4)  =  U7_ggag(x1, x3, x4)
lastH_in_gag(x1, x2, x3)  =  lastH_in_gag(x1, x3)
lastH_out_gag(x1, x2, x3)  =  lastH_out_gag(x1, x2, x3)
U6_gag(x1, x2, x3, x4, x5)  =  U6_gag(x1, x2, x4, x5)
pJ_out_ggag(x1, x2, x3, x4)  =  pJ_out_ggag(x1, x2, x3, x4)
pC_out_gaaaa(x1, x2, x3, x4, x5)  =  pC_out_gaaaa(x1, x2, x3, x4, x5)
PALINDROMEA_IN_G(x1)  =  PALINDROMEA_IN_G(x1)
U1_G(x1, x2, x3, x4)  =  U1_G(x1, x2, x3, x4)
PB_IN_GGAAAAAG(x1, x2, x3, x4, x5, x6, x7, x8)  =  PB_IN_GGAAAAAG(x1, x2, x8)
U8_GGAAAAAG(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U8_GGAAAAAG(x1, x2, x8, x9)
LASTE_IN_GGAA(x1, x2, x3, x4)  =  LASTE_IN_GGAA(x1, x2)
U4_GGAA(x1, x2, x3, x4, x5)  =  U4_GGAA(x1, x2, x5)
LASTD_IN_GAA(x1, x2, x3)  =  LASTD_IN_GAA(x1)
U3_GAA(x1, x2, x3, x4, x5)  =  U3_GAA(x1, x2, x5)
U9_GGAAAAAG(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U9_GGAAAAAG(x1, x2, x3, x4, x8, x9)
PK_IN_GAAAGG(x1, x2, x3, x4, x5, x6)  =  PK_IN_GAAAGG(x1, x5, x6)
U10_GAAAGG(x1, x2, x3, x4, x5, x6, x7)  =  U10_GAAAGG(x1, x5, x6, x7)
HALVESF_IN_GAAA(x1, x2, x3, x4)  =  HALVESF_IN_GAAA(x1)
U5_GAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  U5_GAAA(x1, x2, x3, x8)
PG_IN_GGAAAAA(x1, x2, x3, x4, x5, x6, x7)  =  PG_IN_GGAAAAA(x1, x2)
U12_GGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  U12_GGAAAAA(x1, x2, x8)
U13_GGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  U13_GGAAAAA(x1, x2, x3, x4, x8)
U11_GAAAGG(x1, x2, x3, x4, x5, x6, x7)  =  U11_GAAAGG(x1, x2, x3, x4, x5, x6, x7)
PI_IN_GGGGG(x1, x2, x3, x4, x5)  =  PI_IN_GGGGG(x1, x2, x3, x4, x5)
U2_G(x1, x2)  =  U2_G(x1, x2)
PC_IN_GAAAA(x1, x2, x3, x4, x5)  =  PC_IN_GAAAA(x1)
U14_GAAAA(x1, x2, x3, x4, x5, x6)  =  U14_GAAAA(x1, x6)
U15_GAAAA(x1, x2, x3, x4, x5, x6)  =  U15_GAAAA(x1, x2, x3, x4, x6)
PJ_IN_GGAG(x1, x2, x3, x4)  =  PJ_IN_GGAG(x1, x2, x4)
U7_GGAG(x1, x2, x3, x4)  =  U7_GGAG(x1, x3, x4)
LASTH_IN_GAG(x1, x2, x3)  =  LASTH_IN_GAG(x1, x3)
U6_GAG(x1, x2, x3, x4, x5)  =  U6_GAG(x1, x2, x4, x5)

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

(4) Obligation:

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

PALINDROMEA_IN_G(.(T21, .(T22, T23))) → U1_G(T21, T22, T23, pB_in_ggaaaaag(T22, T23, X74, X72, X73, X75, X76, T21))
PALINDROMEA_IN_G(.(T21, .(T22, T23))) → PB_IN_GGAAAAAG(T22, T23, X74, X72, X73, X75, X76, T21)
PB_IN_GGAAAAAG(T22, T23, T26, T27, X73, X75, X76, T21) → U8_GGAAAAAG(T22, T23, T26, T27, X73, X75, X76, T21, lastE_in_ggaa(T22, T23, T26, T27))
PB_IN_GGAAAAAG(T22, T23, T26, T27, X73, X75, X76, T21) → LASTE_IN_GGAA(T22, T23, T26, T27)
LASTE_IN_GGAA(T41, T42, X104, .(T41, X105)) → U4_GGAA(T41, T42, X104, X105, lastD_in_gaa(T42, X104, X105))
LASTE_IN_GGAA(T41, T42, X104, .(T41, X105)) → LASTD_IN_GAA(T42, X104, X105)
LASTD_IN_GAA(.(T54, T55), X129, .(T54, X130)) → U3_GAA(T54, T55, X129, X130, lastD_in_gaa(T55, X129, X130))
LASTD_IN_GAA(.(T54, T55), X129, .(T54, X130)) → LASTD_IN_GAA(T55, X129, X130)
U8_GGAAAAAG(T22, T23, T26, T27, X73, X75, X76, T21, lastE_out_ggaa(T22, T23, T26, T27)) → U9_GGAAAAAG(T22, T23, T26, T27, X73, X75, X76, T21, pK_in_gaaagg(T27, X73, X75, X76, T21, T26))
U8_GGAAAAAG(T22, T23, T26, T27, X73, X75, X76, T21, lastE_out_ggaa(T22, T23, T26, T27)) → PK_IN_GAAAGG(T27, X73, X75, X76, T21, T26)
PK_IN_GAAAGG(T27, T58, T59, T60, T21, T26) → U10_GAAAGG(T27, T58, T59, T60, T21, T26, halvesF_in_gaaa(T27, T58, T59, T60))
PK_IN_GAAAGG(T27, T58, T59, T60, T21, T26) → HALVESF_IN_GAAA(T27, T58, T59, T60)
HALVESF_IN_GAAA(.(T72, .(T73, T74)), .(T72, X169), .(X170, X171), X172) → U5_GAAA(T72, T73, T74, X169, X170, X171, X172, pG_in_ggaaaaa(T73, T74, X170, X168, X169, X171, X172))
HALVESF_IN_GAAA(.(T72, .(T73, T74)), .(T72, X169), .(X170, X171), X172) → PG_IN_GGAAAAA(T73, T74, X170, X168, X169, X171, X172)
PG_IN_GGAAAAA(T73, T74, T77, T78, X169, X171, X172) → U12_GGAAAAA(T73, T74, T77, T78, X169, X171, X172, lastE_in_ggaa(T73, T74, T77, T78))
PG_IN_GGAAAAA(T73, T74, T77, T78, X169, X171, X172) → LASTE_IN_GGAA(T73, T74, T77, T78)
U12_GGAAAAA(T73, T74, T77, T78, X169, X171, X172, lastE_out_ggaa(T73, T74, T77, T78)) → U13_GGAAAAA(T73, T74, T77, T78, X169, X171, X172, halvesF_in_gaaa(T78, X169, X171, X172))
U12_GGAAAAA(T73, T74, T77, T78, X169, X171, X172, lastE_out_ggaa(T73, T74, T77, T78)) → HALVESF_IN_GAAA(T78, X169, X171, X172)
U10_GAAAGG(T27, T58, T59, T60, T21, T26, halvesF_out_gaaa(T27, T58, T59, T60)) → U11_GAAAGG(T27, T58, T59, T60, T21, T26, pI_in_ggggg(T60, T21, T58, T26, T59))
U10_GAAAGG(T27, T58, T59, T60, T21, T26, halvesF_out_gaaa(T27, T58, T59, T60)) → PI_IN_GGGGG(T60, T21, T58, T26, T59)
PALINDROMEA_IN_G(T92) → U2_G(T92, pC_in_gaaaa(T92, X190, X191, X192, X193))
PALINDROMEA_IN_G(T92) → PC_IN_GAAAA(T92, X190, X191, X192, X193)
PC_IN_GAAAA(T92, T93, T94, T95, X193) → U14_GAAAA(T92, T93, T94, T95, X193, halvesF_in_gaaa(T92, T93, T94, T95))
PC_IN_GAAAA(T92, T93, T94, T95, X193) → HALVESF_IN_GAAA(T92, T93, T94, T95)
U14_GAAAA(T92, T93, T94, T95, X193, halvesF_out_gaaa(T92, T93, T94, T95)) → U15_GAAAA(T92, T93, T94, T95, X193, pJ_in_ggag(T95, T93, X193, T94))
U14_GAAAA(T92, T93, T94, T95, X193, halvesF_out_gaaa(T92, T93, T94, T95)) → PJ_IN_GGAG(T95, T93, X193, T94)
PJ_IN_GGAG(odd, T93, X193, T94) → U7_GGAG(T93, X193, T94, lastH_in_gag(T93, X193, T94))
PJ_IN_GGAG(odd, T93, X193, T94) → LASTH_IN_GAG(T93, X193, T94)
LASTH_IN_GAG(.(T114, T115), X220, .(T114, T116)) → U6_GAG(T114, T115, X220, T116, lastH_in_gag(T115, X220, T116))
LASTH_IN_GAG(.(T114, T115), X220, .(T114, T116)) → LASTH_IN_GAG(T115, X220, T116)

The TRS R consists of the following rules:

palindromeA_in_g([]) → palindromeA_out_g([])
palindromeA_in_g(.(T21, .(T22, T23))) → U1_g(T21, T22, T23, pB_in_ggaaaaag(T22, T23, X74, X72, X73, X75, X76, T21))
pB_in_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21) → U8_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, lastE_in_ggaa(T22, T23, T26, T27))
lastE_in_ggaa(T34, [], T34, []) → lastE_out_ggaa(T34, [], T34, [])
lastE_in_ggaa(T41, T42, X104, .(T41, X105)) → U4_ggaa(T41, T42, X104, X105, lastD_in_gaa(T42, X104, X105))
lastD_in_gaa(.(T49, []), T49, []) → lastD_out_gaa(.(T49, []), T49, [])
lastD_in_gaa(.(T54, T55), X129, .(T54, X130)) → U3_gaa(T54, T55, X129, X130, lastD_in_gaa(T55, X129, X130))
U3_gaa(T54, T55, X129, X130, lastD_out_gaa(T55, X129, X130)) → lastD_out_gaa(.(T54, T55), X129, .(T54, X130))
U4_ggaa(T41, T42, X104, X105, lastD_out_gaa(T42, X104, X105)) → lastE_out_ggaa(T41, T42, X104, .(T41, X105))
U8_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, lastE_out_ggaa(T22, T23, T26, T27)) → U9_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, pK_in_gaaagg(T27, X73, X75, X76, T21, T26))
pK_in_gaaagg(T27, T58, T59, T60, T21, T26) → U10_gaaagg(T27, T58, T59, T60, T21, T26, halvesF_in_gaaa(T27, T58, T59, T60))
halvesF_in_gaaa([], [], [], even) → halvesF_out_gaaa([], [], [], even)
halvesF_in_gaaa(.(T65, []), .(T65, []), [], odd) → halvesF_out_gaaa(.(T65, []), .(T65, []), [], odd)
halvesF_in_gaaa(.(T72, .(T73, T74)), .(T72, X169), .(X170, X171), X172) → U5_gaaa(T72, T73, T74, X169, X170, X171, X172, pG_in_ggaaaaa(T73, T74, X170, X168, X169, X171, X172))
pG_in_ggaaaaa(T73, T74, T77, T78, X169, X171, X172) → U12_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, lastE_in_ggaa(T73, T74, T77, T78))
U12_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, lastE_out_ggaa(T73, T74, T77, T78)) → U13_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, halvesF_in_gaaa(T78, X169, X171, X172))
U13_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, halvesF_out_gaaa(T78, X169, X171, X172)) → pG_out_ggaaaaa(T73, T74, T77, T78, X169, X171, X172)
U5_gaaa(T72, T73, T74, X169, X170, X171, X172, pG_out_ggaaaaa(T73, T74, X170, X168, X169, X171, X172)) → halvesF_out_gaaa(.(T72, .(T73, T74)), .(T72, X169), .(X170, X171), X172)
U10_gaaagg(T27, T58, T59, T60, T21, T26, halvesF_out_gaaa(T27, T58, T59, T60)) → U11_gaaagg(T27, T58, T59, T60, T21, T26, pI_in_ggggg(T60, T21, T58, T26, T59))
pI_in_ggggg(even, T88, T89, T88, T89) → pI_out_ggggg(even, T88, T89, T88, T89)
U11_gaaagg(T27, T58, T59, T60, T21, T26, pI_out_ggggg(T60, T21, T58, T26, T59)) → pK_out_gaaagg(T27, T58, T59, T60, T21, T26)
U9_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, pK_out_gaaagg(T27, X73, X75, X76, T21, T26)) → pB_out_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21)
U1_g(T21, T22, T23, pB_out_ggaaaaag(T22, T23, X74, X72, X73, X75, X76, T21)) → palindromeA_out_g(.(T21, .(T22, T23)))
palindromeA_in_g(T92) → U2_g(T92, pC_in_gaaaa(T92, X190, X191, X192, X193))
pC_in_gaaaa(T92, T93, T94, T95, X193) → U14_gaaaa(T92, T93, T94, T95, X193, halvesF_in_gaaa(T92, T93, T94, T95))
U14_gaaaa(T92, T93, T94, T95, X193, halvesF_out_gaaa(T92, T93, T94, T95)) → U15_gaaaa(T92, T93, T94, T95, X193, pJ_in_ggag(T95, T93, X193, T94))
pJ_in_ggag(odd, T93, X193, T94) → U7_ggag(T93, X193, T94, lastH_in_gag(T93, X193, T94))
lastH_in_gag(.(T107, []), T107, []) → lastH_out_gag(.(T107, []), T107, [])
lastH_in_gag(.(T114, T115), X220, .(T114, T116)) → U6_gag(T114, T115, X220, T116, lastH_in_gag(T115, X220, T116))
U6_gag(T114, T115, X220, T116, lastH_out_gag(T115, X220, T116)) → lastH_out_gag(.(T114, T115), X220, .(T114, T116))
U7_ggag(T93, X193, T94, lastH_out_gag(T93, X193, T94)) → pJ_out_ggag(odd, T93, X193, T94)
U15_gaaaa(T92, T93, T94, T95, X193, pJ_out_ggag(T95, T93, X193, T94)) → pC_out_gaaaa(T92, T93, T94, T95, X193)
U2_g(T92, pC_out_gaaaa(T92, X190, X191, X192, X193)) → palindromeA_out_g(T92)

The argument filtering Pi contains the following mapping:
palindromeA_in_g(x1)  =  palindromeA_in_g(x1)
[]  =  []
palindromeA_out_g(x1)  =  palindromeA_out_g(x1)
.(x1, x2)  =  .(x1, x2)
U1_g(x1, x2, x3, x4)  =  U1_g(x1, x2, x3, x4)
pB_in_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8)  =  pB_in_ggaaaaag(x1, x2, x8)
U8_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U8_ggaaaaag(x1, x2, x8, x9)
lastE_in_ggaa(x1, x2, x3, x4)  =  lastE_in_ggaa(x1, x2)
lastE_out_ggaa(x1, x2, x3, x4)  =  lastE_out_ggaa(x1, x2, x3, x4)
U4_ggaa(x1, x2, x3, x4, x5)  =  U4_ggaa(x1, x2, x5)
lastD_in_gaa(x1, x2, x3)  =  lastD_in_gaa(x1)
lastD_out_gaa(x1, x2, x3)  =  lastD_out_gaa(x1, x2, x3)
U3_gaa(x1, x2, x3, x4, x5)  =  U3_gaa(x1, x2, x5)
U9_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U9_ggaaaaag(x1, x2, x3, x4, x8, x9)
pK_in_gaaagg(x1, x2, x3, x4, x5, x6)  =  pK_in_gaaagg(x1, x5, x6)
U10_gaaagg(x1, x2, x3, x4, x5, x6, x7)  =  U10_gaaagg(x1, x5, x6, x7)
halvesF_in_gaaa(x1, x2, x3, x4)  =  halvesF_in_gaaa(x1)
halvesF_out_gaaa(x1, x2, x3, x4)  =  halvesF_out_gaaa(x1, x2, x3, x4)
U5_gaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  U5_gaaa(x1, x2, x3, x8)
pG_in_ggaaaaa(x1, x2, x3, x4, x5, x6, x7)  =  pG_in_ggaaaaa(x1, x2)
U12_ggaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  U12_ggaaaaa(x1, x2, x8)
U13_ggaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  U13_ggaaaaa(x1, x2, x3, x4, x8)
pG_out_ggaaaaa(x1, x2, x3, x4, x5, x6, x7)  =  pG_out_ggaaaaa(x1, x2, x3, x4, x5, x6, x7)
U11_gaaagg(x1, x2, x3, x4, x5, x6, x7)  =  U11_gaaagg(x1, x2, x3, x4, x5, x6, x7)
pI_in_ggggg(x1, x2, x3, x4, x5)  =  pI_in_ggggg(x1, x2, x3, x4, x5)
even  =  even
pI_out_ggggg(x1, x2, x3, x4, x5)  =  pI_out_ggggg(x1, x2, x3, x4, x5)
pK_out_gaaagg(x1, x2, x3, x4, x5, x6)  =  pK_out_gaaagg(x1, x2, x3, x4, x5, x6)
pB_out_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8)  =  pB_out_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8)
U2_g(x1, x2)  =  U2_g(x1, x2)
pC_in_gaaaa(x1, x2, x3, x4, x5)  =  pC_in_gaaaa(x1)
U14_gaaaa(x1, x2, x3, x4, x5, x6)  =  U14_gaaaa(x1, x6)
U15_gaaaa(x1, x2, x3, x4, x5, x6)  =  U15_gaaaa(x1, x2, x3, x4, x6)
pJ_in_ggag(x1, x2, x3, x4)  =  pJ_in_ggag(x1, x2, x4)
odd  =  odd
U7_ggag(x1, x2, x3, x4)  =  U7_ggag(x1, x3, x4)
lastH_in_gag(x1, x2, x3)  =  lastH_in_gag(x1, x3)
lastH_out_gag(x1, x2, x3)  =  lastH_out_gag(x1, x2, x3)
U6_gag(x1, x2, x3, x4, x5)  =  U6_gag(x1, x2, x4, x5)
pJ_out_ggag(x1, x2, x3, x4)  =  pJ_out_ggag(x1, x2, x3, x4)
pC_out_gaaaa(x1, x2, x3, x4, x5)  =  pC_out_gaaaa(x1, x2, x3, x4, x5)
PALINDROMEA_IN_G(x1)  =  PALINDROMEA_IN_G(x1)
U1_G(x1, x2, x3, x4)  =  U1_G(x1, x2, x3, x4)
PB_IN_GGAAAAAG(x1, x2, x3, x4, x5, x6, x7, x8)  =  PB_IN_GGAAAAAG(x1, x2, x8)
U8_GGAAAAAG(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U8_GGAAAAAG(x1, x2, x8, x9)
LASTE_IN_GGAA(x1, x2, x3, x4)  =  LASTE_IN_GGAA(x1, x2)
U4_GGAA(x1, x2, x3, x4, x5)  =  U4_GGAA(x1, x2, x5)
LASTD_IN_GAA(x1, x2, x3)  =  LASTD_IN_GAA(x1)
U3_GAA(x1, x2, x3, x4, x5)  =  U3_GAA(x1, x2, x5)
U9_GGAAAAAG(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U9_GGAAAAAG(x1, x2, x3, x4, x8, x9)
PK_IN_GAAAGG(x1, x2, x3, x4, x5, x6)  =  PK_IN_GAAAGG(x1, x5, x6)
U10_GAAAGG(x1, x2, x3, x4, x5, x6, x7)  =  U10_GAAAGG(x1, x5, x6, x7)
HALVESF_IN_GAAA(x1, x2, x3, x4)  =  HALVESF_IN_GAAA(x1)
U5_GAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  U5_GAAA(x1, x2, x3, x8)
PG_IN_GGAAAAA(x1, x2, x3, x4, x5, x6, x7)  =  PG_IN_GGAAAAA(x1, x2)
U12_GGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  U12_GGAAAAA(x1, x2, x8)
U13_GGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  U13_GGAAAAA(x1, x2, x3, x4, x8)
U11_GAAAGG(x1, x2, x3, x4, x5, x6, x7)  =  U11_GAAAGG(x1, x2, x3, x4, x5, x6, x7)
PI_IN_GGGGG(x1, x2, x3, x4, x5)  =  PI_IN_GGGGG(x1, x2, x3, x4, x5)
U2_G(x1, x2)  =  U2_G(x1, x2)
PC_IN_GAAAA(x1, x2, x3, x4, x5)  =  PC_IN_GAAAA(x1)
U14_GAAAA(x1, x2, x3, x4, x5, x6)  =  U14_GAAAA(x1, x6)
U15_GAAAA(x1, x2, x3, x4, x5, x6)  =  U15_GAAAA(x1, x2, x3, x4, x6)
PJ_IN_GGAG(x1, x2, x3, x4)  =  PJ_IN_GGAG(x1, x2, x4)
U7_GGAG(x1, x2, x3, x4)  =  U7_GGAG(x1, x3, x4)
LASTH_IN_GAG(x1, x2, x3)  =  LASTH_IN_GAG(x1, x3)
U6_GAG(x1, x2, x3, x4, x5)  =  U6_GAG(x1, x2, x4, x5)

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

(5) DependencyGraphProof (EQUIVALENT transformation)

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

(6) Complex Obligation (AND)

(7) Obligation:

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

LASTH_IN_GAG(.(T114, T115), X220, .(T114, T116)) → LASTH_IN_GAG(T115, X220, T116)

The TRS R consists of the following rules:

palindromeA_in_g([]) → palindromeA_out_g([])
palindromeA_in_g(.(T21, .(T22, T23))) → U1_g(T21, T22, T23, pB_in_ggaaaaag(T22, T23, X74, X72, X73, X75, X76, T21))
pB_in_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21) → U8_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, lastE_in_ggaa(T22, T23, T26, T27))
lastE_in_ggaa(T34, [], T34, []) → lastE_out_ggaa(T34, [], T34, [])
lastE_in_ggaa(T41, T42, X104, .(T41, X105)) → U4_ggaa(T41, T42, X104, X105, lastD_in_gaa(T42, X104, X105))
lastD_in_gaa(.(T49, []), T49, []) → lastD_out_gaa(.(T49, []), T49, [])
lastD_in_gaa(.(T54, T55), X129, .(T54, X130)) → U3_gaa(T54, T55, X129, X130, lastD_in_gaa(T55, X129, X130))
U3_gaa(T54, T55, X129, X130, lastD_out_gaa(T55, X129, X130)) → lastD_out_gaa(.(T54, T55), X129, .(T54, X130))
U4_ggaa(T41, T42, X104, X105, lastD_out_gaa(T42, X104, X105)) → lastE_out_ggaa(T41, T42, X104, .(T41, X105))
U8_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, lastE_out_ggaa(T22, T23, T26, T27)) → U9_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, pK_in_gaaagg(T27, X73, X75, X76, T21, T26))
pK_in_gaaagg(T27, T58, T59, T60, T21, T26) → U10_gaaagg(T27, T58, T59, T60, T21, T26, halvesF_in_gaaa(T27, T58, T59, T60))
halvesF_in_gaaa([], [], [], even) → halvesF_out_gaaa([], [], [], even)
halvesF_in_gaaa(.(T65, []), .(T65, []), [], odd) → halvesF_out_gaaa(.(T65, []), .(T65, []), [], odd)
halvesF_in_gaaa(.(T72, .(T73, T74)), .(T72, X169), .(X170, X171), X172) → U5_gaaa(T72, T73, T74, X169, X170, X171, X172, pG_in_ggaaaaa(T73, T74, X170, X168, X169, X171, X172))
pG_in_ggaaaaa(T73, T74, T77, T78, X169, X171, X172) → U12_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, lastE_in_ggaa(T73, T74, T77, T78))
U12_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, lastE_out_ggaa(T73, T74, T77, T78)) → U13_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, halvesF_in_gaaa(T78, X169, X171, X172))
U13_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, halvesF_out_gaaa(T78, X169, X171, X172)) → pG_out_ggaaaaa(T73, T74, T77, T78, X169, X171, X172)
U5_gaaa(T72, T73, T74, X169, X170, X171, X172, pG_out_ggaaaaa(T73, T74, X170, X168, X169, X171, X172)) → halvesF_out_gaaa(.(T72, .(T73, T74)), .(T72, X169), .(X170, X171), X172)
U10_gaaagg(T27, T58, T59, T60, T21, T26, halvesF_out_gaaa(T27, T58, T59, T60)) → U11_gaaagg(T27, T58, T59, T60, T21, T26, pI_in_ggggg(T60, T21, T58, T26, T59))
pI_in_ggggg(even, T88, T89, T88, T89) → pI_out_ggggg(even, T88, T89, T88, T89)
U11_gaaagg(T27, T58, T59, T60, T21, T26, pI_out_ggggg(T60, T21, T58, T26, T59)) → pK_out_gaaagg(T27, T58, T59, T60, T21, T26)
U9_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, pK_out_gaaagg(T27, X73, X75, X76, T21, T26)) → pB_out_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21)
U1_g(T21, T22, T23, pB_out_ggaaaaag(T22, T23, X74, X72, X73, X75, X76, T21)) → palindromeA_out_g(.(T21, .(T22, T23)))
palindromeA_in_g(T92) → U2_g(T92, pC_in_gaaaa(T92, X190, X191, X192, X193))
pC_in_gaaaa(T92, T93, T94, T95, X193) → U14_gaaaa(T92, T93, T94, T95, X193, halvesF_in_gaaa(T92, T93, T94, T95))
U14_gaaaa(T92, T93, T94, T95, X193, halvesF_out_gaaa(T92, T93, T94, T95)) → U15_gaaaa(T92, T93, T94, T95, X193, pJ_in_ggag(T95, T93, X193, T94))
pJ_in_ggag(odd, T93, X193, T94) → U7_ggag(T93, X193, T94, lastH_in_gag(T93, X193, T94))
lastH_in_gag(.(T107, []), T107, []) → lastH_out_gag(.(T107, []), T107, [])
lastH_in_gag(.(T114, T115), X220, .(T114, T116)) → U6_gag(T114, T115, X220, T116, lastH_in_gag(T115, X220, T116))
U6_gag(T114, T115, X220, T116, lastH_out_gag(T115, X220, T116)) → lastH_out_gag(.(T114, T115), X220, .(T114, T116))
U7_ggag(T93, X193, T94, lastH_out_gag(T93, X193, T94)) → pJ_out_ggag(odd, T93, X193, T94)
U15_gaaaa(T92, T93, T94, T95, X193, pJ_out_ggag(T95, T93, X193, T94)) → pC_out_gaaaa(T92, T93, T94, T95, X193)
U2_g(T92, pC_out_gaaaa(T92, X190, X191, X192, X193)) → palindromeA_out_g(T92)

The argument filtering Pi contains the following mapping:
palindromeA_in_g(x1)  =  palindromeA_in_g(x1)
[]  =  []
palindromeA_out_g(x1)  =  palindromeA_out_g(x1)
.(x1, x2)  =  .(x1, x2)
U1_g(x1, x2, x3, x4)  =  U1_g(x1, x2, x3, x4)
pB_in_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8)  =  pB_in_ggaaaaag(x1, x2, x8)
U8_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U8_ggaaaaag(x1, x2, x8, x9)
lastE_in_ggaa(x1, x2, x3, x4)  =  lastE_in_ggaa(x1, x2)
lastE_out_ggaa(x1, x2, x3, x4)  =  lastE_out_ggaa(x1, x2, x3, x4)
U4_ggaa(x1, x2, x3, x4, x5)  =  U4_ggaa(x1, x2, x5)
lastD_in_gaa(x1, x2, x3)  =  lastD_in_gaa(x1)
lastD_out_gaa(x1, x2, x3)  =  lastD_out_gaa(x1, x2, x3)
U3_gaa(x1, x2, x3, x4, x5)  =  U3_gaa(x1, x2, x5)
U9_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U9_ggaaaaag(x1, x2, x3, x4, x8, x9)
pK_in_gaaagg(x1, x2, x3, x4, x5, x6)  =  pK_in_gaaagg(x1, x5, x6)
U10_gaaagg(x1, x2, x3, x4, x5, x6, x7)  =  U10_gaaagg(x1, x5, x6, x7)
halvesF_in_gaaa(x1, x2, x3, x4)  =  halvesF_in_gaaa(x1)
halvesF_out_gaaa(x1, x2, x3, x4)  =  halvesF_out_gaaa(x1, x2, x3, x4)
U5_gaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  U5_gaaa(x1, x2, x3, x8)
pG_in_ggaaaaa(x1, x2, x3, x4, x5, x6, x7)  =  pG_in_ggaaaaa(x1, x2)
U12_ggaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  U12_ggaaaaa(x1, x2, x8)
U13_ggaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  U13_ggaaaaa(x1, x2, x3, x4, x8)
pG_out_ggaaaaa(x1, x2, x3, x4, x5, x6, x7)  =  pG_out_ggaaaaa(x1, x2, x3, x4, x5, x6, x7)
U11_gaaagg(x1, x2, x3, x4, x5, x6, x7)  =  U11_gaaagg(x1, x2, x3, x4, x5, x6, x7)
pI_in_ggggg(x1, x2, x3, x4, x5)  =  pI_in_ggggg(x1, x2, x3, x4, x5)
even  =  even
pI_out_ggggg(x1, x2, x3, x4, x5)  =  pI_out_ggggg(x1, x2, x3, x4, x5)
pK_out_gaaagg(x1, x2, x3, x4, x5, x6)  =  pK_out_gaaagg(x1, x2, x3, x4, x5, x6)
pB_out_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8)  =  pB_out_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8)
U2_g(x1, x2)  =  U2_g(x1, x2)
pC_in_gaaaa(x1, x2, x3, x4, x5)  =  pC_in_gaaaa(x1)
U14_gaaaa(x1, x2, x3, x4, x5, x6)  =  U14_gaaaa(x1, x6)
U15_gaaaa(x1, x2, x3, x4, x5, x6)  =  U15_gaaaa(x1, x2, x3, x4, x6)
pJ_in_ggag(x1, x2, x3, x4)  =  pJ_in_ggag(x1, x2, x4)
odd  =  odd
U7_ggag(x1, x2, x3, x4)  =  U7_ggag(x1, x3, x4)
lastH_in_gag(x1, x2, x3)  =  lastH_in_gag(x1, x3)
lastH_out_gag(x1, x2, x3)  =  lastH_out_gag(x1, x2, x3)
U6_gag(x1, x2, x3, x4, x5)  =  U6_gag(x1, x2, x4, x5)
pJ_out_ggag(x1, x2, x3, x4)  =  pJ_out_ggag(x1, x2, x3, x4)
pC_out_gaaaa(x1, x2, x3, x4, x5)  =  pC_out_gaaaa(x1, x2, x3, x4, x5)
LASTH_IN_GAG(x1, x2, x3)  =  LASTH_IN_GAG(x1, x3)

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:

LASTH_IN_GAG(.(T114, T115), X220, .(T114, T116)) → LASTH_IN_GAG(T115, X220, T116)

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

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:

LASTH_IN_GAG(.(T114, T115), .(T114, T116)) → LASTH_IN_GAG(T115, T116)

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:

  • LASTH_IN_GAG(.(T114, T115), .(T114, T116)) → LASTH_IN_GAG(T115, T116)
    The graph contains the following edges 1 > 1, 2 > 2

(13) YES

(14) Obligation:

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

LASTD_IN_GAA(.(T54, T55), X129, .(T54, X130)) → LASTD_IN_GAA(T55, X129, X130)

The TRS R consists of the following rules:

palindromeA_in_g([]) → palindromeA_out_g([])
palindromeA_in_g(.(T21, .(T22, T23))) → U1_g(T21, T22, T23, pB_in_ggaaaaag(T22, T23, X74, X72, X73, X75, X76, T21))
pB_in_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21) → U8_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, lastE_in_ggaa(T22, T23, T26, T27))
lastE_in_ggaa(T34, [], T34, []) → lastE_out_ggaa(T34, [], T34, [])
lastE_in_ggaa(T41, T42, X104, .(T41, X105)) → U4_ggaa(T41, T42, X104, X105, lastD_in_gaa(T42, X104, X105))
lastD_in_gaa(.(T49, []), T49, []) → lastD_out_gaa(.(T49, []), T49, [])
lastD_in_gaa(.(T54, T55), X129, .(T54, X130)) → U3_gaa(T54, T55, X129, X130, lastD_in_gaa(T55, X129, X130))
U3_gaa(T54, T55, X129, X130, lastD_out_gaa(T55, X129, X130)) → lastD_out_gaa(.(T54, T55), X129, .(T54, X130))
U4_ggaa(T41, T42, X104, X105, lastD_out_gaa(T42, X104, X105)) → lastE_out_ggaa(T41, T42, X104, .(T41, X105))
U8_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, lastE_out_ggaa(T22, T23, T26, T27)) → U9_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, pK_in_gaaagg(T27, X73, X75, X76, T21, T26))
pK_in_gaaagg(T27, T58, T59, T60, T21, T26) → U10_gaaagg(T27, T58, T59, T60, T21, T26, halvesF_in_gaaa(T27, T58, T59, T60))
halvesF_in_gaaa([], [], [], even) → halvesF_out_gaaa([], [], [], even)
halvesF_in_gaaa(.(T65, []), .(T65, []), [], odd) → halvesF_out_gaaa(.(T65, []), .(T65, []), [], odd)
halvesF_in_gaaa(.(T72, .(T73, T74)), .(T72, X169), .(X170, X171), X172) → U5_gaaa(T72, T73, T74, X169, X170, X171, X172, pG_in_ggaaaaa(T73, T74, X170, X168, X169, X171, X172))
pG_in_ggaaaaa(T73, T74, T77, T78, X169, X171, X172) → U12_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, lastE_in_ggaa(T73, T74, T77, T78))
U12_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, lastE_out_ggaa(T73, T74, T77, T78)) → U13_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, halvesF_in_gaaa(T78, X169, X171, X172))
U13_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, halvesF_out_gaaa(T78, X169, X171, X172)) → pG_out_ggaaaaa(T73, T74, T77, T78, X169, X171, X172)
U5_gaaa(T72, T73, T74, X169, X170, X171, X172, pG_out_ggaaaaa(T73, T74, X170, X168, X169, X171, X172)) → halvesF_out_gaaa(.(T72, .(T73, T74)), .(T72, X169), .(X170, X171), X172)
U10_gaaagg(T27, T58, T59, T60, T21, T26, halvesF_out_gaaa(T27, T58, T59, T60)) → U11_gaaagg(T27, T58, T59, T60, T21, T26, pI_in_ggggg(T60, T21, T58, T26, T59))
pI_in_ggggg(even, T88, T89, T88, T89) → pI_out_ggggg(even, T88, T89, T88, T89)
U11_gaaagg(T27, T58, T59, T60, T21, T26, pI_out_ggggg(T60, T21, T58, T26, T59)) → pK_out_gaaagg(T27, T58, T59, T60, T21, T26)
U9_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, pK_out_gaaagg(T27, X73, X75, X76, T21, T26)) → pB_out_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21)
U1_g(T21, T22, T23, pB_out_ggaaaaag(T22, T23, X74, X72, X73, X75, X76, T21)) → palindromeA_out_g(.(T21, .(T22, T23)))
palindromeA_in_g(T92) → U2_g(T92, pC_in_gaaaa(T92, X190, X191, X192, X193))
pC_in_gaaaa(T92, T93, T94, T95, X193) → U14_gaaaa(T92, T93, T94, T95, X193, halvesF_in_gaaa(T92, T93, T94, T95))
U14_gaaaa(T92, T93, T94, T95, X193, halvesF_out_gaaa(T92, T93, T94, T95)) → U15_gaaaa(T92, T93, T94, T95, X193, pJ_in_ggag(T95, T93, X193, T94))
pJ_in_ggag(odd, T93, X193, T94) → U7_ggag(T93, X193, T94, lastH_in_gag(T93, X193, T94))
lastH_in_gag(.(T107, []), T107, []) → lastH_out_gag(.(T107, []), T107, [])
lastH_in_gag(.(T114, T115), X220, .(T114, T116)) → U6_gag(T114, T115, X220, T116, lastH_in_gag(T115, X220, T116))
U6_gag(T114, T115, X220, T116, lastH_out_gag(T115, X220, T116)) → lastH_out_gag(.(T114, T115), X220, .(T114, T116))
U7_ggag(T93, X193, T94, lastH_out_gag(T93, X193, T94)) → pJ_out_ggag(odd, T93, X193, T94)
U15_gaaaa(T92, T93, T94, T95, X193, pJ_out_ggag(T95, T93, X193, T94)) → pC_out_gaaaa(T92, T93, T94, T95, X193)
U2_g(T92, pC_out_gaaaa(T92, X190, X191, X192, X193)) → palindromeA_out_g(T92)

The argument filtering Pi contains the following mapping:
palindromeA_in_g(x1)  =  palindromeA_in_g(x1)
[]  =  []
palindromeA_out_g(x1)  =  palindromeA_out_g(x1)
.(x1, x2)  =  .(x1, x2)
U1_g(x1, x2, x3, x4)  =  U1_g(x1, x2, x3, x4)
pB_in_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8)  =  pB_in_ggaaaaag(x1, x2, x8)
U8_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U8_ggaaaaag(x1, x2, x8, x9)
lastE_in_ggaa(x1, x2, x3, x4)  =  lastE_in_ggaa(x1, x2)
lastE_out_ggaa(x1, x2, x3, x4)  =  lastE_out_ggaa(x1, x2, x3, x4)
U4_ggaa(x1, x2, x3, x4, x5)  =  U4_ggaa(x1, x2, x5)
lastD_in_gaa(x1, x2, x3)  =  lastD_in_gaa(x1)
lastD_out_gaa(x1, x2, x3)  =  lastD_out_gaa(x1, x2, x3)
U3_gaa(x1, x2, x3, x4, x5)  =  U3_gaa(x1, x2, x5)
U9_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U9_ggaaaaag(x1, x2, x3, x4, x8, x9)
pK_in_gaaagg(x1, x2, x3, x4, x5, x6)  =  pK_in_gaaagg(x1, x5, x6)
U10_gaaagg(x1, x2, x3, x4, x5, x6, x7)  =  U10_gaaagg(x1, x5, x6, x7)
halvesF_in_gaaa(x1, x2, x3, x4)  =  halvesF_in_gaaa(x1)
halvesF_out_gaaa(x1, x2, x3, x4)  =  halvesF_out_gaaa(x1, x2, x3, x4)
U5_gaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  U5_gaaa(x1, x2, x3, x8)
pG_in_ggaaaaa(x1, x2, x3, x4, x5, x6, x7)  =  pG_in_ggaaaaa(x1, x2)
U12_ggaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  U12_ggaaaaa(x1, x2, x8)
U13_ggaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  U13_ggaaaaa(x1, x2, x3, x4, x8)
pG_out_ggaaaaa(x1, x2, x3, x4, x5, x6, x7)  =  pG_out_ggaaaaa(x1, x2, x3, x4, x5, x6, x7)
U11_gaaagg(x1, x2, x3, x4, x5, x6, x7)  =  U11_gaaagg(x1, x2, x3, x4, x5, x6, x7)
pI_in_ggggg(x1, x2, x3, x4, x5)  =  pI_in_ggggg(x1, x2, x3, x4, x5)
even  =  even
pI_out_ggggg(x1, x2, x3, x4, x5)  =  pI_out_ggggg(x1, x2, x3, x4, x5)
pK_out_gaaagg(x1, x2, x3, x4, x5, x6)  =  pK_out_gaaagg(x1, x2, x3, x4, x5, x6)
pB_out_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8)  =  pB_out_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8)
U2_g(x1, x2)  =  U2_g(x1, x2)
pC_in_gaaaa(x1, x2, x3, x4, x5)  =  pC_in_gaaaa(x1)
U14_gaaaa(x1, x2, x3, x4, x5, x6)  =  U14_gaaaa(x1, x6)
U15_gaaaa(x1, x2, x3, x4, x5, x6)  =  U15_gaaaa(x1, x2, x3, x4, x6)
pJ_in_ggag(x1, x2, x3, x4)  =  pJ_in_ggag(x1, x2, x4)
odd  =  odd
U7_ggag(x1, x2, x3, x4)  =  U7_ggag(x1, x3, x4)
lastH_in_gag(x1, x2, x3)  =  lastH_in_gag(x1, x3)
lastH_out_gag(x1, x2, x3)  =  lastH_out_gag(x1, x2, x3)
U6_gag(x1, x2, x3, x4, x5)  =  U6_gag(x1, x2, x4, x5)
pJ_out_ggag(x1, x2, x3, x4)  =  pJ_out_ggag(x1, x2, x3, x4)
pC_out_gaaaa(x1, x2, x3, x4, x5)  =  pC_out_gaaaa(x1, x2, x3, x4, x5)
LASTD_IN_GAA(x1, x2, x3)  =  LASTD_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:

LASTD_IN_GAA(.(T54, T55), X129, .(T54, X130)) → LASTD_IN_GAA(T55, X129, X130)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
LASTD_IN_GAA(x1, x2, x3)  =  LASTD_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:

LASTD_IN_GAA(.(T54, T55)) → LASTD_IN_GAA(T55)

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:

  • LASTD_IN_GAA(.(T54, T55)) → LASTD_IN_GAA(T55)
    The graph contains the following edges 1 > 1

(20) YES

(21) Obligation:

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

PG_IN_GGAAAAA(T73, T74, T77, T78, X169, X171, X172) → U12_GGAAAAA(T73, T74, T77, T78, X169, X171, X172, lastE_in_ggaa(T73, T74, T77, T78))
U12_GGAAAAA(T73, T74, T77, T78, X169, X171, X172, lastE_out_ggaa(T73, T74, T77, T78)) → HALVESF_IN_GAAA(T78, X169, X171, X172)
HALVESF_IN_GAAA(.(T72, .(T73, T74)), .(T72, X169), .(X170, X171), X172) → PG_IN_GGAAAAA(T73, T74, X170, X168, X169, X171, X172)

The TRS R consists of the following rules:

palindromeA_in_g([]) → palindromeA_out_g([])
palindromeA_in_g(.(T21, .(T22, T23))) → U1_g(T21, T22, T23, pB_in_ggaaaaag(T22, T23, X74, X72, X73, X75, X76, T21))
pB_in_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21) → U8_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, lastE_in_ggaa(T22, T23, T26, T27))
lastE_in_ggaa(T34, [], T34, []) → lastE_out_ggaa(T34, [], T34, [])
lastE_in_ggaa(T41, T42, X104, .(T41, X105)) → U4_ggaa(T41, T42, X104, X105, lastD_in_gaa(T42, X104, X105))
lastD_in_gaa(.(T49, []), T49, []) → lastD_out_gaa(.(T49, []), T49, [])
lastD_in_gaa(.(T54, T55), X129, .(T54, X130)) → U3_gaa(T54, T55, X129, X130, lastD_in_gaa(T55, X129, X130))
U3_gaa(T54, T55, X129, X130, lastD_out_gaa(T55, X129, X130)) → lastD_out_gaa(.(T54, T55), X129, .(T54, X130))
U4_ggaa(T41, T42, X104, X105, lastD_out_gaa(T42, X104, X105)) → lastE_out_ggaa(T41, T42, X104, .(T41, X105))
U8_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, lastE_out_ggaa(T22, T23, T26, T27)) → U9_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, pK_in_gaaagg(T27, X73, X75, X76, T21, T26))
pK_in_gaaagg(T27, T58, T59, T60, T21, T26) → U10_gaaagg(T27, T58, T59, T60, T21, T26, halvesF_in_gaaa(T27, T58, T59, T60))
halvesF_in_gaaa([], [], [], even) → halvesF_out_gaaa([], [], [], even)
halvesF_in_gaaa(.(T65, []), .(T65, []), [], odd) → halvesF_out_gaaa(.(T65, []), .(T65, []), [], odd)
halvesF_in_gaaa(.(T72, .(T73, T74)), .(T72, X169), .(X170, X171), X172) → U5_gaaa(T72, T73, T74, X169, X170, X171, X172, pG_in_ggaaaaa(T73, T74, X170, X168, X169, X171, X172))
pG_in_ggaaaaa(T73, T74, T77, T78, X169, X171, X172) → U12_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, lastE_in_ggaa(T73, T74, T77, T78))
U12_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, lastE_out_ggaa(T73, T74, T77, T78)) → U13_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, halvesF_in_gaaa(T78, X169, X171, X172))
U13_ggaaaaa(T73, T74, T77, T78, X169, X171, X172, halvesF_out_gaaa(T78, X169, X171, X172)) → pG_out_ggaaaaa(T73, T74, T77, T78, X169, X171, X172)
U5_gaaa(T72, T73, T74, X169, X170, X171, X172, pG_out_ggaaaaa(T73, T74, X170, X168, X169, X171, X172)) → halvesF_out_gaaa(.(T72, .(T73, T74)), .(T72, X169), .(X170, X171), X172)
U10_gaaagg(T27, T58, T59, T60, T21, T26, halvesF_out_gaaa(T27, T58, T59, T60)) → U11_gaaagg(T27, T58, T59, T60, T21, T26, pI_in_ggggg(T60, T21, T58, T26, T59))
pI_in_ggggg(even, T88, T89, T88, T89) → pI_out_ggggg(even, T88, T89, T88, T89)
U11_gaaagg(T27, T58, T59, T60, T21, T26, pI_out_ggggg(T60, T21, T58, T26, T59)) → pK_out_gaaagg(T27, T58, T59, T60, T21, T26)
U9_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21, pK_out_gaaagg(T27, X73, X75, X76, T21, T26)) → pB_out_ggaaaaag(T22, T23, T26, T27, X73, X75, X76, T21)
U1_g(T21, T22, T23, pB_out_ggaaaaag(T22, T23, X74, X72, X73, X75, X76, T21)) → palindromeA_out_g(.(T21, .(T22, T23)))
palindromeA_in_g(T92) → U2_g(T92, pC_in_gaaaa(T92, X190, X191, X192, X193))
pC_in_gaaaa(T92, T93, T94, T95, X193) → U14_gaaaa(T92, T93, T94, T95, X193, halvesF_in_gaaa(T92, T93, T94, T95))
U14_gaaaa(T92, T93, T94, T95, X193, halvesF_out_gaaa(T92, T93, T94, T95)) → U15_gaaaa(T92, T93, T94, T95, X193, pJ_in_ggag(T95, T93, X193, T94))
pJ_in_ggag(odd, T93, X193, T94) → U7_ggag(T93, X193, T94, lastH_in_gag(T93, X193, T94))
lastH_in_gag(.(T107, []), T107, []) → lastH_out_gag(.(T107, []), T107, [])
lastH_in_gag(.(T114, T115), X220, .(T114, T116)) → U6_gag(T114, T115, X220, T116, lastH_in_gag(T115, X220, T116))
U6_gag(T114, T115, X220, T116, lastH_out_gag(T115, X220, T116)) → lastH_out_gag(.(T114, T115), X220, .(T114, T116))
U7_ggag(T93, X193, T94, lastH_out_gag(T93, X193, T94)) → pJ_out_ggag(odd, T93, X193, T94)
U15_gaaaa(T92, T93, T94, T95, X193, pJ_out_ggag(T95, T93, X193, T94)) → pC_out_gaaaa(T92, T93, T94, T95, X193)
U2_g(T92, pC_out_gaaaa(T92, X190, X191, X192, X193)) → palindromeA_out_g(T92)

The argument filtering Pi contains the following mapping:
palindromeA_in_g(x1)  =  palindromeA_in_g(x1)
[]  =  []
palindromeA_out_g(x1)  =  palindromeA_out_g(x1)
.(x1, x2)  =  .(x1, x2)
U1_g(x1, x2, x3, x4)  =  U1_g(x1, x2, x3, x4)
pB_in_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8)  =  pB_in_ggaaaaag(x1, x2, x8)
U8_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U8_ggaaaaag(x1, x2, x8, x9)
lastE_in_ggaa(x1, x2, x3, x4)  =  lastE_in_ggaa(x1, x2)
lastE_out_ggaa(x1, x2, x3, x4)  =  lastE_out_ggaa(x1, x2, x3, x4)
U4_ggaa(x1, x2, x3, x4, x5)  =  U4_ggaa(x1, x2, x5)
lastD_in_gaa(x1, x2, x3)  =  lastD_in_gaa(x1)
lastD_out_gaa(x1, x2, x3)  =  lastD_out_gaa(x1, x2, x3)
U3_gaa(x1, x2, x3, x4, x5)  =  U3_gaa(x1, x2, x5)
U9_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8, x9)  =  U9_ggaaaaag(x1, x2, x3, x4, x8, x9)
pK_in_gaaagg(x1, x2, x3, x4, x5, x6)  =  pK_in_gaaagg(x1, x5, x6)
U10_gaaagg(x1, x2, x3, x4, x5, x6, x7)  =  U10_gaaagg(x1, x5, x6, x7)
halvesF_in_gaaa(x1, x2, x3, x4)  =  halvesF_in_gaaa(x1)
halvesF_out_gaaa(x1, x2, x3, x4)  =  halvesF_out_gaaa(x1, x2, x3, x4)
U5_gaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  U5_gaaa(x1, x2, x3, x8)
pG_in_ggaaaaa(x1, x2, x3, x4, x5, x6, x7)  =  pG_in_ggaaaaa(x1, x2)
U12_ggaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  U12_ggaaaaa(x1, x2, x8)
U13_ggaaaaa(x1, x2, x3, x4, x5, x6, x7, x8)  =  U13_ggaaaaa(x1, x2, x3, x4, x8)
pG_out_ggaaaaa(x1, x2, x3, x4, x5, x6, x7)  =  pG_out_ggaaaaa(x1, x2, x3, x4, x5, x6, x7)
U11_gaaagg(x1, x2, x3, x4, x5, x6, x7)  =  U11_gaaagg(x1, x2, x3, x4, x5, x6, x7)
pI_in_ggggg(x1, x2, x3, x4, x5)  =  pI_in_ggggg(x1, x2, x3, x4, x5)
even  =  even
pI_out_ggggg(x1, x2, x3, x4, x5)  =  pI_out_ggggg(x1, x2, x3, x4, x5)
pK_out_gaaagg(x1, x2, x3, x4, x5, x6)  =  pK_out_gaaagg(x1, x2, x3, x4, x5, x6)
pB_out_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8)  =  pB_out_ggaaaaag(x1, x2, x3, x4, x5, x6, x7, x8)
U2_g(x1, x2)  =  U2_g(x1, x2)
pC_in_gaaaa(x1, x2, x3, x4, x5)  =  pC_in_gaaaa(x1)
U14_gaaaa(x1, x2, x3, x4, x5, x6)  =  U14_gaaaa(x1, x6)
U15_gaaaa(x1, x2, x3, x4, x5, x6)  =  U15_gaaaa(x1, x2, x3, x4, x6)
pJ_in_ggag(x1, x2, x3, x4)  =  pJ_in_ggag(x1, x2, x4)
odd  =  odd
U7_ggag(x1, x2, x3, x4)  =  U7_ggag(x1, x3, x4)
lastH_in_gag(x1, x2, x3)  =  lastH_in_gag(x1, x3)
lastH_out_gag(x1, x2, x3)  =  lastH_out_gag(x1, x2, x3)
U6_gag(x1, x2, x3, x4, x5)  =  U6_gag(x1, x2, x4, x5)
pJ_out_ggag(x1, x2, x3, x4)  =  pJ_out_ggag(x1, x2, x3, x4)
pC_out_gaaaa(x1, x2, x3, x4, x5)  =  pC_out_gaaaa(x1, x2, x3, x4, x5)
HALVESF_IN_GAAA(x1, x2, x3, x4)  =  HALVESF_IN_GAAA(x1)
PG_IN_GGAAAAA(x1, x2, x3, x4, x5, x6, x7)  =  PG_IN_GGAAAAA(x1, x2)
U12_GGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  U12_GGAAAAA(x1, x2, x8)

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:

PG_IN_GGAAAAA(T73, T74, T77, T78, X169, X171, X172) → U12_GGAAAAA(T73, T74, T77, T78, X169, X171, X172, lastE_in_ggaa(T73, T74, T77, T78))
U12_GGAAAAA(T73, T74, T77, T78, X169, X171, X172, lastE_out_ggaa(T73, T74, T77, T78)) → HALVESF_IN_GAAA(T78, X169, X171, X172)
HALVESF_IN_GAAA(.(T72, .(T73, T74)), .(T72, X169), .(X170, X171), X172) → PG_IN_GGAAAAA(T73, T74, X170, X168, X169, X171, X172)

The TRS R consists of the following rules:

lastE_in_ggaa(T34, [], T34, []) → lastE_out_ggaa(T34, [], T34, [])
lastE_in_ggaa(T41, T42, X104, .(T41, X105)) → U4_ggaa(T41, T42, X104, X105, lastD_in_gaa(T42, X104, X105))
U4_ggaa(T41, T42, X104, X105, lastD_out_gaa(T42, X104, X105)) → lastE_out_ggaa(T41, T42, X104, .(T41, X105))
lastD_in_gaa(.(T49, []), T49, []) → lastD_out_gaa(.(T49, []), T49, [])
lastD_in_gaa(.(T54, T55), X129, .(T54, X130)) → U3_gaa(T54, T55, X129, X130, lastD_in_gaa(T55, X129, X130))
U3_gaa(T54, T55, X129, X130, lastD_out_gaa(T55, X129, X130)) → lastD_out_gaa(.(T54, T55), X129, .(T54, X130))

The argument filtering Pi contains the following mapping:
[]  =  []
.(x1, x2)  =  .(x1, x2)
lastE_in_ggaa(x1, x2, x3, x4)  =  lastE_in_ggaa(x1, x2)
lastE_out_ggaa(x1, x2, x3, x4)  =  lastE_out_ggaa(x1, x2, x3, x4)
U4_ggaa(x1, x2, x3, x4, x5)  =  U4_ggaa(x1, x2, x5)
lastD_in_gaa(x1, x2, x3)  =  lastD_in_gaa(x1)
lastD_out_gaa(x1, x2, x3)  =  lastD_out_gaa(x1, x2, x3)
U3_gaa(x1, x2, x3, x4, x5)  =  U3_gaa(x1, x2, x5)
HALVESF_IN_GAAA(x1, x2, x3, x4)  =  HALVESF_IN_GAAA(x1)
PG_IN_GGAAAAA(x1, x2, x3, x4, x5, x6, x7)  =  PG_IN_GGAAAAA(x1, x2)
U12_GGAAAAA(x1, x2, x3, x4, x5, x6, x7, x8)  =  U12_GGAAAAA(x1, x2, x8)

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:

PG_IN_GGAAAAA(T73, T74) → U12_GGAAAAA(T73, T74, lastE_in_ggaa(T73, T74))
U12_GGAAAAA(T73, T74, lastE_out_ggaa(T73, T74, T77, T78)) → HALVESF_IN_GAAA(T78)
HALVESF_IN_GAAA(.(T72, .(T73, T74))) → PG_IN_GGAAAAA(T73, T74)

The TRS R consists of the following rules:

lastE_in_ggaa(T34, []) → lastE_out_ggaa(T34, [], T34, [])
lastE_in_ggaa(T41, T42) → U4_ggaa(T41, T42, lastD_in_gaa(T42))
U4_ggaa(T41, T42, lastD_out_gaa(T42, X104, X105)) → lastE_out_ggaa(T41, T42, X104, .(T41, X105))
lastD_in_gaa(.(T49, [])) → lastD_out_gaa(.(T49, []), T49, [])
lastD_in_gaa(.(T54, T55)) → U3_gaa(T54, T55, lastD_in_gaa(T55))
U3_gaa(T54, T55, lastD_out_gaa(T55, X129, X130)) → lastD_out_gaa(.(T54, T55), X129, .(T54, X130))

The set Q consists of the following terms:

lastE_in_ggaa(x0, x1)
U4_ggaa(x0, x1, x2)
lastD_in_gaa(x0)
U3_gaa(x0, x1, x2)

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

(26) QDPOrderProof (EQUIVALENT transformation)

We use the reduction pair processor [LPAR04,JAR06].


The following pairs can be oriented strictly and are deleted.


HALVESF_IN_GAAA(.(T72, .(T73, T74))) → PG_IN_GGAAAAA(T73, T74)
The remaining pairs can at least be oriented weakly.
Used ordering: Polynomial interpretation [POLO]:

POL(.(x1, x2)) = 1 + x2   
POL(HALVESF_IN_GAAA(x1)) = x1   
POL(PG_IN_GGAAAAA(x1, x2)) = x2   
POL(U12_GGAAAAA(x1, x2, x3)) = x3   
POL(U3_gaa(x1, x2, x3)) = 1 + x3   
POL(U4_ggaa(x1, x2, x3)) = x3   
POL([]) = 0   
POL(lastD_in_gaa(x1)) = x1   
POL(lastD_out_gaa(x1, x2, x3)) = 1 + x3   
POL(lastE_in_ggaa(x1, x2)) = x2   
POL(lastE_out_ggaa(x1, x2, x3, x4)) = x4   

The following usable rules [FROCOS05] with respect to the argument filtering of the ordering [JAR06] were oriented:

lastE_in_ggaa(T34, []) → lastE_out_ggaa(T34, [], T34, [])
lastE_in_ggaa(T41, T42) → U4_ggaa(T41, T42, lastD_in_gaa(T42))
lastD_in_gaa(.(T49, [])) → lastD_out_gaa(.(T49, []), T49, [])
lastD_in_gaa(.(T54, T55)) → U3_gaa(T54, T55, lastD_in_gaa(T55))
U4_ggaa(T41, T42, lastD_out_gaa(T42, X104, X105)) → lastE_out_ggaa(T41, T42, X104, .(T41, X105))
U3_gaa(T54, T55, lastD_out_gaa(T55, X129, X130)) → lastD_out_gaa(.(T54, T55), X129, .(T54, X130))

(27) Obligation:

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

PG_IN_GGAAAAA(T73, T74) → U12_GGAAAAA(T73, T74, lastE_in_ggaa(T73, T74))
U12_GGAAAAA(T73, T74, lastE_out_ggaa(T73, T74, T77, T78)) → HALVESF_IN_GAAA(T78)

The TRS R consists of the following rules:

lastE_in_ggaa(T34, []) → lastE_out_ggaa(T34, [], T34, [])
lastE_in_ggaa(T41, T42) → U4_ggaa(T41, T42, lastD_in_gaa(T42))
U4_ggaa(T41, T42, lastD_out_gaa(T42, X104, X105)) → lastE_out_ggaa(T41, T42, X104, .(T41, X105))
lastD_in_gaa(.(T49, [])) → lastD_out_gaa(.(T49, []), T49, [])
lastD_in_gaa(.(T54, T55)) → U3_gaa(T54, T55, lastD_in_gaa(T55))
U3_gaa(T54, T55, lastD_out_gaa(T55, X129, X130)) → lastD_out_gaa(.(T54, T55), X129, .(T54, X130))

The set Q consists of the following terms:

lastE_in_ggaa(x0, x1)
U4_ggaa(x0, x1, x2)
lastD_in_gaa(x0)
U3_gaa(x0, x1, x2)

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

(28) DependencyGraphProof (EQUIVALENT transformation)

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

(29) TRUE