0 Prolog
↳1 PrologToPrologProblemTransformerProof (⇐)
↳2 Prolog
↳3 PrologToPiTRSProof (⇐)
↳4 PiTRS
↳5 DependencyPairsProof (⇔)
↳6 PiDP
↳7 DependencyGraphProof (⇔)
↳8 PiDP
↳9 UsableRulesProof (⇔)
↳10 PiDP
↳11 PiDPToQDPProof (⇔)
↳12 QDP
↳13 QDPSizeChangeProof (⇔)
↳14 YES
palindrome1_in_g(.(T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265))))))))) → U2_g(T272, T271, T270, T269, T268, T267, T266, T264, T265, reverse346_in_ggggg(T265, T264, .(T266, .(T267, .(T268, .(T269, .(T270, .(T271, .(T272, []))))))), T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265)))))))))
reverse346_in_ggggg(.(T315, T316), T317, T318, T319, T320) → U1_ggggg(T315, T316, T317, T318, T319, T320, reverse346_in_ggggg(T316, T315, .(T317, T318), T319, T320))
reverse346_in_ggggg([], T332, T333, T332, T333) → reverse346_out_ggggg([], T332, T333, T332, T333)
U1_ggggg(T315, T316, T317, T318, T319, T320, reverse346_out_ggggg(T316, T315, .(T317, T318), T319, T320)) → reverse346_out_ggggg(.(T315, T316), T317, T318, T319, T320)
U2_g(T272, T271, T270, T269, T268, T267, T266, T264, T265, reverse346_out_ggggg(T265, T264, .(T266, .(T267, .(T268, .(T269, .(T270, .(T271, .(T272, []))))))), T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265))))))))) → palindrome1_out_g(.(T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265)))))))))
palindrome1_in_g(.(T354, .(T353, .(T352, .(T351, .(T352, .(T353, .(T354, [])))))))) → palindrome1_out_g(.(T354, .(T353, .(T352, .(T351, .(T352, .(T353, .(T354, []))))))))
palindrome1_in_g(.(T372, .(T371, .(T370, .(T370, .(T371, .(T372, []))))))) → palindrome1_out_g(.(T372, .(T371, .(T370, .(T370, .(T371, .(T372, [])))))))
palindrome1_in_g(.(T387, .(T386, .(T385, .(T386, .(T387, [])))))) → palindrome1_out_g(.(T387, .(T386, .(T385, .(T386, .(T387, []))))))
palindrome1_in_g(.(T399, .(T398, .(T398, .(T399, []))))) → palindrome1_out_g(.(T399, .(T398, .(T398, .(T399, [])))))
palindrome1_in_g(.(T408, .(T407, .(T408, [])))) → palindrome1_out_g(.(T408, .(T407, .(T408, []))))
palindrome1_in_g(.(T414, .(T414, []))) → palindrome1_out_g(.(T414, .(T414, [])))
palindrome1_in_g(.(T417, [])) → palindrome1_out_g(.(T417, []))
palindrome1_in_g([]) → palindrome1_out_g([])
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
palindrome1_in_g(.(T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265))))))))) → U2_g(T272, T271, T270, T269, T268, T267, T266, T264, T265, reverse346_in_ggggg(T265, T264, .(T266, .(T267, .(T268, .(T269, .(T270, .(T271, .(T272, []))))))), T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265)))))))))
reverse346_in_ggggg(.(T315, T316), T317, T318, T319, T320) → U1_ggggg(T315, T316, T317, T318, T319, T320, reverse346_in_ggggg(T316, T315, .(T317, T318), T319, T320))
reverse346_in_ggggg([], T332, T333, T332, T333) → reverse346_out_ggggg([], T332, T333, T332, T333)
U1_ggggg(T315, T316, T317, T318, T319, T320, reverse346_out_ggggg(T316, T315, .(T317, T318), T319, T320)) → reverse346_out_ggggg(.(T315, T316), T317, T318, T319, T320)
U2_g(T272, T271, T270, T269, T268, T267, T266, T264, T265, reverse346_out_ggggg(T265, T264, .(T266, .(T267, .(T268, .(T269, .(T270, .(T271, .(T272, []))))))), T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265))))))))) → palindrome1_out_g(.(T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265)))))))))
palindrome1_in_g(.(T354, .(T353, .(T352, .(T351, .(T352, .(T353, .(T354, [])))))))) → palindrome1_out_g(.(T354, .(T353, .(T352, .(T351, .(T352, .(T353, .(T354, []))))))))
palindrome1_in_g(.(T372, .(T371, .(T370, .(T370, .(T371, .(T372, []))))))) → palindrome1_out_g(.(T372, .(T371, .(T370, .(T370, .(T371, .(T372, [])))))))
palindrome1_in_g(.(T387, .(T386, .(T385, .(T386, .(T387, [])))))) → palindrome1_out_g(.(T387, .(T386, .(T385, .(T386, .(T387, []))))))
palindrome1_in_g(.(T399, .(T398, .(T398, .(T399, []))))) → palindrome1_out_g(.(T399, .(T398, .(T398, .(T399, [])))))
palindrome1_in_g(.(T408, .(T407, .(T408, [])))) → palindrome1_out_g(.(T408, .(T407, .(T408, []))))
palindrome1_in_g(.(T414, .(T414, []))) → palindrome1_out_g(.(T414, .(T414, [])))
palindrome1_in_g(.(T417, [])) → palindrome1_out_g(.(T417, []))
palindrome1_in_g([]) → palindrome1_out_g([])
PALINDROME1_IN_G(.(T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265))))))))) → U2_G(T272, T271, T270, T269, T268, T267, T266, T264, T265, reverse346_in_ggggg(T265, T264, .(T266, .(T267, .(T268, .(T269, .(T270, .(T271, .(T272, []))))))), T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265)))))))))
PALINDROME1_IN_G(.(T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265))))))))) → REVERSE346_IN_GGGGG(T265, T264, .(T266, .(T267, .(T268, .(T269, .(T270, .(T271, .(T272, []))))))), T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265))))))))
REVERSE346_IN_GGGGG(.(T315, T316), T317, T318, T319, T320) → U1_GGGGG(T315, T316, T317, T318, T319, T320, reverse346_in_ggggg(T316, T315, .(T317, T318), T319, T320))
REVERSE346_IN_GGGGG(.(T315, T316), T317, T318, T319, T320) → REVERSE346_IN_GGGGG(T316, T315, .(T317, T318), T319, T320)
palindrome1_in_g(.(T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265))))))))) → U2_g(T272, T271, T270, T269, T268, T267, T266, T264, T265, reverse346_in_ggggg(T265, T264, .(T266, .(T267, .(T268, .(T269, .(T270, .(T271, .(T272, []))))))), T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265)))))))))
reverse346_in_ggggg(.(T315, T316), T317, T318, T319, T320) → U1_ggggg(T315, T316, T317, T318, T319, T320, reverse346_in_ggggg(T316, T315, .(T317, T318), T319, T320))
reverse346_in_ggggg([], T332, T333, T332, T333) → reverse346_out_ggggg([], T332, T333, T332, T333)
U1_ggggg(T315, T316, T317, T318, T319, T320, reverse346_out_ggggg(T316, T315, .(T317, T318), T319, T320)) → reverse346_out_ggggg(.(T315, T316), T317, T318, T319, T320)
U2_g(T272, T271, T270, T269, T268, T267, T266, T264, T265, reverse346_out_ggggg(T265, T264, .(T266, .(T267, .(T268, .(T269, .(T270, .(T271, .(T272, []))))))), T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265))))))))) → palindrome1_out_g(.(T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265)))))))))
palindrome1_in_g(.(T354, .(T353, .(T352, .(T351, .(T352, .(T353, .(T354, [])))))))) → palindrome1_out_g(.(T354, .(T353, .(T352, .(T351, .(T352, .(T353, .(T354, []))))))))
palindrome1_in_g(.(T372, .(T371, .(T370, .(T370, .(T371, .(T372, []))))))) → palindrome1_out_g(.(T372, .(T371, .(T370, .(T370, .(T371, .(T372, [])))))))
palindrome1_in_g(.(T387, .(T386, .(T385, .(T386, .(T387, [])))))) → palindrome1_out_g(.(T387, .(T386, .(T385, .(T386, .(T387, []))))))
palindrome1_in_g(.(T399, .(T398, .(T398, .(T399, []))))) → palindrome1_out_g(.(T399, .(T398, .(T398, .(T399, [])))))
palindrome1_in_g(.(T408, .(T407, .(T408, [])))) → palindrome1_out_g(.(T408, .(T407, .(T408, []))))
palindrome1_in_g(.(T414, .(T414, []))) → palindrome1_out_g(.(T414, .(T414, [])))
palindrome1_in_g(.(T417, [])) → palindrome1_out_g(.(T417, []))
palindrome1_in_g([]) → palindrome1_out_g([])
PALINDROME1_IN_G(.(T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265))))))))) → U2_G(T272, T271, T270, T269, T268, T267, T266, T264, T265, reverse346_in_ggggg(T265, T264, .(T266, .(T267, .(T268, .(T269, .(T270, .(T271, .(T272, []))))))), T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265)))))))))
PALINDROME1_IN_G(.(T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265))))))))) → REVERSE346_IN_GGGGG(T265, T264, .(T266, .(T267, .(T268, .(T269, .(T270, .(T271, .(T272, []))))))), T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265))))))))
REVERSE346_IN_GGGGG(.(T315, T316), T317, T318, T319, T320) → U1_GGGGG(T315, T316, T317, T318, T319, T320, reverse346_in_ggggg(T316, T315, .(T317, T318), T319, T320))
REVERSE346_IN_GGGGG(.(T315, T316), T317, T318, T319, T320) → REVERSE346_IN_GGGGG(T316, T315, .(T317, T318), T319, T320)
palindrome1_in_g(.(T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265))))))))) → U2_g(T272, T271, T270, T269, T268, T267, T266, T264, T265, reverse346_in_ggggg(T265, T264, .(T266, .(T267, .(T268, .(T269, .(T270, .(T271, .(T272, []))))))), T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265)))))))))
reverse346_in_ggggg(.(T315, T316), T317, T318, T319, T320) → U1_ggggg(T315, T316, T317, T318, T319, T320, reverse346_in_ggggg(T316, T315, .(T317, T318), T319, T320))
reverse346_in_ggggg([], T332, T333, T332, T333) → reverse346_out_ggggg([], T332, T333, T332, T333)
U1_ggggg(T315, T316, T317, T318, T319, T320, reverse346_out_ggggg(T316, T315, .(T317, T318), T319, T320)) → reverse346_out_ggggg(.(T315, T316), T317, T318, T319, T320)
U2_g(T272, T271, T270, T269, T268, T267, T266, T264, T265, reverse346_out_ggggg(T265, T264, .(T266, .(T267, .(T268, .(T269, .(T270, .(T271, .(T272, []))))))), T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265))))))))) → palindrome1_out_g(.(T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265)))))))))
palindrome1_in_g(.(T354, .(T353, .(T352, .(T351, .(T352, .(T353, .(T354, [])))))))) → palindrome1_out_g(.(T354, .(T353, .(T352, .(T351, .(T352, .(T353, .(T354, []))))))))
palindrome1_in_g(.(T372, .(T371, .(T370, .(T370, .(T371, .(T372, []))))))) → palindrome1_out_g(.(T372, .(T371, .(T370, .(T370, .(T371, .(T372, [])))))))
palindrome1_in_g(.(T387, .(T386, .(T385, .(T386, .(T387, [])))))) → palindrome1_out_g(.(T387, .(T386, .(T385, .(T386, .(T387, []))))))
palindrome1_in_g(.(T399, .(T398, .(T398, .(T399, []))))) → palindrome1_out_g(.(T399, .(T398, .(T398, .(T399, [])))))
palindrome1_in_g(.(T408, .(T407, .(T408, [])))) → palindrome1_out_g(.(T408, .(T407, .(T408, []))))
palindrome1_in_g(.(T414, .(T414, []))) → palindrome1_out_g(.(T414, .(T414, [])))
palindrome1_in_g(.(T417, [])) → palindrome1_out_g(.(T417, []))
palindrome1_in_g([]) → palindrome1_out_g([])
REVERSE346_IN_GGGGG(.(T315, T316), T317, T318, T319, T320) → REVERSE346_IN_GGGGG(T316, T315, .(T317, T318), T319, T320)
palindrome1_in_g(.(T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265))))))))) → U2_g(T272, T271, T270, T269, T268, T267, T266, T264, T265, reverse346_in_ggggg(T265, T264, .(T266, .(T267, .(T268, .(T269, .(T270, .(T271, .(T272, []))))))), T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265)))))))))
reverse346_in_ggggg(.(T315, T316), T317, T318, T319, T320) → U1_ggggg(T315, T316, T317, T318, T319, T320, reverse346_in_ggggg(T316, T315, .(T317, T318), T319, T320))
reverse346_in_ggggg([], T332, T333, T332, T333) → reverse346_out_ggggg([], T332, T333, T332, T333)
U1_ggggg(T315, T316, T317, T318, T319, T320, reverse346_out_ggggg(T316, T315, .(T317, T318), T319, T320)) → reverse346_out_ggggg(.(T315, T316), T317, T318, T319, T320)
U2_g(T272, T271, T270, T269, T268, T267, T266, T264, T265, reverse346_out_ggggg(T265, T264, .(T266, .(T267, .(T268, .(T269, .(T270, .(T271, .(T272, []))))))), T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265))))))))) → palindrome1_out_g(.(T272, .(T271, .(T270, .(T269, .(T268, .(T267, .(T266, .(T264, T265)))))))))
palindrome1_in_g(.(T354, .(T353, .(T352, .(T351, .(T352, .(T353, .(T354, [])))))))) → palindrome1_out_g(.(T354, .(T353, .(T352, .(T351, .(T352, .(T353, .(T354, []))))))))
palindrome1_in_g(.(T372, .(T371, .(T370, .(T370, .(T371, .(T372, []))))))) → palindrome1_out_g(.(T372, .(T371, .(T370, .(T370, .(T371, .(T372, [])))))))
palindrome1_in_g(.(T387, .(T386, .(T385, .(T386, .(T387, [])))))) → palindrome1_out_g(.(T387, .(T386, .(T385, .(T386, .(T387, []))))))
palindrome1_in_g(.(T399, .(T398, .(T398, .(T399, []))))) → palindrome1_out_g(.(T399, .(T398, .(T398, .(T399, [])))))
palindrome1_in_g(.(T408, .(T407, .(T408, [])))) → palindrome1_out_g(.(T408, .(T407, .(T408, []))))
palindrome1_in_g(.(T414, .(T414, []))) → palindrome1_out_g(.(T414, .(T414, [])))
palindrome1_in_g(.(T417, [])) → palindrome1_out_g(.(T417, []))
palindrome1_in_g([]) → palindrome1_out_g([])
REVERSE346_IN_GGGGG(.(T315, T316), T317, T318, T319, T320) → REVERSE346_IN_GGGGG(T316, T315, .(T317, T318), T319, T320)
REVERSE346_IN_GGGGG(.(T315, T316), T317, T318, T319, T320) → REVERSE346_IN_GGGGG(T316, T315, .(T317, T318), T319, T320)
From the DPs we obtained the following set of size-change graphs: