0 Prolog
↳1 PrologToDTProblemTransformerProof (⇐)
↳2 TRIPLES
↳3 TriplesToPiDPProof (⇐)
↳4 PiDP
↳5 DependencyGraphProof (⇔)
↳6 AND
↳7 PiDP
↳8 UsableRulesProof (⇔)
↳9 PiDP
↳10 PiDPToQDPProof (⇐)
↳11 QDP
↳12 QDPSizeChangeProof (⇔)
↳13 YES
↳14 PiDP
↳15 UsableRulesProof (⇔)
↳16 PiDP
↳17 PiDPToQDPProof (⇐)
↳18 QDP
↳19 QDPSizeChangeProof (⇔)
↳20 YES
↳21 PiDP
↳22 UsableRulesProof (⇔)
↳23 PiDP
↳24 PiDPToQDPProof (⇐)
↳25 QDP
↳26 QDPOrderProof (⇔)
↳27 QDP
↳28 PisEmptyProof (⇔)
↳29 YES
PALINDROME1_IN_G(.(T21, .(T22, T23))) → U7_G(T21, T22, T23, last24_in_ggaa(T22, T23, X75, X73))
PALINDROME1_IN_G(.(T21, .(T22, T23))) → LAST24_IN_GGAA(T22, T23, X75, X73)
LAST24_IN_GGAA(T41, T42, X113, .(T41, X114)) → U2_GGAA(T41, T42, X113, X114, last32_in_gaa(T42, X113, X114))
LAST24_IN_GGAA(T41, T42, X113, .(T41, X114)) → LAST32_IN_GAA(T42, X113, X114)
LAST32_IN_GAA(.(T54, T55), X139, .(T54, X140)) → U1_GAA(T54, T55, X139, X140, last32_in_gaa(T55, X139, X140))
LAST32_IN_GAA(.(T54, T55), X139, .(T54, X140)) → LAST32_IN_GAA(T55, X139, X140)
PALINDROME1_IN_G(.(T21, .(T22, T23))) → U8_G(T21, T22, T23, lastc24_in_ggaa(T22, T23, T26, T27))
U8_G(T21, T22, T23, lastc24_out_ggaa(T22, T23, T26, T27)) → U9_G(T21, T22, T23, halves41_in_gaaa(T27, X74, X76, X77))
U8_G(T21, T22, T23, lastc24_out_ggaa(T22, T23, T26, T27)) → HALVES41_IN_GAAA(T27, X74, X76, X77)
HALVES41_IN_GAAA(.(T72, .(T73, T74)), .(T72, X184), .(X185, X186), X187) → U3_GAAA(T72, T73, T74, X184, X185, X186, X187, last24_in_ggaa(T73, T74, X185, X183))
HALVES41_IN_GAAA(.(T72, .(T73, T74)), .(T72, X184), .(X185, X186), X187) → LAST24_IN_GGAA(T73, T74, X185, X183)
HALVES41_IN_GAAA(.(T72, .(T73, T74)), .(T72, X184), .(T77, X186), X187) → U4_GAAA(T72, T73, T74, X184, T77, X186, X187, lastc24_in_ggaa(T73, T74, T77, T78))
U4_GAAA(T72, T73, T74, X184, T77, X186, X187, lastc24_out_ggaa(T73, T74, T77, T78)) → U5_GAAA(T72, T73, T74, X184, T77, X186, X187, halves41_in_gaaa(T78, X184, X186, X187))
U4_GAAA(T72, T73, T74, X184, T77, X186, X187, lastc24_out_ggaa(T73, T74, T77, T78)) → HALVES41_IN_GAAA(T78, X184, X186, X187)
PALINDROME1_IN_G(T92) → U10_G(T92, halves41_in_gaaa(T92, X214, X215, X216))
PALINDROME1_IN_G(T92) → HALVES41_IN_GAAA(T92, X214, X215, X216)
PALINDROME1_IN_G(T92) → U11_G(T92, halvesc41_in_gaag(T92, T93, T94, odd))
U11_G(T92, halvesc41_out_gaag(T92, T93, T94, odd)) → U12_G(T92, last70_in_gag(T93, X217, T94))
U11_G(T92, halvesc41_out_gaag(T92, T93, T94, odd)) → LAST70_IN_GAG(T93, X217, T94)
LAST70_IN_GAG(.(T114, T115), X246, .(T114, T116)) → U6_GAG(T114, T115, X246, T116, last70_in_gag(T115, X246, T116))
LAST70_IN_GAG(.(T114, T115), X246, .(T114, T116)) → LAST70_IN_GAG(T115, X246, T116)
lastc24_in_ggaa(T34, [], T34, []) → lastc24_out_ggaa(T34, [], T34, [])
lastc24_in_ggaa(T41, T42, X113, .(T41, X114)) → U15_ggaa(T41, T42, X113, X114, lastc32_in_gaa(T42, X113, X114))
lastc32_in_gaa(.(T49, []), T49, []) → lastc32_out_gaa(.(T49, []), T49, [])
lastc32_in_gaa(.(T54, T55), X139, .(T54, X140)) → U14_gaa(T54, T55, X139, X140, lastc32_in_gaa(T55, X139, X140))
U14_gaa(T54, T55, X139, X140, lastc32_out_gaa(T55, X139, X140)) → lastc32_out_gaa(.(T54, T55), X139, .(T54, X140))
U15_ggaa(T41, T42, X113, X114, lastc32_out_gaa(T42, X113, X114)) → lastc24_out_ggaa(T41, T42, X113, .(T41, X114))
halvesc41_in_gaag([], [], [], even) → halvesc41_out_gaag([], [], [], even)
halvesc41_in_gaag(.(T65, []), .(T65, []), [], odd) → halvesc41_out_gaag(.(T65, []), .(T65, []), [], odd)
halvesc41_in_gaag(.(T72, .(T73, T74)), .(T72, X184), .(T77, X186), X187) → U16_gaag(T72, T73, T74, X184, T77, X186, X187, lastc24_in_ggaa(T73, T74, T77, T78))
U16_gaag(T72, T73, T74, X184, T77, X186, X187, lastc24_out_ggaa(T73, T74, T77, T78)) → U17_gaag(T72, T73, T74, X184, T77, X186, X187, halvesc41_in_gaag(T78, X184, X186, X187))
U17_gaag(T72, T73, T74, X184, T77, X186, X187, halvesc41_out_gaag(T78, X184, X186, X187)) → halvesc41_out_gaag(.(T72, .(T73, T74)), .(T72, X184), .(T77, X186), X187)
Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES
PALINDROME1_IN_G(.(T21, .(T22, T23))) → U7_G(T21, T22, T23, last24_in_ggaa(T22, T23, X75, X73))
PALINDROME1_IN_G(.(T21, .(T22, T23))) → LAST24_IN_GGAA(T22, T23, X75, X73)
LAST24_IN_GGAA(T41, T42, X113, .(T41, X114)) → U2_GGAA(T41, T42, X113, X114, last32_in_gaa(T42, X113, X114))
LAST24_IN_GGAA(T41, T42, X113, .(T41, X114)) → LAST32_IN_GAA(T42, X113, X114)
LAST32_IN_GAA(.(T54, T55), X139, .(T54, X140)) → U1_GAA(T54, T55, X139, X140, last32_in_gaa(T55, X139, X140))
LAST32_IN_GAA(.(T54, T55), X139, .(T54, X140)) → LAST32_IN_GAA(T55, X139, X140)
PALINDROME1_IN_G(.(T21, .(T22, T23))) → U8_G(T21, T22, T23, lastc24_in_ggaa(T22, T23, T26, T27))
U8_G(T21, T22, T23, lastc24_out_ggaa(T22, T23, T26, T27)) → U9_G(T21, T22, T23, halves41_in_gaaa(T27, X74, X76, X77))
U8_G(T21, T22, T23, lastc24_out_ggaa(T22, T23, T26, T27)) → HALVES41_IN_GAAA(T27, X74, X76, X77)
HALVES41_IN_GAAA(.(T72, .(T73, T74)), .(T72, X184), .(X185, X186), X187) → U3_GAAA(T72, T73, T74, X184, X185, X186, X187, last24_in_ggaa(T73, T74, X185, X183))
HALVES41_IN_GAAA(.(T72, .(T73, T74)), .(T72, X184), .(X185, X186), X187) → LAST24_IN_GGAA(T73, T74, X185, X183)
HALVES41_IN_GAAA(.(T72, .(T73, T74)), .(T72, X184), .(T77, X186), X187) → U4_GAAA(T72, T73, T74, X184, T77, X186, X187, lastc24_in_ggaa(T73, T74, T77, T78))
U4_GAAA(T72, T73, T74, X184, T77, X186, X187, lastc24_out_ggaa(T73, T74, T77, T78)) → U5_GAAA(T72, T73, T74, X184, T77, X186, X187, halves41_in_gaaa(T78, X184, X186, X187))
U4_GAAA(T72, T73, T74, X184, T77, X186, X187, lastc24_out_ggaa(T73, T74, T77, T78)) → HALVES41_IN_GAAA(T78, X184, X186, X187)
PALINDROME1_IN_G(T92) → U10_G(T92, halves41_in_gaaa(T92, X214, X215, X216))
PALINDROME1_IN_G(T92) → HALVES41_IN_GAAA(T92, X214, X215, X216)
PALINDROME1_IN_G(T92) → U11_G(T92, halvesc41_in_gaag(T92, T93, T94, odd))
U11_G(T92, halvesc41_out_gaag(T92, T93, T94, odd)) → U12_G(T92, last70_in_gag(T93, X217, T94))
U11_G(T92, halvesc41_out_gaag(T92, T93, T94, odd)) → LAST70_IN_GAG(T93, X217, T94)
LAST70_IN_GAG(.(T114, T115), X246, .(T114, T116)) → U6_GAG(T114, T115, X246, T116, last70_in_gag(T115, X246, T116))
LAST70_IN_GAG(.(T114, T115), X246, .(T114, T116)) → LAST70_IN_GAG(T115, X246, T116)
lastc24_in_ggaa(T34, [], T34, []) → lastc24_out_ggaa(T34, [], T34, [])
lastc24_in_ggaa(T41, T42, X113, .(T41, X114)) → U15_ggaa(T41, T42, X113, X114, lastc32_in_gaa(T42, X113, X114))
lastc32_in_gaa(.(T49, []), T49, []) → lastc32_out_gaa(.(T49, []), T49, [])
lastc32_in_gaa(.(T54, T55), X139, .(T54, X140)) → U14_gaa(T54, T55, X139, X140, lastc32_in_gaa(T55, X139, X140))
U14_gaa(T54, T55, X139, X140, lastc32_out_gaa(T55, X139, X140)) → lastc32_out_gaa(.(T54, T55), X139, .(T54, X140))
U15_ggaa(T41, T42, X113, X114, lastc32_out_gaa(T42, X113, X114)) → lastc24_out_ggaa(T41, T42, X113, .(T41, X114))
halvesc41_in_gaag([], [], [], even) → halvesc41_out_gaag([], [], [], even)
halvesc41_in_gaag(.(T65, []), .(T65, []), [], odd) → halvesc41_out_gaag(.(T65, []), .(T65, []), [], odd)
halvesc41_in_gaag(.(T72, .(T73, T74)), .(T72, X184), .(T77, X186), X187) → U16_gaag(T72, T73, T74, X184, T77, X186, X187, lastc24_in_ggaa(T73, T74, T77, T78))
U16_gaag(T72, T73, T74, X184, T77, X186, X187, lastc24_out_ggaa(T73, T74, T77, T78)) → U17_gaag(T72, T73, T74, X184, T77, X186, X187, halvesc41_in_gaag(T78, X184, X186, X187))
U17_gaag(T72, T73, T74, X184, T77, X186, X187, halvesc41_out_gaag(T78, X184, X186, X187)) → halvesc41_out_gaag(.(T72, .(T73, T74)), .(T72, X184), .(T77, X186), X187)
LAST70_IN_GAG(.(T114, T115), X246, .(T114, T116)) → LAST70_IN_GAG(T115, X246, T116)
lastc24_in_ggaa(T34, [], T34, []) → lastc24_out_ggaa(T34, [], T34, [])
lastc24_in_ggaa(T41, T42, X113, .(T41, X114)) → U15_ggaa(T41, T42, X113, X114, lastc32_in_gaa(T42, X113, X114))
lastc32_in_gaa(.(T49, []), T49, []) → lastc32_out_gaa(.(T49, []), T49, [])
lastc32_in_gaa(.(T54, T55), X139, .(T54, X140)) → U14_gaa(T54, T55, X139, X140, lastc32_in_gaa(T55, X139, X140))
U14_gaa(T54, T55, X139, X140, lastc32_out_gaa(T55, X139, X140)) → lastc32_out_gaa(.(T54, T55), X139, .(T54, X140))
U15_ggaa(T41, T42, X113, X114, lastc32_out_gaa(T42, X113, X114)) → lastc24_out_ggaa(T41, T42, X113, .(T41, X114))
halvesc41_in_gaag([], [], [], even) → halvesc41_out_gaag([], [], [], even)
halvesc41_in_gaag(.(T65, []), .(T65, []), [], odd) → halvesc41_out_gaag(.(T65, []), .(T65, []), [], odd)
halvesc41_in_gaag(.(T72, .(T73, T74)), .(T72, X184), .(T77, X186), X187) → U16_gaag(T72, T73, T74, X184, T77, X186, X187, lastc24_in_ggaa(T73, T74, T77, T78))
U16_gaag(T72, T73, T74, X184, T77, X186, X187, lastc24_out_ggaa(T73, T74, T77, T78)) → U17_gaag(T72, T73, T74, X184, T77, X186, X187, halvesc41_in_gaag(T78, X184, X186, X187))
U17_gaag(T72, T73, T74, X184, T77, X186, X187, halvesc41_out_gaag(T78, X184, X186, X187)) → halvesc41_out_gaag(.(T72, .(T73, T74)), .(T72, X184), .(T77, X186), X187)
LAST70_IN_GAG(.(T114, T115), X246, .(T114, T116)) → LAST70_IN_GAG(T115, X246, T116)
LAST70_IN_GAG(.(T114, T115), .(T114, T116)) → LAST70_IN_GAG(T115, T116)
From the DPs we obtained the following set of size-change graphs:
LAST32_IN_GAA(.(T54, T55), X139, .(T54, X140)) → LAST32_IN_GAA(T55, X139, X140)
lastc24_in_ggaa(T34, [], T34, []) → lastc24_out_ggaa(T34, [], T34, [])
lastc24_in_ggaa(T41, T42, X113, .(T41, X114)) → U15_ggaa(T41, T42, X113, X114, lastc32_in_gaa(T42, X113, X114))
lastc32_in_gaa(.(T49, []), T49, []) → lastc32_out_gaa(.(T49, []), T49, [])
lastc32_in_gaa(.(T54, T55), X139, .(T54, X140)) → U14_gaa(T54, T55, X139, X140, lastc32_in_gaa(T55, X139, X140))
U14_gaa(T54, T55, X139, X140, lastc32_out_gaa(T55, X139, X140)) → lastc32_out_gaa(.(T54, T55), X139, .(T54, X140))
U15_ggaa(T41, T42, X113, X114, lastc32_out_gaa(T42, X113, X114)) → lastc24_out_ggaa(T41, T42, X113, .(T41, X114))
halvesc41_in_gaag([], [], [], even) → halvesc41_out_gaag([], [], [], even)
halvesc41_in_gaag(.(T65, []), .(T65, []), [], odd) → halvesc41_out_gaag(.(T65, []), .(T65, []), [], odd)
halvesc41_in_gaag(.(T72, .(T73, T74)), .(T72, X184), .(T77, X186), X187) → U16_gaag(T72, T73, T74, X184, T77, X186, X187, lastc24_in_ggaa(T73, T74, T77, T78))
U16_gaag(T72, T73, T74, X184, T77, X186, X187, lastc24_out_ggaa(T73, T74, T77, T78)) → U17_gaag(T72, T73, T74, X184, T77, X186, X187, halvesc41_in_gaag(T78, X184, X186, X187))
U17_gaag(T72, T73, T74, X184, T77, X186, X187, halvesc41_out_gaag(T78, X184, X186, X187)) → halvesc41_out_gaag(.(T72, .(T73, T74)), .(T72, X184), .(T77, X186), X187)
LAST32_IN_GAA(.(T54, T55), X139, .(T54, X140)) → LAST32_IN_GAA(T55, X139, X140)
LAST32_IN_GAA(.(T54, T55)) → LAST32_IN_GAA(T55)
From the DPs we obtained the following set of size-change graphs:
HALVES41_IN_GAAA(.(T72, .(T73, T74)), .(T72, X184), .(T77, X186), X187) → U4_GAAA(T72, T73, T74, X184, T77, X186, X187, lastc24_in_ggaa(T73, T74, T77, T78))
U4_GAAA(T72, T73, T74, X184, T77, X186, X187, lastc24_out_ggaa(T73, T74, T77, T78)) → HALVES41_IN_GAAA(T78, X184, X186, X187)
lastc24_in_ggaa(T34, [], T34, []) → lastc24_out_ggaa(T34, [], T34, [])
lastc24_in_ggaa(T41, T42, X113, .(T41, X114)) → U15_ggaa(T41, T42, X113, X114, lastc32_in_gaa(T42, X113, X114))
lastc32_in_gaa(.(T49, []), T49, []) → lastc32_out_gaa(.(T49, []), T49, [])
lastc32_in_gaa(.(T54, T55), X139, .(T54, X140)) → U14_gaa(T54, T55, X139, X140, lastc32_in_gaa(T55, X139, X140))
U14_gaa(T54, T55, X139, X140, lastc32_out_gaa(T55, X139, X140)) → lastc32_out_gaa(.(T54, T55), X139, .(T54, X140))
U15_ggaa(T41, T42, X113, X114, lastc32_out_gaa(T42, X113, X114)) → lastc24_out_ggaa(T41, T42, X113, .(T41, X114))
halvesc41_in_gaag([], [], [], even) → halvesc41_out_gaag([], [], [], even)
halvesc41_in_gaag(.(T65, []), .(T65, []), [], odd) → halvesc41_out_gaag(.(T65, []), .(T65, []), [], odd)
halvesc41_in_gaag(.(T72, .(T73, T74)), .(T72, X184), .(T77, X186), X187) → U16_gaag(T72, T73, T74, X184, T77, X186, X187, lastc24_in_ggaa(T73, T74, T77, T78))
U16_gaag(T72, T73, T74, X184, T77, X186, X187, lastc24_out_ggaa(T73, T74, T77, T78)) → U17_gaag(T72, T73, T74, X184, T77, X186, X187, halvesc41_in_gaag(T78, X184, X186, X187))
U17_gaag(T72, T73, T74, X184, T77, X186, X187, halvesc41_out_gaag(T78, X184, X186, X187)) → halvesc41_out_gaag(.(T72, .(T73, T74)), .(T72, X184), .(T77, X186), X187)
HALVES41_IN_GAAA(.(T72, .(T73, T74)), .(T72, X184), .(T77, X186), X187) → U4_GAAA(T72, T73, T74, X184, T77, X186, X187, lastc24_in_ggaa(T73, T74, T77, T78))
U4_GAAA(T72, T73, T74, X184, T77, X186, X187, lastc24_out_ggaa(T73, T74, T77, T78)) → HALVES41_IN_GAAA(T78, X184, X186, X187)
lastc24_in_ggaa(T34, [], T34, []) → lastc24_out_ggaa(T34, [], T34, [])
lastc24_in_ggaa(T41, T42, X113, .(T41, X114)) → U15_ggaa(T41, T42, X113, X114, lastc32_in_gaa(T42, X113, X114))
U15_ggaa(T41, T42, X113, X114, lastc32_out_gaa(T42, X113, X114)) → lastc24_out_ggaa(T41, T42, X113, .(T41, X114))
lastc32_in_gaa(.(T49, []), T49, []) → lastc32_out_gaa(.(T49, []), T49, [])
lastc32_in_gaa(.(T54, T55), X139, .(T54, X140)) → U14_gaa(T54, T55, X139, X140, lastc32_in_gaa(T55, X139, X140))
U14_gaa(T54, T55, X139, X140, lastc32_out_gaa(T55, X139, X140)) → lastc32_out_gaa(.(T54, T55), X139, .(T54, X140))
HALVES41_IN_GAAA(.(T72, .(T73, T74))) → U4_GAAA(T72, T73, T74, lastc24_in_ggaa(T73, T74))
U4_GAAA(T72, T73, T74, lastc24_out_ggaa(T73, T74, T77, T78)) → HALVES41_IN_GAAA(T78)
lastc24_in_ggaa(T34, []) → lastc24_out_ggaa(T34, [], T34, [])
lastc24_in_ggaa(T41, T42) → U15_ggaa(T41, T42, lastc32_in_gaa(T42))
U15_ggaa(T41, T42, lastc32_out_gaa(T42, X113, X114)) → lastc24_out_ggaa(T41, T42, X113, .(T41, X114))
lastc32_in_gaa(.(T49, [])) → lastc32_out_gaa(.(T49, []), T49, [])
lastc32_in_gaa(.(T54, T55)) → U14_gaa(T54, T55, lastc32_in_gaa(T55))
U14_gaa(T54, T55, lastc32_out_gaa(T55, X139, X140)) → lastc32_out_gaa(.(T54, T55), X139, .(T54, X140))
lastc24_in_ggaa(x0, x1)
U15_ggaa(x0, x1, x2)
lastc32_in_gaa(x0)
U14_gaa(x0, x1, x2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
HALVES41_IN_GAAA(.(T72, .(T73, T74))) → U4_GAAA(T72, T73, T74, lastc24_in_ggaa(T73, T74))
U4_GAAA(T72, T73, T74, lastc24_out_ggaa(T73, T74, T77, T78)) → HALVES41_IN_GAAA(T78)
POL(.(x1, x2)) = 1 + x2
POL(HALVES41_IN_GAAA(x1)) = x1
POL(U14_gaa(x1, x2, x3)) = 1 + x3
POL(U15_ggaa(x1, x2, x3)) = 1 + x3
POL(U4_GAAA(x1, x2, x3, x4)) = x4
POL([]) = 1
POL(lastc24_in_ggaa(x1, x2)) = 1 + x2
POL(lastc24_out_ggaa(x1, x2, x3, x4)) = 1 + x4
POL(lastc32_in_gaa(x1)) = x1
POL(lastc32_out_gaa(x1, x2, x3)) = 1 + x3
lastc24_in_ggaa(T34, []) → lastc24_out_ggaa(T34, [], T34, [])
lastc24_in_ggaa(T41, T42) → U15_ggaa(T41, T42, lastc32_in_gaa(T42))
lastc32_in_gaa(.(T49, [])) → lastc32_out_gaa(.(T49, []), T49, [])
lastc32_in_gaa(.(T54, T55)) → U14_gaa(T54, T55, lastc32_in_gaa(T55))
U15_ggaa(T41, T42, lastc32_out_gaa(T42, X113, X114)) → lastc24_out_ggaa(T41, T42, X113, .(T41, X114))
U14_gaa(T54, T55, lastc32_out_gaa(T55, X139, X140)) → lastc32_out_gaa(.(T54, T55), X139, .(T54, X140))
lastc24_in_ggaa(T34, []) → lastc24_out_ggaa(T34, [], T34, [])
lastc24_in_ggaa(T41, T42) → U15_ggaa(T41, T42, lastc32_in_gaa(T42))
U15_ggaa(T41, T42, lastc32_out_gaa(T42, X113, X114)) → lastc24_out_ggaa(T41, T42, X113, .(T41, X114))
lastc32_in_gaa(.(T49, [])) → lastc32_out_gaa(.(T49, []), T49, [])
lastc32_in_gaa(.(T54, T55)) → U14_gaa(T54, T55, lastc32_in_gaa(T55))
U14_gaa(T54, T55, lastc32_out_gaa(T55, X139, X140)) → lastc32_out_gaa(.(T54, T55), X139, .(T54, X140))
lastc24_in_ggaa(x0, x1)
U15_ggaa(x0, x1, x2)
lastc32_in_gaa(x0)
U14_gaa(x0, x1, x2)