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 TRUE
↳16 PiDP
↳17 UsableRulesProof (⇔)
↳18 PiDP
↳19 PiDPToQDPProof (⇐)
↳20 QDP
↳21 QDPSizeChangeProof (⇔)
↳22 TRUE
↳23 PiDP
↳24 UsableRulesProof (⇔)
↳25 PiDP
↳26 PiDPToQDPProof (⇐)
↳27 QDP
↳28 QDPSizeChangeProof (⇔)
↳29 TRUE
goal1_in_g(T2) → U4_g(T2, s2l4_in_ga(T2, X9))
s2l4_in_ga(0, []) → s2l4_out_ga(0, [])
s2l4_in_ga(s(T5), .(X25, X26)) → U1_ga(T5, X25, X26, s2l4_in_ga(T5, X26))
U1_ga(T5, X25, X26, s2l4_out_ga(T5, X26)) → s2l4_out_ga(s(T5), .(X25, X26))
U4_g(T2, s2l4_out_ga(T2, X9)) → goal1_out_g(T2)
goal1_in_g(T2) → U5_g(T2, s2l4_in_gg(T2, []))
s2l4_in_gg(0, []) → s2l4_out_gg(0, [])
s2l4_in_gg(s(T5), .(X25, X26)) → U1_gg(T5, X25, X26, s2l4_in_gg(T5, X26))
U1_gg(T5, X25, X26, s2l4_out_gg(T5, X26)) → s2l4_out_gg(s(T5), .(X25, X26))
U5_g(T2, s2l4_out_gg(T2, [])) → goal1_out_g(T2)
goal1_in_g(T2) → U6_g(T2, s2l4_in_ga(T2, .(T12, T14)))
U6_g(T2, s2l4_out_ga(T2, .(T12, T14))) → U7_g(T2, append5_in_gaa(T14, X47, X49))
append5_in_gaa([], X37, X37) → append5_out_gaa([], X37, X37)
append5_in_gaa([], X61, .(X52, X61)) → append5_out_gaa([], X61, .(X52, X61))
append5_in_gaa(.(T12, T14), X47, .(T12, X49)) → U2_gaa(T12, T14, X47, X49, append5_in_gaa(T14, X47, X49))
append5_in_gaa(.(T19, T21), X47, .(T19, X49)) → U3_gaa(T19, T21, X47, X49, append5_in_gaa(T21, X47, X49))
U3_gaa(T19, T21, X47, X49, append5_out_gaa(T21, X47, X49)) → append5_out_gaa(.(T19, T21), X47, .(T19, X49))
U2_gaa(T12, T14, X47, X49, append5_out_gaa(T14, X47, X49)) → append5_out_gaa(.(T12, T14), X47, .(T12, X49))
U7_g(T2, append5_out_gaa(T14, X47, X49)) → goal1_out_g(T2)
goal1_in_g(T2) → U8_g(T2, s2l4_in_ga(T2, .(T19, T21)))
U8_g(T2, s2l4_out_ga(T2, .(T19, T21))) → U9_g(T2, append5_in_gaa(T21, X47, X49))
U9_g(T2, append5_out_gaa(T21, X47, X49)) → goal1_out_g(T2)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
goal1_in_g(T2) → U4_g(T2, s2l4_in_ga(T2, X9))
s2l4_in_ga(0, []) → s2l4_out_ga(0, [])
s2l4_in_ga(s(T5), .(X25, X26)) → U1_ga(T5, X25, X26, s2l4_in_ga(T5, X26))
U1_ga(T5, X25, X26, s2l4_out_ga(T5, X26)) → s2l4_out_ga(s(T5), .(X25, X26))
U4_g(T2, s2l4_out_ga(T2, X9)) → goal1_out_g(T2)
goal1_in_g(T2) → U5_g(T2, s2l4_in_gg(T2, []))
s2l4_in_gg(0, []) → s2l4_out_gg(0, [])
s2l4_in_gg(s(T5), .(X25, X26)) → U1_gg(T5, X25, X26, s2l4_in_gg(T5, X26))
U1_gg(T5, X25, X26, s2l4_out_gg(T5, X26)) → s2l4_out_gg(s(T5), .(X25, X26))
U5_g(T2, s2l4_out_gg(T2, [])) → goal1_out_g(T2)
goal1_in_g(T2) → U6_g(T2, s2l4_in_ga(T2, .(T12, T14)))
U6_g(T2, s2l4_out_ga(T2, .(T12, T14))) → U7_g(T2, append5_in_gaa(T14, X47, X49))
append5_in_gaa([], X37, X37) → append5_out_gaa([], X37, X37)
append5_in_gaa([], X61, .(X52, X61)) → append5_out_gaa([], X61, .(X52, X61))
append5_in_gaa(.(T12, T14), X47, .(T12, X49)) → U2_gaa(T12, T14, X47, X49, append5_in_gaa(T14, X47, X49))
append5_in_gaa(.(T19, T21), X47, .(T19, X49)) → U3_gaa(T19, T21, X47, X49, append5_in_gaa(T21, X47, X49))
U3_gaa(T19, T21, X47, X49, append5_out_gaa(T21, X47, X49)) → append5_out_gaa(.(T19, T21), X47, .(T19, X49))
U2_gaa(T12, T14, X47, X49, append5_out_gaa(T14, X47, X49)) → append5_out_gaa(.(T12, T14), X47, .(T12, X49))
U7_g(T2, append5_out_gaa(T14, X47, X49)) → goal1_out_g(T2)
goal1_in_g(T2) → U8_g(T2, s2l4_in_ga(T2, .(T19, T21)))
U8_g(T2, s2l4_out_ga(T2, .(T19, T21))) → U9_g(T2, append5_in_gaa(T21, X47, X49))
U9_g(T2, append5_out_gaa(T21, X47, X49)) → goal1_out_g(T2)
GOAL1_IN_G(T2) → U4_G(T2, s2l4_in_ga(T2, X9))
GOAL1_IN_G(T2) → S2L4_IN_GA(T2, X9)
S2L4_IN_GA(s(T5), .(X25, X26)) → U1_GA(T5, X25, X26, s2l4_in_ga(T5, X26))
S2L4_IN_GA(s(T5), .(X25, X26)) → S2L4_IN_GA(T5, X26)
GOAL1_IN_G(T2) → U5_G(T2, s2l4_in_gg(T2, []))
GOAL1_IN_G(T2) → S2L4_IN_GG(T2, [])
S2L4_IN_GG(s(T5), .(X25, X26)) → U1_GG(T5, X25, X26, s2l4_in_gg(T5, X26))
S2L4_IN_GG(s(T5), .(X25, X26)) → S2L4_IN_GG(T5, X26)
GOAL1_IN_G(T2) → U6_G(T2, s2l4_in_ga(T2, .(T12, T14)))
GOAL1_IN_G(T2) → S2L4_IN_GA(T2, .(T12, T14))
U6_G(T2, s2l4_out_ga(T2, .(T12, T14))) → U7_G(T2, append5_in_gaa(T14, X47, X49))
U6_G(T2, s2l4_out_ga(T2, .(T12, T14))) → APPEND5_IN_GAA(T14, X47, X49)
APPEND5_IN_GAA(.(T12, T14), X47, .(T12, X49)) → U2_GAA(T12, T14, X47, X49, append5_in_gaa(T14, X47, X49))
APPEND5_IN_GAA(.(T12, T14), X47, .(T12, X49)) → APPEND5_IN_GAA(T14, X47, X49)
APPEND5_IN_GAA(.(T19, T21), X47, .(T19, X49)) → U3_GAA(T19, T21, X47, X49, append5_in_gaa(T21, X47, X49))
GOAL1_IN_G(T2) → U8_G(T2, s2l4_in_ga(T2, .(T19, T21)))
U8_G(T2, s2l4_out_ga(T2, .(T19, T21))) → U9_G(T2, append5_in_gaa(T21, X47, X49))
U8_G(T2, s2l4_out_ga(T2, .(T19, T21))) → APPEND5_IN_GAA(T21, X47, X49)
goal1_in_g(T2) → U4_g(T2, s2l4_in_ga(T2, X9))
s2l4_in_ga(0, []) → s2l4_out_ga(0, [])
s2l4_in_ga(s(T5), .(X25, X26)) → U1_ga(T5, X25, X26, s2l4_in_ga(T5, X26))
U1_ga(T5, X25, X26, s2l4_out_ga(T5, X26)) → s2l4_out_ga(s(T5), .(X25, X26))
U4_g(T2, s2l4_out_ga(T2, X9)) → goal1_out_g(T2)
goal1_in_g(T2) → U5_g(T2, s2l4_in_gg(T2, []))
s2l4_in_gg(0, []) → s2l4_out_gg(0, [])
s2l4_in_gg(s(T5), .(X25, X26)) → U1_gg(T5, X25, X26, s2l4_in_gg(T5, X26))
U1_gg(T5, X25, X26, s2l4_out_gg(T5, X26)) → s2l4_out_gg(s(T5), .(X25, X26))
U5_g(T2, s2l4_out_gg(T2, [])) → goal1_out_g(T2)
goal1_in_g(T2) → U6_g(T2, s2l4_in_ga(T2, .(T12, T14)))
U6_g(T2, s2l4_out_ga(T2, .(T12, T14))) → U7_g(T2, append5_in_gaa(T14, X47, X49))
append5_in_gaa([], X37, X37) → append5_out_gaa([], X37, X37)
append5_in_gaa([], X61, .(X52, X61)) → append5_out_gaa([], X61, .(X52, X61))
append5_in_gaa(.(T12, T14), X47, .(T12, X49)) → U2_gaa(T12, T14, X47, X49, append5_in_gaa(T14, X47, X49))
append5_in_gaa(.(T19, T21), X47, .(T19, X49)) → U3_gaa(T19, T21, X47, X49, append5_in_gaa(T21, X47, X49))
U3_gaa(T19, T21, X47, X49, append5_out_gaa(T21, X47, X49)) → append5_out_gaa(.(T19, T21), X47, .(T19, X49))
U2_gaa(T12, T14, X47, X49, append5_out_gaa(T14, X47, X49)) → append5_out_gaa(.(T12, T14), X47, .(T12, X49))
U7_g(T2, append5_out_gaa(T14, X47, X49)) → goal1_out_g(T2)
goal1_in_g(T2) → U8_g(T2, s2l4_in_ga(T2, .(T19, T21)))
U8_g(T2, s2l4_out_ga(T2, .(T19, T21))) → U9_g(T2, append5_in_gaa(T21, X47, X49))
U9_g(T2, append5_out_gaa(T21, X47, X49)) → goal1_out_g(T2)
GOAL1_IN_G(T2) → U4_G(T2, s2l4_in_ga(T2, X9))
GOAL1_IN_G(T2) → S2L4_IN_GA(T2, X9)
S2L4_IN_GA(s(T5), .(X25, X26)) → U1_GA(T5, X25, X26, s2l4_in_ga(T5, X26))
S2L4_IN_GA(s(T5), .(X25, X26)) → S2L4_IN_GA(T5, X26)
GOAL1_IN_G(T2) → U5_G(T2, s2l4_in_gg(T2, []))
GOAL1_IN_G(T2) → S2L4_IN_GG(T2, [])
S2L4_IN_GG(s(T5), .(X25, X26)) → U1_GG(T5, X25, X26, s2l4_in_gg(T5, X26))
S2L4_IN_GG(s(T5), .(X25, X26)) → S2L4_IN_GG(T5, X26)
GOAL1_IN_G(T2) → U6_G(T2, s2l4_in_ga(T2, .(T12, T14)))
GOAL1_IN_G(T2) → S2L4_IN_GA(T2, .(T12, T14))
U6_G(T2, s2l4_out_ga(T2, .(T12, T14))) → U7_G(T2, append5_in_gaa(T14, X47, X49))
U6_G(T2, s2l4_out_ga(T2, .(T12, T14))) → APPEND5_IN_GAA(T14, X47, X49)
APPEND5_IN_GAA(.(T12, T14), X47, .(T12, X49)) → U2_GAA(T12, T14, X47, X49, append5_in_gaa(T14, X47, X49))
APPEND5_IN_GAA(.(T12, T14), X47, .(T12, X49)) → APPEND5_IN_GAA(T14, X47, X49)
APPEND5_IN_GAA(.(T19, T21), X47, .(T19, X49)) → U3_GAA(T19, T21, X47, X49, append5_in_gaa(T21, X47, X49))
GOAL1_IN_G(T2) → U8_G(T2, s2l4_in_ga(T2, .(T19, T21)))
U8_G(T2, s2l4_out_ga(T2, .(T19, T21))) → U9_G(T2, append5_in_gaa(T21, X47, X49))
U8_G(T2, s2l4_out_ga(T2, .(T19, T21))) → APPEND5_IN_GAA(T21, X47, X49)
goal1_in_g(T2) → U4_g(T2, s2l4_in_ga(T2, X9))
s2l4_in_ga(0, []) → s2l4_out_ga(0, [])
s2l4_in_ga(s(T5), .(X25, X26)) → U1_ga(T5, X25, X26, s2l4_in_ga(T5, X26))
U1_ga(T5, X25, X26, s2l4_out_ga(T5, X26)) → s2l4_out_ga(s(T5), .(X25, X26))
U4_g(T2, s2l4_out_ga(T2, X9)) → goal1_out_g(T2)
goal1_in_g(T2) → U5_g(T2, s2l4_in_gg(T2, []))
s2l4_in_gg(0, []) → s2l4_out_gg(0, [])
s2l4_in_gg(s(T5), .(X25, X26)) → U1_gg(T5, X25, X26, s2l4_in_gg(T5, X26))
U1_gg(T5, X25, X26, s2l4_out_gg(T5, X26)) → s2l4_out_gg(s(T5), .(X25, X26))
U5_g(T2, s2l4_out_gg(T2, [])) → goal1_out_g(T2)
goal1_in_g(T2) → U6_g(T2, s2l4_in_ga(T2, .(T12, T14)))
U6_g(T2, s2l4_out_ga(T2, .(T12, T14))) → U7_g(T2, append5_in_gaa(T14, X47, X49))
append5_in_gaa([], X37, X37) → append5_out_gaa([], X37, X37)
append5_in_gaa([], X61, .(X52, X61)) → append5_out_gaa([], X61, .(X52, X61))
append5_in_gaa(.(T12, T14), X47, .(T12, X49)) → U2_gaa(T12, T14, X47, X49, append5_in_gaa(T14, X47, X49))
append5_in_gaa(.(T19, T21), X47, .(T19, X49)) → U3_gaa(T19, T21, X47, X49, append5_in_gaa(T21, X47, X49))
U3_gaa(T19, T21, X47, X49, append5_out_gaa(T21, X47, X49)) → append5_out_gaa(.(T19, T21), X47, .(T19, X49))
U2_gaa(T12, T14, X47, X49, append5_out_gaa(T14, X47, X49)) → append5_out_gaa(.(T12, T14), X47, .(T12, X49))
U7_g(T2, append5_out_gaa(T14, X47, X49)) → goal1_out_g(T2)
goal1_in_g(T2) → U8_g(T2, s2l4_in_ga(T2, .(T19, T21)))
U8_g(T2, s2l4_out_ga(T2, .(T19, T21))) → U9_g(T2, append5_in_gaa(T21, X47, X49))
U9_g(T2, append5_out_gaa(T21, X47, X49)) → goal1_out_g(T2)
APPEND5_IN_GAA(.(T12, T14), X47, .(T12, X49)) → APPEND5_IN_GAA(T14, X47, X49)
goal1_in_g(T2) → U4_g(T2, s2l4_in_ga(T2, X9))
s2l4_in_ga(0, []) → s2l4_out_ga(0, [])
s2l4_in_ga(s(T5), .(X25, X26)) → U1_ga(T5, X25, X26, s2l4_in_ga(T5, X26))
U1_ga(T5, X25, X26, s2l4_out_ga(T5, X26)) → s2l4_out_ga(s(T5), .(X25, X26))
U4_g(T2, s2l4_out_ga(T2, X9)) → goal1_out_g(T2)
goal1_in_g(T2) → U5_g(T2, s2l4_in_gg(T2, []))
s2l4_in_gg(0, []) → s2l4_out_gg(0, [])
s2l4_in_gg(s(T5), .(X25, X26)) → U1_gg(T5, X25, X26, s2l4_in_gg(T5, X26))
U1_gg(T5, X25, X26, s2l4_out_gg(T5, X26)) → s2l4_out_gg(s(T5), .(X25, X26))
U5_g(T2, s2l4_out_gg(T2, [])) → goal1_out_g(T2)
goal1_in_g(T2) → U6_g(T2, s2l4_in_ga(T2, .(T12, T14)))
U6_g(T2, s2l4_out_ga(T2, .(T12, T14))) → U7_g(T2, append5_in_gaa(T14, X47, X49))
append5_in_gaa([], X37, X37) → append5_out_gaa([], X37, X37)
append5_in_gaa([], X61, .(X52, X61)) → append5_out_gaa([], X61, .(X52, X61))
append5_in_gaa(.(T12, T14), X47, .(T12, X49)) → U2_gaa(T12, T14, X47, X49, append5_in_gaa(T14, X47, X49))
append5_in_gaa(.(T19, T21), X47, .(T19, X49)) → U3_gaa(T19, T21, X47, X49, append5_in_gaa(T21, X47, X49))
U3_gaa(T19, T21, X47, X49, append5_out_gaa(T21, X47, X49)) → append5_out_gaa(.(T19, T21), X47, .(T19, X49))
U2_gaa(T12, T14, X47, X49, append5_out_gaa(T14, X47, X49)) → append5_out_gaa(.(T12, T14), X47, .(T12, X49))
U7_g(T2, append5_out_gaa(T14, X47, X49)) → goal1_out_g(T2)
goal1_in_g(T2) → U8_g(T2, s2l4_in_ga(T2, .(T19, T21)))
U8_g(T2, s2l4_out_ga(T2, .(T19, T21))) → U9_g(T2, append5_in_gaa(T21, X47, X49))
U9_g(T2, append5_out_gaa(T21, X47, X49)) → goal1_out_g(T2)
APPEND5_IN_GAA(.(T12, T14), X47, .(T12, X49)) → APPEND5_IN_GAA(T14, X47, X49)
APPEND5_IN_GAA(.(T14)) → APPEND5_IN_GAA(T14)
From the DPs we obtained the following set of size-change graphs:
S2L4_IN_GG(s(T5), .(X25, X26)) → S2L4_IN_GG(T5, X26)
goal1_in_g(T2) → U4_g(T2, s2l4_in_ga(T2, X9))
s2l4_in_ga(0, []) → s2l4_out_ga(0, [])
s2l4_in_ga(s(T5), .(X25, X26)) → U1_ga(T5, X25, X26, s2l4_in_ga(T5, X26))
U1_ga(T5, X25, X26, s2l4_out_ga(T5, X26)) → s2l4_out_ga(s(T5), .(X25, X26))
U4_g(T2, s2l4_out_ga(T2, X9)) → goal1_out_g(T2)
goal1_in_g(T2) → U5_g(T2, s2l4_in_gg(T2, []))
s2l4_in_gg(0, []) → s2l4_out_gg(0, [])
s2l4_in_gg(s(T5), .(X25, X26)) → U1_gg(T5, X25, X26, s2l4_in_gg(T5, X26))
U1_gg(T5, X25, X26, s2l4_out_gg(T5, X26)) → s2l4_out_gg(s(T5), .(X25, X26))
U5_g(T2, s2l4_out_gg(T2, [])) → goal1_out_g(T2)
goal1_in_g(T2) → U6_g(T2, s2l4_in_ga(T2, .(T12, T14)))
U6_g(T2, s2l4_out_ga(T2, .(T12, T14))) → U7_g(T2, append5_in_gaa(T14, X47, X49))
append5_in_gaa([], X37, X37) → append5_out_gaa([], X37, X37)
append5_in_gaa([], X61, .(X52, X61)) → append5_out_gaa([], X61, .(X52, X61))
append5_in_gaa(.(T12, T14), X47, .(T12, X49)) → U2_gaa(T12, T14, X47, X49, append5_in_gaa(T14, X47, X49))
append5_in_gaa(.(T19, T21), X47, .(T19, X49)) → U3_gaa(T19, T21, X47, X49, append5_in_gaa(T21, X47, X49))
U3_gaa(T19, T21, X47, X49, append5_out_gaa(T21, X47, X49)) → append5_out_gaa(.(T19, T21), X47, .(T19, X49))
U2_gaa(T12, T14, X47, X49, append5_out_gaa(T14, X47, X49)) → append5_out_gaa(.(T12, T14), X47, .(T12, X49))
U7_g(T2, append5_out_gaa(T14, X47, X49)) → goal1_out_g(T2)
goal1_in_g(T2) → U8_g(T2, s2l4_in_ga(T2, .(T19, T21)))
U8_g(T2, s2l4_out_ga(T2, .(T19, T21))) → U9_g(T2, append5_in_gaa(T21, X47, X49))
U9_g(T2, append5_out_gaa(T21, X47, X49)) → goal1_out_g(T2)
S2L4_IN_GG(s(T5), .(X25, X26)) → S2L4_IN_GG(T5, X26)
S2L4_IN_GG(s(T5), .(X26)) → S2L4_IN_GG(T5, X26)
From the DPs we obtained the following set of size-change graphs:
S2L4_IN_GA(s(T5), .(X25, X26)) → S2L4_IN_GA(T5, X26)
goal1_in_g(T2) → U4_g(T2, s2l4_in_ga(T2, X9))
s2l4_in_ga(0, []) → s2l4_out_ga(0, [])
s2l4_in_ga(s(T5), .(X25, X26)) → U1_ga(T5, X25, X26, s2l4_in_ga(T5, X26))
U1_ga(T5, X25, X26, s2l4_out_ga(T5, X26)) → s2l4_out_ga(s(T5), .(X25, X26))
U4_g(T2, s2l4_out_ga(T2, X9)) → goal1_out_g(T2)
goal1_in_g(T2) → U5_g(T2, s2l4_in_gg(T2, []))
s2l4_in_gg(0, []) → s2l4_out_gg(0, [])
s2l4_in_gg(s(T5), .(X25, X26)) → U1_gg(T5, X25, X26, s2l4_in_gg(T5, X26))
U1_gg(T5, X25, X26, s2l4_out_gg(T5, X26)) → s2l4_out_gg(s(T5), .(X25, X26))
U5_g(T2, s2l4_out_gg(T2, [])) → goal1_out_g(T2)
goal1_in_g(T2) → U6_g(T2, s2l4_in_ga(T2, .(T12, T14)))
U6_g(T2, s2l4_out_ga(T2, .(T12, T14))) → U7_g(T2, append5_in_gaa(T14, X47, X49))
append5_in_gaa([], X37, X37) → append5_out_gaa([], X37, X37)
append5_in_gaa([], X61, .(X52, X61)) → append5_out_gaa([], X61, .(X52, X61))
append5_in_gaa(.(T12, T14), X47, .(T12, X49)) → U2_gaa(T12, T14, X47, X49, append5_in_gaa(T14, X47, X49))
append5_in_gaa(.(T19, T21), X47, .(T19, X49)) → U3_gaa(T19, T21, X47, X49, append5_in_gaa(T21, X47, X49))
U3_gaa(T19, T21, X47, X49, append5_out_gaa(T21, X47, X49)) → append5_out_gaa(.(T19, T21), X47, .(T19, X49))
U2_gaa(T12, T14, X47, X49, append5_out_gaa(T14, X47, X49)) → append5_out_gaa(.(T12, T14), X47, .(T12, X49))
U7_g(T2, append5_out_gaa(T14, X47, X49)) → goal1_out_g(T2)
goal1_in_g(T2) → U8_g(T2, s2l4_in_ga(T2, .(T19, T21)))
U8_g(T2, s2l4_out_ga(T2, .(T19, T21))) → U9_g(T2, append5_in_gaa(T21, X47, X49))
U9_g(T2, append5_out_gaa(T21, X47, X49)) → goal1_out_g(T2)
S2L4_IN_GA(s(T5), .(X25, X26)) → S2L4_IN_GA(T5, X26)
S2L4_IN_GA(s(T5)) → S2L4_IN_GA(T5)
From the DPs we obtained the following set of size-change graphs: