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 UsableRulesReductionPairsProof (⇔)
↳22 QDP
↳23 PisEmptyProof (⇔)
↳24 YES
ordered1_in_g([]) → ordered1_out_g([])
ordered1_in_g(.(T3, [])) → ordered1_out_g(.(T3, []))
ordered1_in_g(.(0, .(T15, T10))) → U2_g(T15, T10, ordered1_in_g(.(T15, T10)))
ordered1_in_g(.(s(T22), .(T23, T10))) → U3_g(T22, T23, T10, less21_in_gg(T22, T23))
less21_in_gg(0, s(T32)) → less21_out_gg(0, s(T32))
less21_in_gg(s(T37), s(T38)) → U1_gg(T37, T38, less21_in_gg(T37, T38))
U1_gg(T37, T38, less21_out_gg(T37, T38)) → less21_out_gg(s(T37), s(T38))
U3_g(T22, T23, T10, less21_out_gg(T22, T23)) → ordered1_out_g(.(s(T22), .(T23, T10)))
U3_g(T22, T23, T10, less21_out_gg(T22, T23)) → U4_g(T22, T23, T10, ordered1_in_g(.(T23, T10)))
U4_g(T22, T23, T10, ordered1_out_g(.(T23, T10))) → ordered1_out_g(.(s(T22), .(T23, T10)))
U2_g(T15, T10, ordered1_out_g(.(T15, T10))) → ordered1_out_g(.(0, .(T15, T10)))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
ordered1_in_g([]) → ordered1_out_g([])
ordered1_in_g(.(T3, [])) → ordered1_out_g(.(T3, []))
ordered1_in_g(.(0, .(T15, T10))) → U2_g(T15, T10, ordered1_in_g(.(T15, T10)))
ordered1_in_g(.(s(T22), .(T23, T10))) → U3_g(T22, T23, T10, less21_in_gg(T22, T23))
less21_in_gg(0, s(T32)) → less21_out_gg(0, s(T32))
less21_in_gg(s(T37), s(T38)) → U1_gg(T37, T38, less21_in_gg(T37, T38))
U1_gg(T37, T38, less21_out_gg(T37, T38)) → less21_out_gg(s(T37), s(T38))
U3_g(T22, T23, T10, less21_out_gg(T22, T23)) → ordered1_out_g(.(s(T22), .(T23, T10)))
U3_g(T22, T23, T10, less21_out_gg(T22, T23)) → U4_g(T22, T23, T10, ordered1_in_g(.(T23, T10)))
U4_g(T22, T23, T10, ordered1_out_g(.(T23, T10))) → ordered1_out_g(.(s(T22), .(T23, T10)))
U2_g(T15, T10, ordered1_out_g(.(T15, T10))) → ordered1_out_g(.(0, .(T15, T10)))
ORDERED1_IN_G(.(0, .(T15, T10))) → U2_G(T15, T10, ordered1_in_g(.(T15, T10)))
ORDERED1_IN_G(.(0, .(T15, T10))) → ORDERED1_IN_G(.(T15, T10))
ORDERED1_IN_G(.(s(T22), .(T23, T10))) → U3_G(T22, T23, T10, less21_in_gg(T22, T23))
ORDERED1_IN_G(.(s(T22), .(T23, T10))) → LESS21_IN_GG(T22, T23)
LESS21_IN_GG(s(T37), s(T38)) → U1_GG(T37, T38, less21_in_gg(T37, T38))
LESS21_IN_GG(s(T37), s(T38)) → LESS21_IN_GG(T37, T38)
U3_G(T22, T23, T10, less21_out_gg(T22, T23)) → U4_G(T22, T23, T10, ordered1_in_g(.(T23, T10)))
U3_G(T22, T23, T10, less21_out_gg(T22, T23)) → ORDERED1_IN_G(.(T23, T10))
ordered1_in_g([]) → ordered1_out_g([])
ordered1_in_g(.(T3, [])) → ordered1_out_g(.(T3, []))
ordered1_in_g(.(0, .(T15, T10))) → U2_g(T15, T10, ordered1_in_g(.(T15, T10)))
ordered1_in_g(.(s(T22), .(T23, T10))) → U3_g(T22, T23, T10, less21_in_gg(T22, T23))
less21_in_gg(0, s(T32)) → less21_out_gg(0, s(T32))
less21_in_gg(s(T37), s(T38)) → U1_gg(T37, T38, less21_in_gg(T37, T38))
U1_gg(T37, T38, less21_out_gg(T37, T38)) → less21_out_gg(s(T37), s(T38))
U3_g(T22, T23, T10, less21_out_gg(T22, T23)) → ordered1_out_g(.(s(T22), .(T23, T10)))
U3_g(T22, T23, T10, less21_out_gg(T22, T23)) → U4_g(T22, T23, T10, ordered1_in_g(.(T23, T10)))
U4_g(T22, T23, T10, ordered1_out_g(.(T23, T10))) → ordered1_out_g(.(s(T22), .(T23, T10)))
U2_g(T15, T10, ordered1_out_g(.(T15, T10))) → ordered1_out_g(.(0, .(T15, T10)))
ORDERED1_IN_G(.(0, .(T15, T10))) → U2_G(T15, T10, ordered1_in_g(.(T15, T10)))
ORDERED1_IN_G(.(0, .(T15, T10))) → ORDERED1_IN_G(.(T15, T10))
ORDERED1_IN_G(.(s(T22), .(T23, T10))) → U3_G(T22, T23, T10, less21_in_gg(T22, T23))
ORDERED1_IN_G(.(s(T22), .(T23, T10))) → LESS21_IN_GG(T22, T23)
LESS21_IN_GG(s(T37), s(T38)) → U1_GG(T37, T38, less21_in_gg(T37, T38))
LESS21_IN_GG(s(T37), s(T38)) → LESS21_IN_GG(T37, T38)
U3_G(T22, T23, T10, less21_out_gg(T22, T23)) → U4_G(T22, T23, T10, ordered1_in_g(.(T23, T10)))
U3_G(T22, T23, T10, less21_out_gg(T22, T23)) → ORDERED1_IN_G(.(T23, T10))
ordered1_in_g([]) → ordered1_out_g([])
ordered1_in_g(.(T3, [])) → ordered1_out_g(.(T3, []))
ordered1_in_g(.(0, .(T15, T10))) → U2_g(T15, T10, ordered1_in_g(.(T15, T10)))
ordered1_in_g(.(s(T22), .(T23, T10))) → U3_g(T22, T23, T10, less21_in_gg(T22, T23))
less21_in_gg(0, s(T32)) → less21_out_gg(0, s(T32))
less21_in_gg(s(T37), s(T38)) → U1_gg(T37, T38, less21_in_gg(T37, T38))
U1_gg(T37, T38, less21_out_gg(T37, T38)) → less21_out_gg(s(T37), s(T38))
U3_g(T22, T23, T10, less21_out_gg(T22, T23)) → ordered1_out_g(.(s(T22), .(T23, T10)))
U3_g(T22, T23, T10, less21_out_gg(T22, T23)) → U4_g(T22, T23, T10, ordered1_in_g(.(T23, T10)))
U4_g(T22, T23, T10, ordered1_out_g(.(T23, T10))) → ordered1_out_g(.(s(T22), .(T23, T10)))
U2_g(T15, T10, ordered1_out_g(.(T15, T10))) → ordered1_out_g(.(0, .(T15, T10)))
LESS21_IN_GG(s(T37), s(T38)) → LESS21_IN_GG(T37, T38)
ordered1_in_g([]) → ordered1_out_g([])
ordered1_in_g(.(T3, [])) → ordered1_out_g(.(T3, []))
ordered1_in_g(.(0, .(T15, T10))) → U2_g(T15, T10, ordered1_in_g(.(T15, T10)))
ordered1_in_g(.(s(T22), .(T23, T10))) → U3_g(T22, T23, T10, less21_in_gg(T22, T23))
less21_in_gg(0, s(T32)) → less21_out_gg(0, s(T32))
less21_in_gg(s(T37), s(T38)) → U1_gg(T37, T38, less21_in_gg(T37, T38))
U1_gg(T37, T38, less21_out_gg(T37, T38)) → less21_out_gg(s(T37), s(T38))
U3_g(T22, T23, T10, less21_out_gg(T22, T23)) → ordered1_out_g(.(s(T22), .(T23, T10)))
U3_g(T22, T23, T10, less21_out_gg(T22, T23)) → U4_g(T22, T23, T10, ordered1_in_g(.(T23, T10)))
U4_g(T22, T23, T10, ordered1_out_g(.(T23, T10))) → ordered1_out_g(.(s(T22), .(T23, T10)))
U2_g(T15, T10, ordered1_out_g(.(T15, T10))) → ordered1_out_g(.(0, .(T15, T10)))
LESS21_IN_GG(s(T37), s(T38)) → LESS21_IN_GG(T37, T38)
LESS21_IN_GG(s(T37), s(T38)) → LESS21_IN_GG(T37, T38)
From the DPs we obtained the following set of size-change graphs:
ORDERED1_IN_G(.(s(T22), .(T23, T10))) → U3_G(T22, T23, T10, less21_in_gg(T22, T23))
U3_G(T22, T23, T10, less21_out_gg(T22, T23)) → ORDERED1_IN_G(.(T23, T10))
ORDERED1_IN_G(.(0, .(T15, T10))) → ORDERED1_IN_G(.(T15, T10))
ordered1_in_g([]) → ordered1_out_g([])
ordered1_in_g(.(T3, [])) → ordered1_out_g(.(T3, []))
ordered1_in_g(.(0, .(T15, T10))) → U2_g(T15, T10, ordered1_in_g(.(T15, T10)))
ordered1_in_g(.(s(T22), .(T23, T10))) → U3_g(T22, T23, T10, less21_in_gg(T22, T23))
less21_in_gg(0, s(T32)) → less21_out_gg(0, s(T32))
less21_in_gg(s(T37), s(T38)) → U1_gg(T37, T38, less21_in_gg(T37, T38))
U1_gg(T37, T38, less21_out_gg(T37, T38)) → less21_out_gg(s(T37), s(T38))
U3_g(T22, T23, T10, less21_out_gg(T22, T23)) → ordered1_out_g(.(s(T22), .(T23, T10)))
U3_g(T22, T23, T10, less21_out_gg(T22, T23)) → U4_g(T22, T23, T10, ordered1_in_g(.(T23, T10)))
U4_g(T22, T23, T10, ordered1_out_g(.(T23, T10))) → ordered1_out_g(.(s(T22), .(T23, T10)))
U2_g(T15, T10, ordered1_out_g(.(T15, T10))) → ordered1_out_g(.(0, .(T15, T10)))
ORDERED1_IN_G(.(s(T22), .(T23, T10))) → U3_G(T22, T23, T10, less21_in_gg(T22, T23))
U3_G(T22, T23, T10, less21_out_gg(T22, T23)) → ORDERED1_IN_G(.(T23, T10))
ORDERED1_IN_G(.(0, .(T15, T10))) → ORDERED1_IN_G(.(T15, T10))
less21_in_gg(0, s(T32)) → less21_out_gg(0, s(T32))
less21_in_gg(s(T37), s(T38)) → U1_gg(T37, T38, less21_in_gg(T37, T38))
U1_gg(T37, T38, less21_out_gg(T37, T38)) → less21_out_gg(s(T37), s(T38))
ORDERED1_IN_G(.(s(T22), .(T23, T10))) → U3_G(T23, T10, less21_in_gg(T22, T23))
U3_G(T23, T10, less21_out_gg) → ORDERED1_IN_G(.(T23, T10))
ORDERED1_IN_G(.(0, .(T15, T10))) → ORDERED1_IN_G(.(T15, T10))
less21_in_gg(0, s(T32)) → less21_out_gg
less21_in_gg(s(T37), s(T38)) → U1_gg(less21_in_gg(T37, T38))
U1_gg(less21_out_gg) → less21_out_gg
less21_in_gg(x0, x1)
U1_gg(x0)
The following rules are removed from R:
ORDERED1_IN_G(.(s(T22), .(T23, T10))) → U3_G(T23, T10, less21_in_gg(T22, T23))
U3_G(T23, T10, less21_out_gg) → ORDERED1_IN_G(.(T23, T10))
ORDERED1_IN_G(.(0, .(T15, T10))) → ORDERED1_IN_G(.(T15, T10))
Used ordering: POLO with Polynomial interpretation [POLO]:
less21_in_gg(0, s(T32)) → less21_out_gg
less21_in_gg(s(T37), s(T38)) → U1_gg(less21_in_gg(T37, T38))
U1_gg(less21_out_gg) → less21_out_gg
POL(.(x1, x2)) = 2·x1 + 2·x2
POL(0) = 1
POL(ORDERED1_IN_G(x1)) = x1
POL(U1_gg(x1)) = 2·x1
POL(U3_G(x1, x2, x3)) = 2·x1 + 2·x2 + x3
POL(less21_in_gg(x1, x2)) = x1 + 2·x2
POL(less21_out_gg) = 1
POL(s(x1)) = 2·x1
less21_in_gg(x0, x1)
U1_gg(x0)