0 Prolog
↳1 PrologToPrologProblemTransformerProof (⇐)
↳2 Prolog
↳3 PrologToPiTRSProof (⇐)
↳4 PiTRS
↳5 DependencyPairsProof (⇔)
↳6 PiDP
↳7 DependencyGraphProof (⇔)
↳8 AND
↳9 PiDP
↳10 UsableRulesProof (⇔)
↳11 PiDP
↳12 PiDPToQDPProof (⇐)
↳13 QDP
↳14 QDPSizeChangeProof (⇔)
↳15 YES
↳16 PiDP
↳17 UsableRulesProof (⇔)
↳18 PiDP
↳19 PiDPToQDPProof (⇐)
↳20 QDP
↳21 QDPSizeChangeProof (⇔)
↳22 YES
goal1_in_g(s(T8)) → U3_g(T8, s2l9_in_ga(T8, X30))
s2l9_in_ga(s(T16), .(X67, X68)) → U1_ga(T16, X67, X68, s2l9_in_ga(T16, X68))
s2l9_in_ga(0, []) → s2l9_out_ga(0, [])
U1_ga(T16, X67, X68, s2l9_out_ga(T16, X68)) → s2l9_out_ga(s(T16), .(X67, X68))
U3_g(T8, s2l9_out_ga(T8, X30)) → goal1_out_g(s(T8))
goal1_in_g(s(T8)) → U4_g(T8, s2l9_in_ga(T8, T23))
U4_g(T8, s2l9_out_ga(T8, T23)) → U5_g(T8, append21_in_gaa(T23, X110, X111))
append21_in_gaa([], X125, X125) → append21_out_gaa([], X125, X125)
append21_in_gaa(.(T28, T30), X143, .(T28, X144)) → U2_gaa(T28, T30, X143, X144, append21_in_gaa(T30, X143, X144))
U2_gaa(T28, T30, X143, X144, append21_out_gaa(T30, X143, X144)) → append21_out_gaa(.(T28, T30), X143, .(T28, X144))
U5_g(T8, append21_out_gaa(T23, X110, X111)) → goal1_out_g(s(T8))
goal1_in_g(0) → goal1_out_g(0)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
goal1_in_g(s(T8)) → U3_g(T8, s2l9_in_ga(T8, X30))
s2l9_in_ga(s(T16), .(X67, X68)) → U1_ga(T16, X67, X68, s2l9_in_ga(T16, X68))
s2l9_in_ga(0, []) → s2l9_out_ga(0, [])
U1_ga(T16, X67, X68, s2l9_out_ga(T16, X68)) → s2l9_out_ga(s(T16), .(X67, X68))
U3_g(T8, s2l9_out_ga(T8, X30)) → goal1_out_g(s(T8))
goal1_in_g(s(T8)) → U4_g(T8, s2l9_in_ga(T8, T23))
U4_g(T8, s2l9_out_ga(T8, T23)) → U5_g(T8, append21_in_gaa(T23, X110, X111))
append21_in_gaa([], X125, X125) → append21_out_gaa([], X125, X125)
append21_in_gaa(.(T28, T30), X143, .(T28, X144)) → U2_gaa(T28, T30, X143, X144, append21_in_gaa(T30, X143, X144))
U2_gaa(T28, T30, X143, X144, append21_out_gaa(T30, X143, X144)) → append21_out_gaa(.(T28, T30), X143, .(T28, X144))
U5_g(T8, append21_out_gaa(T23, X110, X111)) → goal1_out_g(s(T8))
goal1_in_g(0) → goal1_out_g(0)
GOAL1_IN_G(s(T8)) → U3_G(T8, s2l9_in_ga(T8, X30))
GOAL1_IN_G(s(T8)) → S2L9_IN_GA(T8, X30)
S2L9_IN_GA(s(T16), .(X67, X68)) → U1_GA(T16, X67, X68, s2l9_in_ga(T16, X68))
S2L9_IN_GA(s(T16), .(X67, X68)) → S2L9_IN_GA(T16, X68)
GOAL1_IN_G(s(T8)) → U4_G(T8, s2l9_in_ga(T8, T23))
U4_G(T8, s2l9_out_ga(T8, T23)) → U5_G(T8, append21_in_gaa(T23, X110, X111))
U4_G(T8, s2l9_out_ga(T8, T23)) → APPEND21_IN_GAA(T23, X110, X111)
APPEND21_IN_GAA(.(T28, T30), X143, .(T28, X144)) → U2_GAA(T28, T30, X143, X144, append21_in_gaa(T30, X143, X144))
APPEND21_IN_GAA(.(T28, T30), X143, .(T28, X144)) → APPEND21_IN_GAA(T30, X143, X144)
goal1_in_g(s(T8)) → U3_g(T8, s2l9_in_ga(T8, X30))
s2l9_in_ga(s(T16), .(X67, X68)) → U1_ga(T16, X67, X68, s2l9_in_ga(T16, X68))
s2l9_in_ga(0, []) → s2l9_out_ga(0, [])
U1_ga(T16, X67, X68, s2l9_out_ga(T16, X68)) → s2l9_out_ga(s(T16), .(X67, X68))
U3_g(T8, s2l9_out_ga(T8, X30)) → goal1_out_g(s(T8))
goal1_in_g(s(T8)) → U4_g(T8, s2l9_in_ga(T8, T23))
U4_g(T8, s2l9_out_ga(T8, T23)) → U5_g(T8, append21_in_gaa(T23, X110, X111))
append21_in_gaa([], X125, X125) → append21_out_gaa([], X125, X125)
append21_in_gaa(.(T28, T30), X143, .(T28, X144)) → U2_gaa(T28, T30, X143, X144, append21_in_gaa(T30, X143, X144))
U2_gaa(T28, T30, X143, X144, append21_out_gaa(T30, X143, X144)) → append21_out_gaa(.(T28, T30), X143, .(T28, X144))
U5_g(T8, append21_out_gaa(T23, X110, X111)) → goal1_out_g(s(T8))
goal1_in_g(0) → goal1_out_g(0)
GOAL1_IN_G(s(T8)) → U3_G(T8, s2l9_in_ga(T8, X30))
GOAL1_IN_G(s(T8)) → S2L9_IN_GA(T8, X30)
S2L9_IN_GA(s(T16), .(X67, X68)) → U1_GA(T16, X67, X68, s2l9_in_ga(T16, X68))
S2L9_IN_GA(s(T16), .(X67, X68)) → S2L9_IN_GA(T16, X68)
GOAL1_IN_G(s(T8)) → U4_G(T8, s2l9_in_ga(T8, T23))
U4_G(T8, s2l9_out_ga(T8, T23)) → U5_G(T8, append21_in_gaa(T23, X110, X111))
U4_G(T8, s2l9_out_ga(T8, T23)) → APPEND21_IN_GAA(T23, X110, X111)
APPEND21_IN_GAA(.(T28, T30), X143, .(T28, X144)) → U2_GAA(T28, T30, X143, X144, append21_in_gaa(T30, X143, X144))
APPEND21_IN_GAA(.(T28, T30), X143, .(T28, X144)) → APPEND21_IN_GAA(T30, X143, X144)
goal1_in_g(s(T8)) → U3_g(T8, s2l9_in_ga(T8, X30))
s2l9_in_ga(s(T16), .(X67, X68)) → U1_ga(T16, X67, X68, s2l9_in_ga(T16, X68))
s2l9_in_ga(0, []) → s2l9_out_ga(0, [])
U1_ga(T16, X67, X68, s2l9_out_ga(T16, X68)) → s2l9_out_ga(s(T16), .(X67, X68))
U3_g(T8, s2l9_out_ga(T8, X30)) → goal1_out_g(s(T8))
goal1_in_g(s(T8)) → U4_g(T8, s2l9_in_ga(T8, T23))
U4_g(T8, s2l9_out_ga(T8, T23)) → U5_g(T8, append21_in_gaa(T23, X110, X111))
append21_in_gaa([], X125, X125) → append21_out_gaa([], X125, X125)
append21_in_gaa(.(T28, T30), X143, .(T28, X144)) → U2_gaa(T28, T30, X143, X144, append21_in_gaa(T30, X143, X144))
U2_gaa(T28, T30, X143, X144, append21_out_gaa(T30, X143, X144)) → append21_out_gaa(.(T28, T30), X143, .(T28, X144))
U5_g(T8, append21_out_gaa(T23, X110, X111)) → goal1_out_g(s(T8))
goal1_in_g(0) → goal1_out_g(0)
APPEND21_IN_GAA(.(T28, T30), X143, .(T28, X144)) → APPEND21_IN_GAA(T30, X143, X144)
goal1_in_g(s(T8)) → U3_g(T8, s2l9_in_ga(T8, X30))
s2l9_in_ga(s(T16), .(X67, X68)) → U1_ga(T16, X67, X68, s2l9_in_ga(T16, X68))
s2l9_in_ga(0, []) → s2l9_out_ga(0, [])
U1_ga(T16, X67, X68, s2l9_out_ga(T16, X68)) → s2l9_out_ga(s(T16), .(X67, X68))
U3_g(T8, s2l9_out_ga(T8, X30)) → goal1_out_g(s(T8))
goal1_in_g(s(T8)) → U4_g(T8, s2l9_in_ga(T8, T23))
U4_g(T8, s2l9_out_ga(T8, T23)) → U5_g(T8, append21_in_gaa(T23, X110, X111))
append21_in_gaa([], X125, X125) → append21_out_gaa([], X125, X125)
append21_in_gaa(.(T28, T30), X143, .(T28, X144)) → U2_gaa(T28, T30, X143, X144, append21_in_gaa(T30, X143, X144))
U2_gaa(T28, T30, X143, X144, append21_out_gaa(T30, X143, X144)) → append21_out_gaa(.(T28, T30), X143, .(T28, X144))
U5_g(T8, append21_out_gaa(T23, X110, X111)) → goal1_out_g(s(T8))
goal1_in_g(0) → goal1_out_g(0)
APPEND21_IN_GAA(.(T28, T30), X143, .(T28, X144)) → APPEND21_IN_GAA(T30, X143, X144)
APPEND21_IN_GAA(.(T30)) → APPEND21_IN_GAA(T30)
From the DPs we obtained the following set of size-change graphs:
S2L9_IN_GA(s(T16), .(X67, X68)) → S2L9_IN_GA(T16, X68)
goal1_in_g(s(T8)) → U3_g(T8, s2l9_in_ga(T8, X30))
s2l9_in_ga(s(T16), .(X67, X68)) → U1_ga(T16, X67, X68, s2l9_in_ga(T16, X68))
s2l9_in_ga(0, []) → s2l9_out_ga(0, [])
U1_ga(T16, X67, X68, s2l9_out_ga(T16, X68)) → s2l9_out_ga(s(T16), .(X67, X68))
U3_g(T8, s2l9_out_ga(T8, X30)) → goal1_out_g(s(T8))
goal1_in_g(s(T8)) → U4_g(T8, s2l9_in_ga(T8, T23))
U4_g(T8, s2l9_out_ga(T8, T23)) → U5_g(T8, append21_in_gaa(T23, X110, X111))
append21_in_gaa([], X125, X125) → append21_out_gaa([], X125, X125)
append21_in_gaa(.(T28, T30), X143, .(T28, X144)) → U2_gaa(T28, T30, X143, X144, append21_in_gaa(T30, X143, X144))
U2_gaa(T28, T30, X143, X144, append21_out_gaa(T30, X143, X144)) → append21_out_gaa(.(T28, T30), X143, .(T28, X144))
U5_g(T8, append21_out_gaa(T23, X110, X111)) → goal1_out_g(s(T8))
goal1_in_g(0) → goal1_out_g(0)
S2L9_IN_GA(s(T16), .(X67, X68)) → S2L9_IN_GA(T16, X68)
S2L9_IN_GA(s(T16)) → S2L9_IN_GA(T16)
From the DPs we obtained the following set of size-change graphs: