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 MRRProof (⇔)
↳15 QDP
↳16 PisEmptyProof (⇔)
↳17 TRUE
↳18 PiDP
↳19 UsableRulesProof (⇔)
↳20 PiDP
↳21 PiDPToQDPProof (⇔)
↳22 QDP
↳23 MRRProof (⇔)
↳24 QDP
↳25 PisEmptyProof (⇔)
↳26 TRUE
h1_in_g(T2) → U3_g(T2, f4_in_g(T2))
f4_in_g(c(0, T3)) → f4_out_g(c(0, T3))
f4_in_g(c(s(T8), T5)) → U1_g(T8, T5, f4_in_g(c(T8, s(T5))))
U1_g(T8, T5, f4_out_g(c(T8, s(T5)))) → f4_out_g(c(s(T8), T5))
U3_g(T2, f4_out_g(T2)) → h1_out_g(T2)
h1_in_g(c(T9, 0)) → U4_g(T9, f4_in_g(c(T9, 0)))
U4_g(T9, f4_out_g(c(T9, 0))) → h1_out_g(c(T9, 0))
h1_in_g(c(T10, s(T14))) → U5_g(T10, T14, f4_in_g(c(T10, s(T14))))
U5_g(T10, T14, f4_out_g(c(T10, s(T14)))) → U6_g(T10, T14, g5_in_g(c(s(T10), T14)))
g5_in_g(c(T9, 0)) → g5_out_g(c(T9, 0))
g5_in_g(c(T10, s(T14))) → U2_g(T10, T14, g5_in_g(c(s(T10), T14)))
U2_g(T10, T14, g5_out_g(c(s(T10), T14))) → g5_out_g(c(T10, s(T14)))
U6_g(T10, T14, g5_out_g(c(s(T10), T14))) → h1_out_g(c(T10, s(T14)))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
h1_in_g(T2) → U3_g(T2, f4_in_g(T2))
f4_in_g(c(0, T3)) → f4_out_g(c(0, T3))
f4_in_g(c(s(T8), T5)) → U1_g(T8, T5, f4_in_g(c(T8, s(T5))))
U1_g(T8, T5, f4_out_g(c(T8, s(T5)))) → f4_out_g(c(s(T8), T5))
U3_g(T2, f4_out_g(T2)) → h1_out_g(T2)
h1_in_g(c(T9, 0)) → U4_g(T9, f4_in_g(c(T9, 0)))
U4_g(T9, f4_out_g(c(T9, 0))) → h1_out_g(c(T9, 0))
h1_in_g(c(T10, s(T14))) → U5_g(T10, T14, f4_in_g(c(T10, s(T14))))
U5_g(T10, T14, f4_out_g(c(T10, s(T14)))) → U6_g(T10, T14, g5_in_g(c(s(T10), T14)))
g5_in_g(c(T9, 0)) → g5_out_g(c(T9, 0))
g5_in_g(c(T10, s(T14))) → U2_g(T10, T14, g5_in_g(c(s(T10), T14)))
U2_g(T10, T14, g5_out_g(c(s(T10), T14))) → g5_out_g(c(T10, s(T14)))
U6_g(T10, T14, g5_out_g(c(s(T10), T14))) → h1_out_g(c(T10, s(T14)))
H1_IN_G(T2) → U3_G(T2, f4_in_g(T2))
H1_IN_G(T2) → F4_IN_G(T2)
F4_IN_G(c(s(T8), T5)) → U1_G(T8, T5, f4_in_g(c(T8, s(T5))))
F4_IN_G(c(s(T8), T5)) → F4_IN_G(c(T8, s(T5)))
H1_IN_G(c(T9, 0)) → U4_G(T9, f4_in_g(c(T9, 0)))
H1_IN_G(c(T9, 0)) → F4_IN_G(c(T9, 0))
H1_IN_G(c(T10, s(T14))) → U5_G(T10, T14, f4_in_g(c(T10, s(T14))))
H1_IN_G(c(T10, s(T14))) → F4_IN_G(c(T10, s(T14)))
U5_G(T10, T14, f4_out_g(c(T10, s(T14)))) → U6_G(T10, T14, g5_in_g(c(s(T10), T14)))
U5_G(T10, T14, f4_out_g(c(T10, s(T14)))) → G5_IN_G(c(s(T10), T14))
G5_IN_G(c(T10, s(T14))) → U2_G(T10, T14, g5_in_g(c(s(T10), T14)))
G5_IN_G(c(T10, s(T14))) → G5_IN_G(c(s(T10), T14))
h1_in_g(T2) → U3_g(T2, f4_in_g(T2))
f4_in_g(c(0, T3)) → f4_out_g(c(0, T3))
f4_in_g(c(s(T8), T5)) → U1_g(T8, T5, f4_in_g(c(T8, s(T5))))
U1_g(T8, T5, f4_out_g(c(T8, s(T5)))) → f4_out_g(c(s(T8), T5))
U3_g(T2, f4_out_g(T2)) → h1_out_g(T2)
h1_in_g(c(T9, 0)) → U4_g(T9, f4_in_g(c(T9, 0)))
U4_g(T9, f4_out_g(c(T9, 0))) → h1_out_g(c(T9, 0))
h1_in_g(c(T10, s(T14))) → U5_g(T10, T14, f4_in_g(c(T10, s(T14))))
U5_g(T10, T14, f4_out_g(c(T10, s(T14)))) → U6_g(T10, T14, g5_in_g(c(s(T10), T14)))
g5_in_g(c(T9, 0)) → g5_out_g(c(T9, 0))
g5_in_g(c(T10, s(T14))) → U2_g(T10, T14, g5_in_g(c(s(T10), T14)))
U2_g(T10, T14, g5_out_g(c(s(T10), T14))) → g5_out_g(c(T10, s(T14)))
U6_g(T10, T14, g5_out_g(c(s(T10), T14))) → h1_out_g(c(T10, s(T14)))
H1_IN_G(T2) → U3_G(T2, f4_in_g(T2))
H1_IN_G(T2) → F4_IN_G(T2)
F4_IN_G(c(s(T8), T5)) → U1_G(T8, T5, f4_in_g(c(T8, s(T5))))
F4_IN_G(c(s(T8), T5)) → F4_IN_G(c(T8, s(T5)))
H1_IN_G(c(T9, 0)) → U4_G(T9, f4_in_g(c(T9, 0)))
H1_IN_G(c(T9, 0)) → F4_IN_G(c(T9, 0))
H1_IN_G(c(T10, s(T14))) → U5_G(T10, T14, f4_in_g(c(T10, s(T14))))
H1_IN_G(c(T10, s(T14))) → F4_IN_G(c(T10, s(T14)))
U5_G(T10, T14, f4_out_g(c(T10, s(T14)))) → U6_G(T10, T14, g5_in_g(c(s(T10), T14)))
U5_G(T10, T14, f4_out_g(c(T10, s(T14)))) → G5_IN_G(c(s(T10), T14))
G5_IN_G(c(T10, s(T14))) → U2_G(T10, T14, g5_in_g(c(s(T10), T14)))
G5_IN_G(c(T10, s(T14))) → G5_IN_G(c(s(T10), T14))
h1_in_g(T2) → U3_g(T2, f4_in_g(T2))
f4_in_g(c(0, T3)) → f4_out_g(c(0, T3))
f4_in_g(c(s(T8), T5)) → U1_g(T8, T5, f4_in_g(c(T8, s(T5))))
U1_g(T8, T5, f4_out_g(c(T8, s(T5)))) → f4_out_g(c(s(T8), T5))
U3_g(T2, f4_out_g(T2)) → h1_out_g(T2)
h1_in_g(c(T9, 0)) → U4_g(T9, f4_in_g(c(T9, 0)))
U4_g(T9, f4_out_g(c(T9, 0))) → h1_out_g(c(T9, 0))
h1_in_g(c(T10, s(T14))) → U5_g(T10, T14, f4_in_g(c(T10, s(T14))))
U5_g(T10, T14, f4_out_g(c(T10, s(T14)))) → U6_g(T10, T14, g5_in_g(c(s(T10), T14)))
g5_in_g(c(T9, 0)) → g5_out_g(c(T9, 0))
g5_in_g(c(T10, s(T14))) → U2_g(T10, T14, g5_in_g(c(s(T10), T14)))
U2_g(T10, T14, g5_out_g(c(s(T10), T14))) → g5_out_g(c(T10, s(T14)))
U6_g(T10, T14, g5_out_g(c(s(T10), T14))) → h1_out_g(c(T10, s(T14)))
G5_IN_G(c(T10, s(T14))) → G5_IN_G(c(s(T10), T14))
h1_in_g(T2) → U3_g(T2, f4_in_g(T2))
f4_in_g(c(0, T3)) → f4_out_g(c(0, T3))
f4_in_g(c(s(T8), T5)) → U1_g(T8, T5, f4_in_g(c(T8, s(T5))))
U1_g(T8, T5, f4_out_g(c(T8, s(T5)))) → f4_out_g(c(s(T8), T5))
U3_g(T2, f4_out_g(T2)) → h1_out_g(T2)
h1_in_g(c(T9, 0)) → U4_g(T9, f4_in_g(c(T9, 0)))
U4_g(T9, f4_out_g(c(T9, 0))) → h1_out_g(c(T9, 0))
h1_in_g(c(T10, s(T14))) → U5_g(T10, T14, f4_in_g(c(T10, s(T14))))
U5_g(T10, T14, f4_out_g(c(T10, s(T14)))) → U6_g(T10, T14, g5_in_g(c(s(T10), T14)))
g5_in_g(c(T9, 0)) → g5_out_g(c(T9, 0))
g5_in_g(c(T10, s(T14))) → U2_g(T10, T14, g5_in_g(c(s(T10), T14)))
U2_g(T10, T14, g5_out_g(c(s(T10), T14))) → g5_out_g(c(T10, s(T14)))
U6_g(T10, T14, g5_out_g(c(s(T10), T14))) → h1_out_g(c(T10, s(T14)))
G5_IN_G(c(T10, s(T14))) → G5_IN_G(c(s(T10), T14))
G5_IN_G(c(T10, s(T14))) → G5_IN_G(c(s(T10), T14))
G5_IN_G(c(T10, s(T14))) → G5_IN_G(c(s(T10), T14))
POL(G5_IN_G(x1)) = 2·x1
POL(c(x1, x2)) = x1 + 2·x2
POL(s(x1)) = 1 + x1
F4_IN_G(c(s(T8), T5)) → F4_IN_G(c(T8, s(T5)))
h1_in_g(T2) → U3_g(T2, f4_in_g(T2))
f4_in_g(c(0, T3)) → f4_out_g(c(0, T3))
f4_in_g(c(s(T8), T5)) → U1_g(T8, T5, f4_in_g(c(T8, s(T5))))
U1_g(T8, T5, f4_out_g(c(T8, s(T5)))) → f4_out_g(c(s(T8), T5))
U3_g(T2, f4_out_g(T2)) → h1_out_g(T2)
h1_in_g(c(T9, 0)) → U4_g(T9, f4_in_g(c(T9, 0)))
U4_g(T9, f4_out_g(c(T9, 0))) → h1_out_g(c(T9, 0))
h1_in_g(c(T10, s(T14))) → U5_g(T10, T14, f4_in_g(c(T10, s(T14))))
U5_g(T10, T14, f4_out_g(c(T10, s(T14)))) → U6_g(T10, T14, g5_in_g(c(s(T10), T14)))
g5_in_g(c(T9, 0)) → g5_out_g(c(T9, 0))
g5_in_g(c(T10, s(T14))) → U2_g(T10, T14, g5_in_g(c(s(T10), T14)))
U2_g(T10, T14, g5_out_g(c(s(T10), T14))) → g5_out_g(c(T10, s(T14)))
U6_g(T10, T14, g5_out_g(c(s(T10), T14))) → h1_out_g(c(T10, s(T14)))
F4_IN_G(c(s(T8), T5)) → F4_IN_G(c(T8, s(T5)))
F4_IN_G(c(s(T8), T5)) → F4_IN_G(c(T8, s(T5)))
F4_IN_G(c(s(T8), T5)) → F4_IN_G(c(T8, s(T5)))
POL(F4_IN_G(x1)) = 2·x1
POL(c(x1, x2)) = 2·x1 + x2
POL(s(x1)) = 1 + x1