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, X5))
s2l4_in_ga(0, []) → s2l4_out_ga(0, [])
s2l4_in_ga(s(T5), .(X19, X20)) → U1_ga(T5, X19, X20, s2l4_in_ga(T5, X20))
U1_ga(T5, X19, X20, s2l4_out_ga(T5, X20)) → s2l4_out_ga(s(T5), .(X19, X20))
U4_g(T2, s2l4_out_ga(T2, X5)) → 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), .(X19, X20)) → U1_gg(T5, X19, X20, s2l4_in_gg(T5, X20))
U1_gg(T5, X19, X20, s2l4_out_gg(T5, X20)) → s2l4_out_gg(s(T5), .(X19, X20))
U5_g(T2, s2l4_out_gg(T2, [])) → goal1_out_g(T2)
goal1_in_g(T2) → U6_g(T2, s2l4_in_ga(T2, .(T8, T10)))
U6_g(T2, s2l4_out_ga(T2, .(T8, T10))) → U7_g(T2, list5_in_g(T10))
list5_in_g([]) → list5_out_g([])
list5_in_g(.(T8, T10)) → U2_g(T8, T10, list5_in_g(T10))
list5_in_g(.(T11, T13)) → U3_g(T11, T13, list5_in_g(T13))
U3_g(T11, T13, list5_out_g(T13)) → list5_out_g(.(T11, T13))
U2_g(T8, T10, list5_out_g(T10)) → list5_out_g(.(T8, T10))
U7_g(T2, list5_out_g(T10)) → goal1_out_g(T2)
goal1_in_g(T2) → U8_g(T2, s2l4_in_ga(T2, .(T11, T13)))
U8_g(T2, s2l4_out_ga(T2, .(T11, T13))) → U9_g(T2, list5_in_g(T13))
U9_g(T2, list5_out_g(T13)) → 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, X5))
s2l4_in_ga(0, []) → s2l4_out_ga(0, [])
s2l4_in_ga(s(T5), .(X19, X20)) → U1_ga(T5, X19, X20, s2l4_in_ga(T5, X20))
U1_ga(T5, X19, X20, s2l4_out_ga(T5, X20)) → s2l4_out_ga(s(T5), .(X19, X20))
U4_g(T2, s2l4_out_ga(T2, X5)) → 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), .(X19, X20)) → U1_gg(T5, X19, X20, s2l4_in_gg(T5, X20))
U1_gg(T5, X19, X20, s2l4_out_gg(T5, X20)) → s2l4_out_gg(s(T5), .(X19, X20))
U5_g(T2, s2l4_out_gg(T2, [])) → goal1_out_g(T2)
goal1_in_g(T2) → U6_g(T2, s2l4_in_ga(T2, .(T8, T10)))
U6_g(T2, s2l4_out_ga(T2, .(T8, T10))) → U7_g(T2, list5_in_g(T10))
list5_in_g([]) → list5_out_g([])
list5_in_g(.(T8, T10)) → U2_g(T8, T10, list5_in_g(T10))
list5_in_g(.(T11, T13)) → U3_g(T11, T13, list5_in_g(T13))
U3_g(T11, T13, list5_out_g(T13)) → list5_out_g(.(T11, T13))
U2_g(T8, T10, list5_out_g(T10)) → list5_out_g(.(T8, T10))
U7_g(T2, list5_out_g(T10)) → goal1_out_g(T2)
goal1_in_g(T2) → U8_g(T2, s2l4_in_ga(T2, .(T11, T13)))
U8_g(T2, s2l4_out_ga(T2, .(T11, T13))) → U9_g(T2, list5_in_g(T13))
U9_g(T2, list5_out_g(T13)) → goal1_out_g(T2)
GOAL1_IN_G(T2) → U4_G(T2, s2l4_in_ga(T2, X5))
GOAL1_IN_G(T2) → S2L4_IN_GA(T2, X5)
S2L4_IN_GA(s(T5), .(X19, X20)) → U1_GA(T5, X19, X20, s2l4_in_ga(T5, X20))
S2L4_IN_GA(s(T5), .(X19, X20)) → S2L4_IN_GA(T5, X20)
GOAL1_IN_G(T2) → U5_G(T2, s2l4_in_gg(T2, []))
GOAL1_IN_G(T2) → S2L4_IN_GG(T2, [])
S2L4_IN_GG(s(T5), .(X19, X20)) → U1_GG(T5, X19, X20, s2l4_in_gg(T5, X20))
S2L4_IN_GG(s(T5), .(X19, X20)) → S2L4_IN_GG(T5, X20)
GOAL1_IN_G(T2) → U6_G(T2, s2l4_in_ga(T2, .(T8, T10)))
GOAL1_IN_G(T2) → S2L4_IN_GA(T2, .(T8, T10))
U6_G(T2, s2l4_out_ga(T2, .(T8, T10))) → U7_G(T2, list5_in_g(T10))
U6_G(T2, s2l4_out_ga(T2, .(T8, T10))) → LIST5_IN_G(T10)
LIST5_IN_G(.(T8, T10)) → U2_G(T8, T10, list5_in_g(T10))
LIST5_IN_G(.(T8, T10)) → LIST5_IN_G(T10)
LIST5_IN_G(.(T11, T13)) → U3_G(T11, T13, list5_in_g(T13))
GOAL1_IN_G(T2) → U8_G(T2, s2l4_in_ga(T2, .(T11, T13)))
U8_G(T2, s2l4_out_ga(T2, .(T11, T13))) → U9_G(T2, list5_in_g(T13))
U8_G(T2, s2l4_out_ga(T2, .(T11, T13))) → LIST5_IN_G(T13)
goal1_in_g(T2) → U4_g(T2, s2l4_in_ga(T2, X5))
s2l4_in_ga(0, []) → s2l4_out_ga(0, [])
s2l4_in_ga(s(T5), .(X19, X20)) → U1_ga(T5, X19, X20, s2l4_in_ga(T5, X20))
U1_ga(T5, X19, X20, s2l4_out_ga(T5, X20)) → s2l4_out_ga(s(T5), .(X19, X20))
U4_g(T2, s2l4_out_ga(T2, X5)) → 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), .(X19, X20)) → U1_gg(T5, X19, X20, s2l4_in_gg(T5, X20))
U1_gg(T5, X19, X20, s2l4_out_gg(T5, X20)) → s2l4_out_gg(s(T5), .(X19, X20))
U5_g(T2, s2l4_out_gg(T2, [])) → goal1_out_g(T2)
goal1_in_g(T2) → U6_g(T2, s2l4_in_ga(T2, .(T8, T10)))
U6_g(T2, s2l4_out_ga(T2, .(T8, T10))) → U7_g(T2, list5_in_g(T10))
list5_in_g([]) → list5_out_g([])
list5_in_g(.(T8, T10)) → U2_g(T8, T10, list5_in_g(T10))
list5_in_g(.(T11, T13)) → U3_g(T11, T13, list5_in_g(T13))
U3_g(T11, T13, list5_out_g(T13)) → list5_out_g(.(T11, T13))
U2_g(T8, T10, list5_out_g(T10)) → list5_out_g(.(T8, T10))
U7_g(T2, list5_out_g(T10)) → goal1_out_g(T2)
goal1_in_g(T2) → U8_g(T2, s2l4_in_ga(T2, .(T11, T13)))
U8_g(T2, s2l4_out_ga(T2, .(T11, T13))) → U9_g(T2, list5_in_g(T13))
U9_g(T2, list5_out_g(T13)) → goal1_out_g(T2)
GOAL1_IN_G(T2) → U4_G(T2, s2l4_in_ga(T2, X5))
GOAL1_IN_G(T2) → S2L4_IN_GA(T2, X5)
S2L4_IN_GA(s(T5), .(X19, X20)) → U1_GA(T5, X19, X20, s2l4_in_ga(T5, X20))
S2L4_IN_GA(s(T5), .(X19, X20)) → S2L4_IN_GA(T5, X20)
GOAL1_IN_G(T2) → U5_G(T2, s2l4_in_gg(T2, []))
GOAL1_IN_G(T2) → S2L4_IN_GG(T2, [])
S2L4_IN_GG(s(T5), .(X19, X20)) → U1_GG(T5, X19, X20, s2l4_in_gg(T5, X20))
S2L4_IN_GG(s(T5), .(X19, X20)) → S2L4_IN_GG(T5, X20)
GOAL1_IN_G(T2) → U6_G(T2, s2l4_in_ga(T2, .(T8, T10)))
GOAL1_IN_G(T2) → S2L4_IN_GA(T2, .(T8, T10))
U6_G(T2, s2l4_out_ga(T2, .(T8, T10))) → U7_G(T2, list5_in_g(T10))
U6_G(T2, s2l4_out_ga(T2, .(T8, T10))) → LIST5_IN_G(T10)
LIST5_IN_G(.(T8, T10)) → U2_G(T8, T10, list5_in_g(T10))
LIST5_IN_G(.(T8, T10)) → LIST5_IN_G(T10)
LIST5_IN_G(.(T11, T13)) → U3_G(T11, T13, list5_in_g(T13))
GOAL1_IN_G(T2) → U8_G(T2, s2l4_in_ga(T2, .(T11, T13)))
U8_G(T2, s2l4_out_ga(T2, .(T11, T13))) → U9_G(T2, list5_in_g(T13))
U8_G(T2, s2l4_out_ga(T2, .(T11, T13))) → LIST5_IN_G(T13)
goal1_in_g(T2) → U4_g(T2, s2l4_in_ga(T2, X5))
s2l4_in_ga(0, []) → s2l4_out_ga(0, [])
s2l4_in_ga(s(T5), .(X19, X20)) → U1_ga(T5, X19, X20, s2l4_in_ga(T5, X20))
U1_ga(T5, X19, X20, s2l4_out_ga(T5, X20)) → s2l4_out_ga(s(T5), .(X19, X20))
U4_g(T2, s2l4_out_ga(T2, X5)) → 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), .(X19, X20)) → U1_gg(T5, X19, X20, s2l4_in_gg(T5, X20))
U1_gg(T5, X19, X20, s2l4_out_gg(T5, X20)) → s2l4_out_gg(s(T5), .(X19, X20))
U5_g(T2, s2l4_out_gg(T2, [])) → goal1_out_g(T2)
goal1_in_g(T2) → U6_g(T2, s2l4_in_ga(T2, .(T8, T10)))
U6_g(T2, s2l4_out_ga(T2, .(T8, T10))) → U7_g(T2, list5_in_g(T10))
list5_in_g([]) → list5_out_g([])
list5_in_g(.(T8, T10)) → U2_g(T8, T10, list5_in_g(T10))
list5_in_g(.(T11, T13)) → U3_g(T11, T13, list5_in_g(T13))
U3_g(T11, T13, list5_out_g(T13)) → list5_out_g(.(T11, T13))
U2_g(T8, T10, list5_out_g(T10)) → list5_out_g(.(T8, T10))
U7_g(T2, list5_out_g(T10)) → goal1_out_g(T2)
goal1_in_g(T2) → U8_g(T2, s2l4_in_ga(T2, .(T11, T13)))
U8_g(T2, s2l4_out_ga(T2, .(T11, T13))) → U9_g(T2, list5_in_g(T13))
U9_g(T2, list5_out_g(T13)) → goal1_out_g(T2)
LIST5_IN_G(.(T8, T10)) → LIST5_IN_G(T10)
goal1_in_g(T2) → U4_g(T2, s2l4_in_ga(T2, X5))
s2l4_in_ga(0, []) → s2l4_out_ga(0, [])
s2l4_in_ga(s(T5), .(X19, X20)) → U1_ga(T5, X19, X20, s2l4_in_ga(T5, X20))
U1_ga(T5, X19, X20, s2l4_out_ga(T5, X20)) → s2l4_out_ga(s(T5), .(X19, X20))
U4_g(T2, s2l4_out_ga(T2, X5)) → 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), .(X19, X20)) → U1_gg(T5, X19, X20, s2l4_in_gg(T5, X20))
U1_gg(T5, X19, X20, s2l4_out_gg(T5, X20)) → s2l4_out_gg(s(T5), .(X19, X20))
U5_g(T2, s2l4_out_gg(T2, [])) → goal1_out_g(T2)
goal1_in_g(T2) → U6_g(T2, s2l4_in_ga(T2, .(T8, T10)))
U6_g(T2, s2l4_out_ga(T2, .(T8, T10))) → U7_g(T2, list5_in_g(T10))
list5_in_g([]) → list5_out_g([])
list5_in_g(.(T8, T10)) → U2_g(T8, T10, list5_in_g(T10))
list5_in_g(.(T11, T13)) → U3_g(T11, T13, list5_in_g(T13))
U3_g(T11, T13, list5_out_g(T13)) → list5_out_g(.(T11, T13))
U2_g(T8, T10, list5_out_g(T10)) → list5_out_g(.(T8, T10))
U7_g(T2, list5_out_g(T10)) → goal1_out_g(T2)
goal1_in_g(T2) → U8_g(T2, s2l4_in_ga(T2, .(T11, T13)))
U8_g(T2, s2l4_out_ga(T2, .(T11, T13))) → U9_g(T2, list5_in_g(T13))
U9_g(T2, list5_out_g(T13)) → goal1_out_g(T2)
LIST5_IN_G(.(T8, T10)) → LIST5_IN_G(T10)
LIST5_IN_G(.(T10)) → LIST5_IN_G(T10)
From the DPs we obtained the following set of size-change graphs:
S2L4_IN_GG(s(T5), .(X19, X20)) → S2L4_IN_GG(T5, X20)
goal1_in_g(T2) → U4_g(T2, s2l4_in_ga(T2, X5))
s2l4_in_ga(0, []) → s2l4_out_ga(0, [])
s2l4_in_ga(s(T5), .(X19, X20)) → U1_ga(T5, X19, X20, s2l4_in_ga(T5, X20))
U1_ga(T5, X19, X20, s2l4_out_ga(T5, X20)) → s2l4_out_ga(s(T5), .(X19, X20))
U4_g(T2, s2l4_out_ga(T2, X5)) → 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), .(X19, X20)) → U1_gg(T5, X19, X20, s2l4_in_gg(T5, X20))
U1_gg(T5, X19, X20, s2l4_out_gg(T5, X20)) → s2l4_out_gg(s(T5), .(X19, X20))
U5_g(T2, s2l4_out_gg(T2, [])) → goal1_out_g(T2)
goal1_in_g(T2) → U6_g(T2, s2l4_in_ga(T2, .(T8, T10)))
U6_g(T2, s2l4_out_ga(T2, .(T8, T10))) → U7_g(T2, list5_in_g(T10))
list5_in_g([]) → list5_out_g([])
list5_in_g(.(T8, T10)) → U2_g(T8, T10, list5_in_g(T10))
list5_in_g(.(T11, T13)) → U3_g(T11, T13, list5_in_g(T13))
U3_g(T11, T13, list5_out_g(T13)) → list5_out_g(.(T11, T13))
U2_g(T8, T10, list5_out_g(T10)) → list5_out_g(.(T8, T10))
U7_g(T2, list5_out_g(T10)) → goal1_out_g(T2)
goal1_in_g(T2) → U8_g(T2, s2l4_in_ga(T2, .(T11, T13)))
U8_g(T2, s2l4_out_ga(T2, .(T11, T13))) → U9_g(T2, list5_in_g(T13))
U9_g(T2, list5_out_g(T13)) → goal1_out_g(T2)
S2L4_IN_GG(s(T5), .(X19, X20)) → S2L4_IN_GG(T5, X20)
S2L4_IN_GG(s(T5), .(X20)) → S2L4_IN_GG(T5, X20)
From the DPs we obtained the following set of size-change graphs:
S2L4_IN_GA(s(T5), .(X19, X20)) → S2L4_IN_GA(T5, X20)
goal1_in_g(T2) → U4_g(T2, s2l4_in_ga(T2, X5))
s2l4_in_ga(0, []) → s2l4_out_ga(0, [])
s2l4_in_ga(s(T5), .(X19, X20)) → U1_ga(T5, X19, X20, s2l4_in_ga(T5, X20))
U1_ga(T5, X19, X20, s2l4_out_ga(T5, X20)) → s2l4_out_ga(s(T5), .(X19, X20))
U4_g(T2, s2l4_out_ga(T2, X5)) → 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), .(X19, X20)) → U1_gg(T5, X19, X20, s2l4_in_gg(T5, X20))
U1_gg(T5, X19, X20, s2l4_out_gg(T5, X20)) → s2l4_out_gg(s(T5), .(X19, X20))
U5_g(T2, s2l4_out_gg(T2, [])) → goal1_out_g(T2)
goal1_in_g(T2) → U6_g(T2, s2l4_in_ga(T2, .(T8, T10)))
U6_g(T2, s2l4_out_ga(T2, .(T8, T10))) → U7_g(T2, list5_in_g(T10))
list5_in_g([]) → list5_out_g([])
list5_in_g(.(T8, T10)) → U2_g(T8, T10, list5_in_g(T10))
list5_in_g(.(T11, T13)) → U3_g(T11, T13, list5_in_g(T13))
U3_g(T11, T13, list5_out_g(T13)) → list5_out_g(.(T11, T13))
U2_g(T8, T10, list5_out_g(T10)) → list5_out_g(.(T8, T10))
U7_g(T2, list5_out_g(T10)) → goal1_out_g(T2)
goal1_in_g(T2) → U8_g(T2, s2l4_in_ga(T2, .(T11, T13)))
U8_g(T2, s2l4_out_ga(T2, .(T11, T13))) → U9_g(T2, list5_in_g(T13))
U9_g(T2, list5_out_g(T13)) → goal1_out_g(T2)
S2L4_IN_GA(s(T5), .(X19, X20)) → S2L4_IN_GA(T5, X20)
S2L4_IN_GA(s(T5)) → S2L4_IN_GA(T5)
From the DPs we obtained the following set of size-change graphs: