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
q1_in_gg(T5, 0) → q1_out_gg(T5, 0)
q1_in_gg(0, T6) → q1_out_gg(0, T6)
q1_in_gg(s(T10), 0) → q1_out_gg(s(T10), 0)
q1_in_gg(s(0), 0) → q1_out_gg(s(0), 0)
q1_in_gg(s(s(T12)), 0) → U4_gg(T12, m20_in_gaa(T12, X35, X34))
m20_in_gaa(T10, T10, X18) → m20_out_gaa(T10, T10, X18)
m20_in_gaa(0, 0, X18) → m20_out_gaa(0, 0, X18)
m20_in_gaa(s(T12), X35, X18) → U1_gaa(T12, X35, X18, m20_in_gaa(T12, X35, X34))
U1_gaa(T12, X35, X18, m20_out_gaa(T12, X35, X34)) → m20_out_gaa(s(T12), X35, X18)
U4_gg(T12, m20_out_gaa(T12, X35, X34)) → q1_out_gg(s(s(T12)), 0)
q1_in_gg(s(T9), s(T13)) → U5_gg(T9, T13, m3_in_gga(T9, T13, X19))
m3_in_gga(T5, 0, T5) → m3_out_gga(T5, 0, T5)
m3_in_gga(0, T6, 0) → m3_out_gga(0, T6, 0)
m3_in_gga(s(T10), 0, T10) → m3_out_gga(s(T10), 0, T10)
m3_in_gga(s(0), 0, 0) → m3_out_gga(s(0), 0, 0)
m3_in_gga(s(s(T12)), 0, X35) → U2_gga(T12, X35, m20_in_gaa(T12, X35, X34))
U2_gga(T12, X35, m20_out_gaa(T12, X35, X34)) → m3_out_gga(s(s(T12)), 0, X35)
m3_in_gga(s(T9), s(T13), X19) → U3_gga(T9, T13, X19, m3_in_gga(T9, T13, X19))
U3_gga(T9, T13, X19, m3_out_gga(T9, T13, X19)) → m3_out_gga(s(T9), s(T13), X19)
U5_gg(T9, T13, m3_out_gga(T9, T13, X19)) → q1_out_gg(s(T9), s(T13))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
q1_in_gg(T5, 0) → q1_out_gg(T5, 0)
q1_in_gg(0, T6) → q1_out_gg(0, T6)
q1_in_gg(s(T10), 0) → q1_out_gg(s(T10), 0)
q1_in_gg(s(0), 0) → q1_out_gg(s(0), 0)
q1_in_gg(s(s(T12)), 0) → U4_gg(T12, m20_in_gaa(T12, X35, X34))
m20_in_gaa(T10, T10, X18) → m20_out_gaa(T10, T10, X18)
m20_in_gaa(0, 0, X18) → m20_out_gaa(0, 0, X18)
m20_in_gaa(s(T12), X35, X18) → U1_gaa(T12, X35, X18, m20_in_gaa(T12, X35, X34))
U1_gaa(T12, X35, X18, m20_out_gaa(T12, X35, X34)) → m20_out_gaa(s(T12), X35, X18)
U4_gg(T12, m20_out_gaa(T12, X35, X34)) → q1_out_gg(s(s(T12)), 0)
q1_in_gg(s(T9), s(T13)) → U5_gg(T9, T13, m3_in_gga(T9, T13, X19))
m3_in_gga(T5, 0, T5) → m3_out_gga(T5, 0, T5)
m3_in_gga(0, T6, 0) → m3_out_gga(0, T6, 0)
m3_in_gga(s(T10), 0, T10) → m3_out_gga(s(T10), 0, T10)
m3_in_gga(s(0), 0, 0) → m3_out_gga(s(0), 0, 0)
m3_in_gga(s(s(T12)), 0, X35) → U2_gga(T12, X35, m20_in_gaa(T12, X35, X34))
U2_gga(T12, X35, m20_out_gaa(T12, X35, X34)) → m3_out_gga(s(s(T12)), 0, X35)
m3_in_gga(s(T9), s(T13), X19) → U3_gga(T9, T13, X19, m3_in_gga(T9, T13, X19))
U3_gga(T9, T13, X19, m3_out_gga(T9, T13, X19)) → m3_out_gga(s(T9), s(T13), X19)
U5_gg(T9, T13, m3_out_gga(T9, T13, X19)) → q1_out_gg(s(T9), s(T13))
Q1_IN_GG(s(s(T12)), 0) → U4_GG(T12, m20_in_gaa(T12, X35, X34))
Q1_IN_GG(s(s(T12)), 0) → M20_IN_GAA(T12, X35, X34)
M20_IN_GAA(s(T12), X35, X18) → U1_GAA(T12, X35, X18, m20_in_gaa(T12, X35, X34))
M20_IN_GAA(s(T12), X35, X18) → M20_IN_GAA(T12, X35, X34)
Q1_IN_GG(s(T9), s(T13)) → U5_GG(T9, T13, m3_in_gga(T9, T13, X19))
Q1_IN_GG(s(T9), s(T13)) → M3_IN_GGA(T9, T13, X19)
M3_IN_GGA(s(s(T12)), 0, X35) → U2_GGA(T12, X35, m20_in_gaa(T12, X35, X34))
M3_IN_GGA(s(s(T12)), 0, X35) → M20_IN_GAA(T12, X35, X34)
M3_IN_GGA(s(T9), s(T13), X19) → U3_GGA(T9, T13, X19, m3_in_gga(T9, T13, X19))
M3_IN_GGA(s(T9), s(T13), X19) → M3_IN_GGA(T9, T13, X19)
q1_in_gg(T5, 0) → q1_out_gg(T5, 0)
q1_in_gg(0, T6) → q1_out_gg(0, T6)
q1_in_gg(s(T10), 0) → q1_out_gg(s(T10), 0)
q1_in_gg(s(0), 0) → q1_out_gg(s(0), 0)
q1_in_gg(s(s(T12)), 0) → U4_gg(T12, m20_in_gaa(T12, X35, X34))
m20_in_gaa(T10, T10, X18) → m20_out_gaa(T10, T10, X18)
m20_in_gaa(0, 0, X18) → m20_out_gaa(0, 0, X18)
m20_in_gaa(s(T12), X35, X18) → U1_gaa(T12, X35, X18, m20_in_gaa(T12, X35, X34))
U1_gaa(T12, X35, X18, m20_out_gaa(T12, X35, X34)) → m20_out_gaa(s(T12), X35, X18)
U4_gg(T12, m20_out_gaa(T12, X35, X34)) → q1_out_gg(s(s(T12)), 0)
q1_in_gg(s(T9), s(T13)) → U5_gg(T9, T13, m3_in_gga(T9, T13, X19))
m3_in_gga(T5, 0, T5) → m3_out_gga(T5, 0, T5)
m3_in_gga(0, T6, 0) → m3_out_gga(0, T6, 0)
m3_in_gga(s(T10), 0, T10) → m3_out_gga(s(T10), 0, T10)
m3_in_gga(s(0), 0, 0) → m3_out_gga(s(0), 0, 0)
m3_in_gga(s(s(T12)), 0, X35) → U2_gga(T12, X35, m20_in_gaa(T12, X35, X34))
U2_gga(T12, X35, m20_out_gaa(T12, X35, X34)) → m3_out_gga(s(s(T12)), 0, X35)
m3_in_gga(s(T9), s(T13), X19) → U3_gga(T9, T13, X19, m3_in_gga(T9, T13, X19))
U3_gga(T9, T13, X19, m3_out_gga(T9, T13, X19)) → m3_out_gga(s(T9), s(T13), X19)
U5_gg(T9, T13, m3_out_gga(T9, T13, X19)) → q1_out_gg(s(T9), s(T13))
Q1_IN_GG(s(s(T12)), 0) → U4_GG(T12, m20_in_gaa(T12, X35, X34))
Q1_IN_GG(s(s(T12)), 0) → M20_IN_GAA(T12, X35, X34)
M20_IN_GAA(s(T12), X35, X18) → U1_GAA(T12, X35, X18, m20_in_gaa(T12, X35, X34))
M20_IN_GAA(s(T12), X35, X18) → M20_IN_GAA(T12, X35, X34)
Q1_IN_GG(s(T9), s(T13)) → U5_GG(T9, T13, m3_in_gga(T9, T13, X19))
Q1_IN_GG(s(T9), s(T13)) → M3_IN_GGA(T9, T13, X19)
M3_IN_GGA(s(s(T12)), 0, X35) → U2_GGA(T12, X35, m20_in_gaa(T12, X35, X34))
M3_IN_GGA(s(s(T12)), 0, X35) → M20_IN_GAA(T12, X35, X34)
M3_IN_GGA(s(T9), s(T13), X19) → U3_GGA(T9, T13, X19, m3_in_gga(T9, T13, X19))
M3_IN_GGA(s(T9), s(T13), X19) → M3_IN_GGA(T9, T13, X19)
q1_in_gg(T5, 0) → q1_out_gg(T5, 0)
q1_in_gg(0, T6) → q1_out_gg(0, T6)
q1_in_gg(s(T10), 0) → q1_out_gg(s(T10), 0)
q1_in_gg(s(0), 0) → q1_out_gg(s(0), 0)
q1_in_gg(s(s(T12)), 0) → U4_gg(T12, m20_in_gaa(T12, X35, X34))
m20_in_gaa(T10, T10, X18) → m20_out_gaa(T10, T10, X18)
m20_in_gaa(0, 0, X18) → m20_out_gaa(0, 0, X18)
m20_in_gaa(s(T12), X35, X18) → U1_gaa(T12, X35, X18, m20_in_gaa(T12, X35, X34))
U1_gaa(T12, X35, X18, m20_out_gaa(T12, X35, X34)) → m20_out_gaa(s(T12), X35, X18)
U4_gg(T12, m20_out_gaa(T12, X35, X34)) → q1_out_gg(s(s(T12)), 0)
q1_in_gg(s(T9), s(T13)) → U5_gg(T9, T13, m3_in_gga(T9, T13, X19))
m3_in_gga(T5, 0, T5) → m3_out_gga(T5, 0, T5)
m3_in_gga(0, T6, 0) → m3_out_gga(0, T6, 0)
m3_in_gga(s(T10), 0, T10) → m3_out_gga(s(T10), 0, T10)
m3_in_gga(s(0), 0, 0) → m3_out_gga(s(0), 0, 0)
m3_in_gga(s(s(T12)), 0, X35) → U2_gga(T12, X35, m20_in_gaa(T12, X35, X34))
U2_gga(T12, X35, m20_out_gaa(T12, X35, X34)) → m3_out_gga(s(s(T12)), 0, X35)
m3_in_gga(s(T9), s(T13), X19) → U3_gga(T9, T13, X19, m3_in_gga(T9, T13, X19))
U3_gga(T9, T13, X19, m3_out_gga(T9, T13, X19)) → m3_out_gga(s(T9), s(T13), X19)
U5_gg(T9, T13, m3_out_gga(T9, T13, X19)) → q1_out_gg(s(T9), s(T13))
M20_IN_GAA(s(T12), X35, X18) → M20_IN_GAA(T12, X35, X34)
q1_in_gg(T5, 0) → q1_out_gg(T5, 0)
q1_in_gg(0, T6) → q1_out_gg(0, T6)
q1_in_gg(s(T10), 0) → q1_out_gg(s(T10), 0)
q1_in_gg(s(0), 0) → q1_out_gg(s(0), 0)
q1_in_gg(s(s(T12)), 0) → U4_gg(T12, m20_in_gaa(T12, X35, X34))
m20_in_gaa(T10, T10, X18) → m20_out_gaa(T10, T10, X18)
m20_in_gaa(0, 0, X18) → m20_out_gaa(0, 0, X18)
m20_in_gaa(s(T12), X35, X18) → U1_gaa(T12, X35, X18, m20_in_gaa(T12, X35, X34))
U1_gaa(T12, X35, X18, m20_out_gaa(T12, X35, X34)) → m20_out_gaa(s(T12), X35, X18)
U4_gg(T12, m20_out_gaa(T12, X35, X34)) → q1_out_gg(s(s(T12)), 0)
q1_in_gg(s(T9), s(T13)) → U5_gg(T9, T13, m3_in_gga(T9, T13, X19))
m3_in_gga(T5, 0, T5) → m3_out_gga(T5, 0, T5)
m3_in_gga(0, T6, 0) → m3_out_gga(0, T6, 0)
m3_in_gga(s(T10), 0, T10) → m3_out_gga(s(T10), 0, T10)
m3_in_gga(s(0), 0, 0) → m3_out_gga(s(0), 0, 0)
m3_in_gga(s(s(T12)), 0, X35) → U2_gga(T12, X35, m20_in_gaa(T12, X35, X34))
U2_gga(T12, X35, m20_out_gaa(T12, X35, X34)) → m3_out_gga(s(s(T12)), 0, X35)
m3_in_gga(s(T9), s(T13), X19) → U3_gga(T9, T13, X19, m3_in_gga(T9, T13, X19))
U3_gga(T9, T13, X19, m3_out_gga(T9, T13, X19)) → m3_out_gga(s(T9), s(T13), X19)
U5_gg(T9, T13, m3_out_gga(T9, T13, X19)) → q1_out_gg(s(T9), s(T13))
M20_IN_GAA(s(T12), X35, X18) → M20_IN_GAA(T12, X35, X34)
M20_IN_GAA(s(T12)) → M20_IN_GAA(T12)
From the DPs we obtained the following set of size-change graphs:
M3_IN_GGA(s(T9), s(T13), X19) → M3_IN_GGA(T9, T13, X19)
q1_in_gg(T5, 0) → q1_out_gg(T5, 0)
q1_in_gg(0, T6) → q1_out_gg(0, T6)
q1_in_gg(s(T10), 0) → q1_out_gg(s(T10), 0)
q1_in_gg(s(0), 0) → q1_out_gg(s(0), 0)
q1_in_gg(s(s(T12)), 0) → U4_gg(T12, m20_in_gaa(T12, X35, X34))
m20_in_gaa(T10, T10, X18) → m20_out_gaa(T10, T10, X18)
m20_in_gaa(0, 0, X18) → m20_out_gaa(0, 0, X18)
m20_in_gaa(s(T12), X35, X18) → U1_gaa(T12, X35, X18, m20_in_gaa(T12, X35, X34))
U1_gaa(T12, X35, X18, m20_out_gaa(T12, X35, X34)) → m20_out_gaa(s(T12), X35, X18)
U4_gg(T12, m20_out_gaa(T12, X35, X34)) → q1_out_gg(s(s(T12)), 0)
q1_in_gg(s(T9), s(T13)) → U5_gg(T9, T13, m3_in_gga(T9, T13, X19))
m3_in_gga(T5, 0, T5) → m3_out_gga(T5, 0, T5)
m3_in_gga(0, T6, 0) → m3_out_gga(0, T6, 0)
m3_in_gga(s(T10), 0, T10) → m3_out_gga(s(T10), 0, T10)
m3_in_gga(s(0), 0, 0) → m3_out_gga(s(0), 0, 0)
m3_in_gga(s(s(T12)), 0, X35) → U2_gga(T12, X35, m20_in_gaa(T12, X35, X34))
U2_gga(T12, X35, m20_out_gaa(T12, X35, X34)) → m3_out_gga(s(s(T12)), 0, X35)
m3_in_gga(s(T9), s(T13), X19) → U3_gga(T9, T13, X19, m3_in_gga(T9, T13, X19))
U3_gga(T9, T13, X19, m3_out_gga(T9, T13, X19)) → m3_out_gga(s(T9), s(T13), X19)
U5_gg(T9, T13, m3_out_gga(T9, T13, X19)) → q1_out_gg(s(T9), s(T13))
M3_IN_GGA(s(T9), s(T13), X19) → M3_IN_GGA(T9, T13, X19)
M3_IN_GGA(s(T9), s(T13)) → M3_IN_GGA(T9, T13)
From the DPs we obtained the following set of size-change graphs: