0 Prolog
↳1 PrologToPrologProblemTransformerProof (⇒, 166 ms)
↳2 Prolog
↳3 PrologToPiTRSProof (⇒, 0 ms)
↳4 PiTRS
↳5 DependencyPairsProof (⇔, 51 ms)
↳6 PiDP
↳7 DependencyGraphProof (⇔, 0 ms)
↳8 AND
↳9 PiDP
↳10 UsableRulesProof (⇔, 0 ms)
↳11 PiDP
↳12 PiDPToQDPProof (⇔, 0 ms)
↳13 QDP
↳14 QDPSizeChangeProof (⇔, 0 ms)
↳15 YES
↳16 PiDP
↳17 UsableRulesProof (⇔, 0 ms)
↳18 PiDP
↳19 PiDPToQDPProof (⇔, 0 ms)
↳20 QDP
↳21 QDPSizeChangeProof (⇔, 0 ms)
↳22 YES
↳23 PiDP
↳24 UsableRulesProof (⇔, 0 ms)
↳25 PiDP
↳26 PiDPToQDPProof (⇒, 0 ms)
↳27 QDP
↳28 UsableRulesReductionPairsProof (⇔, 159 ms)
↳29 QDP
↳30 DependencyGraphProof (⇔, 0 ms)
↳31 TRUE
orderedD_in_g([]) → orderedD_out_g([])
orderedD_in_g(.(T3, [])) → orderedD_out_g(.(T3, []))
orderedD_in_g(.(T16, .(T30, T31))) → U5_g(T16, T30, T31, lessC_in_gg(T16, T30))
lessC_in_gg(0, T39) → lessC_out_gg(0, T39)
lessC_in_gg(s(T48), T52) → U4_gg(T48, T52, lessB_in_gg(T48, T52))
lessB_in_gg(0, s(T62)) → lessB_out_gg(0, s(T62))
lessB_in_gg(s(T71), 0) → U2_gg(T71, lessA_in_g(T71))
lessA_in_g(s(T77)) → U1_g(T77, lessA_in_g(T77))
U1_g(T77, lessA_out_g(T77)) → lessA_out_g(s(T77))
U2_gg(T71, lessA_out_g(T71)) → lessB_out_gg(s(T71), 0)
lessB_in_gg(s(T71), s(T80)) → U3_gg(T71, T80, lessB_in_gg(T71, T80))
U3_gg(T71, T80, lessB_out_gg(T71, T80)) → lessB_out_gg(s(T71), s(T80))
U4_gg(T48, T52, lessB_out_gg(T48, T52)) → lessC_out_gg(s(T48), T52)
U5_g(T16, T30, T31, lessC_out_gg(T16, T30)) → orderedD_out_g(.(T16, .(T30, T31)))
U5_g(T16, T30, T31, lessC_out_gg(T16, T30)) → U6_g(T16, T30, T31, orderedD_in_g(.(T30, T31)))
U6_g(T16, T30, T31, orderedD_out_g(.(T30, T31))) → orderedD_out_g(.(T16, .(T30, T31)))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
orderedD_in_g([]) → orderedD_out_g([])
orderedD_in_g(.(T3, [])) → orderedD_out_g(.(T3, []))
orderedD_in_g(.(T16, .(T30, T31))) → U5_g(T16, T30, T31, lessC_in_gg(T16, T30))
lessC_in_gg(0, T39) → lessC_out_gg(0, T39)
lessC_in_gg(s(T48), T52) → U4_gg(T48, T52, lessB_in_gg(T48, T52))
lessB_in_gg(0, s(T62)) → lessB_out_gg(0, s(T62))
lessB_in_gg(s(T71), 0) → U2_gg(T71, lessA_in_g(T71))
lessA_in_g(s(T77)) → U1_g(T77, lessA_in_g(T77))
U1_g(T77, lessA_out_g(T77)) → lessA_out_g(s(T77))
U2_gg(T71, lessA_out_g(T71)) → lessB_out_gg(s(T71), 0)
lessB_in_gg(s(T71), s(T80)) → U3_gg(T71, T80, lessB_in_gg(T71, T80))
U3_gg(T71, T80, lessB_out_gg(T71, T80)) → lessB_out_gg(s(T71), s(T80))
U4_gg(T48, T52, lessB_out_gg(T48, T52)) → lessC_out_gg(s(T48), T52)
U5_g(T16, T30, T31, lessC_out_gg(T16, T30)) → orderedD_out_g(.(T16, .(T30, T31)))
U5_g(T16, T30, T31, lessC_out_gg(T16, T30)) → U6_g(T16, T30, T31, orderedD_in_g(.(T30, T31)))
U6_g(T16, T30, T31, orderedD_out_g(.(T30, T31))) → orderedD_out_g(.(T16, .(T30, T31)))
ORDEREDD_IN_G(.(T16, .(T30, T31))) → U5_G(T16, T30, T31, lessC_in_gg(T16, T30))
ORDEREDD_IN_G(.(T16, .(T30, T31))) → LESSC_IN_GG(T16, T30)
LESSC_IN_GG(s(T48), T52) → U4_GG(T48, T52, lessB_in_gg(T48, T52))
LESSC_IN_GG(s(T48), T52) → LESSB_IN_GG(T48, T52)
LESSB_IN_GG(s(T71), 0) → U2_GG(T71, lessA_in_g(T71))
LESSB_IN_GG(s(T71), 0) → LESSA_IN_G(T71)
LESSA_IN_G(s(T77)) → U1_G(T77, lessA_in_g(T77))
LESSA_IN_G(s(T77)) → LESSA_IN_G(T77)
LESSB_IN_GG(s(T71), s(T80)) → U3_GG(T71, T80, lessB_in_gg(T71, T80))
LESSB_IN_GG(s(T71), s(T80)) → LESSB_IN_GG(T71, T80)
U5_G(T16, T30, T31, lessC_out_gg(T16, T30)) → U6_G(T16, T30, T31, orderedD_in_g(.(T30, T31)))
U5_G(T16, T30, T31, lessC_out_gg(T16, T30)) → ORDEREDD_IN_G(.(T30, T31))
orderedD_in_g([]) → orderedD_out_g([])
orderedD_in_g(.(T3, [])) → orderedD_out_g(.(T3, []))
orderedD_in_g(.(T16, .(T30, T31))) → U5_g(T16, T30, T31, lessC_in_gg(T16, T30))
lessC_in_gg(0, T39) → lessC_out_gg(0, T39)
lessC_in_gg(s(T48), T52) → U4_gg(T48, T52, lessB_in_gg(T48, T52))
lessB_in_gg(0, s(T62)) → lessB_out_gg(0, s(T62))
lessB_in_gg(s(T71), 0) → U2_gg(T71, lessA_in_g(T71))
lessA_in_g(s(T77)) → U1_g(T77, lessA_in_g(T77))
U1_g(T77, lessA_out_g(T77)) → lessA_out_g(s(T77))
U2_gg(T71, lessA_out_g(T71)) → lessB_out_gg(s(T71), 0)
lessB_in_gg(s(T71), s(T80)) → U3_gg(T71, T80, lessB_in_gg(T71, T80))
U3_gg(T71, T80, lessB_out_gg(T71, T80)) → lessB_out_gg(s(T71), s(T80))
U4_gg(T48, T52, lessB_out_gg(T48, T52)) → lessC_out_gg(s(T48), T52)
U5_g(T16, T30, T31, lessC_out_gg(T16, T30)) → orderedD_out_g(.(T16, .(T30, T31)))
U5_g(T16, T30, T31, lessC_out_gg(T16, T30)) → U6_g(T16, T30, T31, orderedD_in_g(.(T30, T31)))
U6_g(T16, T30, T31, orderedD_out_g(.(T30, T31))) → orderedD_out_g(.(T16, .(T30, T31)))
ORDEREDD_IN_G(.(T16, .(T30, T31))) → U5_G(T16, T30, T31, lessC_in_gg(T16, T30))
ORDEREDD_IN_G(.(T16, .(T30, T31))) → LESSC_IN_GG(T16, T30)
LESSC_IN_GG(s(T48), T52) → U4_GG(T48, T52, lessB_in_gg(T48, T52))
LESSC_IN_GG(s(T48), T52) → LESSB_IN_GG(T48, T52)
LESSB_IN_GG(s(T71), 0) → U2_GG(T71, lessA_in_g(T71))
LESSB_IN_GG(s(T71), 0) → LESSA_IN_G(T71)
LESSA_IN_G(s(T77)) → U1_G(T77, lessA_in_g(T77))
LESSA_IN_G(s(T77)) → LESSA_IN_G(T77)
LESSB_IN_GG(s(T71), s(T80)) → U3_GG(T71, T80, lessB_in_gg(T71, T80))
LESSB_IN_GG(s(T71), s(T80)) → LESSB_IN_GG(T71, T80)
U5_G(T16, T30, T31, lessC_out_gg(T16, T30)) → U6_G(T16, T30, T31, orderedD_in_g(.(T30, T31)))
U5_G(T16, T30, T31, lessC_out_gg(T16, T30)) → ORDEREDD_IN_G(.(T30, T31))
orderedD_in_g([]) → orderedD_out_g([])
orderedD_in_g(.(T3, [])) → orderedD_out_g(.(T3, []))
orderedD_in_g(.(T16, .(T30, T31))) → U5_g(T16, T30, T31, lessC_in_gg(T16, T30))
lessC_in_gg(0, T39) → lessC_out_gg(0, T39)
lessC_in_gg(s(T48), T52) → U4_gg(T48, T52, lessB_in_gg(T48, T52))
lessB_in_gg(0, s(T62)) → lessB_out_gg(0, s(T62))
lessB_in_gg(s(T71), 0) → U2_gg(T71, lessA_in_g(T71))
lessA_in_g(s(T77)) → U1_g(T77, lessA_in_g(T77))
U1_g(T77, lessA_out_g(T77)) → lessA_out_g(s(T77))
U2_gg(T71, lessA_out_g(T71)) → lessB_out_gg(s(T71), 0)
lessB_in_gg(s(T71), s(T80)) → U3_gg(T71, T80, lessB_in_gg(T71, T80))
U3_gg(T71, T80, lessB_out_gg(T71, T80)) → lessB_out_gg(s(T71), s(T80))
U4_gg(T48, T52, lessB_out_gg(T48, T52)) → lessC_out_gg(s(T48), T52)
U5_g(T16, T30, T31, lessC_out_gg(T16, T30)) → orderedD_out_g(.(T16, .(T30, T31)))
U5_g(T16, T30, T31, lessC_out_gg(T16, T30)) → U6_g(T16, T30, T31, orderedD_in_g(.(T30, T31)))
U6_g(T16, T30, T31, orderedD_out_g(.(T30, T31))) → orderedD_out_g(.(T16, .(T30, T31)))
LESSA_IN_G(s(T77)) → LESSA_IN_G(T77)
orderedD_in_g([]) → orderedD_out_g([])
orderedD_in_g(.(T3, [])) → orderedD_out_g(.(T3, []))
orderedD_in_g(.(T16, .(T30, T31))) → U5_g(T16, T30, T31, lessC_in_gg(T16, T30))
lessC_in_gg(0, T39) → lessC_out_gg(0, T39)
lessC_in_gg(s(T48), T52) → U4_gg(T48, T52, lessB_in_gg(T48, T52))
lessB_in_gg(0, s(T62)) → lessB_out_gg(0, s(T62))
lessB_in_gg(s(T71), 0) → U2_gg(T71, lessA_in_g(T71))
lessA_in_g(s(T77)) → U1_g(T77, lessA_in_g(T77))
U1_g(T77, lessA_out_g(T77)) → lessA_out_g(s(T77))
U2_gg(T71, lessA_out_g(T71)) → lessB_out_gg(s(T71), 0)
lessB_in_gg(s(T71), s(T80)) → U3_gg(T71, T80, lessB_in_gg(T71, T80))
U3_gg(T71, T80, lessB_out_gg(T71, T80)) → lessB_out_gg(s(T71), s(T80))
U4_gg(T48, T52, lessB_out_gg(T48, T52)) → lessC_out_gg(s(T48), T52)
U5_g(T16, T30, T31, lessC_out_gg(T16, T30)) → orderedD_out_g(.(T16, .(T30, T31)))
U5_g(T16, T30, T31, lessC_out_gg(T16, T30)) → U6_g(T16, T30, T31, orderedD_in_g(.(T30, T31)))
U6_g(T16, T30, T31, orderedD_out_g(.(T30, T31))) → orderedD_out_g(.(T16, .(T30, T31)))
LESSA_IN_G(s(T77)) → LESSA_IN_G(T77)
LESSA_IN_G(s(T77)) → LESSA_IN_G(T77)
From the DPs we obtained the following set of size-change graphs:
LESSB_IN_GG(s(T71), s(T80)) → LESSB_IN_GG(T71, T80)
orderedD_in_g([]) → orderedD_out_g([])
orderedD_in_g(.(T3, [])) → orderedD_out_g(.(T3, []))
orderedD_in_g(.(T16, .(T30, T31))) → U5_g(T16, T30, T31, lessC_in_gg(T16, T30))
lessC_in_gg(0, T39) → lessC_out_gg(0, T39)
lessC_in_gg(s(T48), T52) → U4_gg(T48, T52, lessB_in_gg(T48, T52))
lessB_in_gg(0, s(T62)) → lessB_out_gg(0, s(T62))
lessB_in_gg(s(T71), 0) → U2_gg(T71, lessA_in_g(T71))
lessA_in_g(s(T77)) → U1_g(T77, lessA_in_g(T77))
U1_g(T77, lessA_out_g(T77)) → lessA_out_g(s(T77))
U2_gg(T71, lessA_out_g(T71)) → lessB_out_gg(s(T71), 0)
lessB_in_gg(s(T71), s(T80)) → U3_gg(T71, T80, lessB_in_gg(T71, T80))
U3_gg(T71, T80, lessB_out_gg(T71, T80)) → lessB_out_gg(s(T71), s(T80))
U4_gg(T48, T52, lessB_out_gg(T48, T52)) → lessC_out_gg(s(T48), T52)
U5_g(T16, T30, T31, lessC_out_gg(T16, T30)) → orderedD_out_g(.(T16, .(T30, T31)))
U5_g(T16, T30, T31, lessC_out_gg(T16, T30)) → U6_g(T16, T30, T31, orderedD_in_g(.(T30, T31)))
U6_g(T16, T30, T31, orderedD_out_g(.(T30, T31))) → orderedD_out_g(.(T16, .(T30, T31)))
LESSB_IN_GG(s(T71), s(T80)) → LESSB_IN_GG(T71, T80)
LESSB_IN_GG(s(T71), s(T80)) → LESSB_IN_GG(T71, T80)
From the DPs we obtained the following set of size-change graphs:
U5_G(T16, T30, T31, lessC_out_gg(T16, T30)) → ORDEREDD_IN_G(.(T30, T31))
ORDEREDD_IN_G(.(T16, .(T30, T31))) → U5_G(T16, T30, T31, lessC_in_gg(T16, T30))
orderedD_in_g([]) → orderedD_out_g([])
orderedD_in_g(.(T3, [])) → orderedD_out_g(.(T3, []))
orderedD_in_g(.(T16, .(T30, T31))) → U5_g(T16, T30, T31, lessC_in_gg(T16, T30))
lessC_in_gg(0, T39) → lessC_out_gg(0, T39)
lessC_in_gg(s(T48), T52) → U4_gg(T48, T52, lessB_in_gg(T48, T52))
lessB_in_gg(0, s(T62)) → lessB_out_gg(0, s(T62))
lessB_in_gg(s(T71), 0) → U2_gg(T71, lessA_in_g(T71))
lessA_in_g(s(T77)) → U1_g(T77, lessA_in_g(T77))
U1_g(T77, lessA_out_g(T77)) → lessA_out_g(s(T77))
U2_gg(T71, lessA_out_g(T71)) → lessB_out_gg(s(T71), 0)
lessB_in_gg(s(T71), s(T80)) → U3_gg(T71, T80, lessB_in_gg(T71, T80))
U3_gg(T71, T80, lessB_out_gg(T71, T80)) → lessB_out_gg(s(T71), s(T80))
U4_gg(T48, T52, lessB_out_gg(T48, T52)) → lessC_out_gg(s(T48), T52)
U5_g(T16, T30, T31, lessC_out_gg(T16, T30)) → orderedD_out_g(.(T16, .(T30, T31)))
U5_g(T16, T30, T31, lessC_out_gg(T16, T30)) → U6_g(T16, T30, T31, orderedD_in_g(.(T30, T31)))
U6_g(T16, T30, T31, orderedD_out_g(.(T30, T31))) → orderedD_out_g(.(T16, .(T30, T31)))
U5_G(T16, T30, T31, lessC_out_gg(T16, T30)) → ORDEREDD_IN_G(.(T30, T31))
ORDEREDD_IN_G(.(T16, .(T30, T31))) → U5_G(T16, T30, T31, lessC_in_gg(T16, T30))
lessC_in_gg(0, T39) → lessC_out_gg(0, T39)
lessC_in_gg(s(T48), T52) → U4_gg(T48, T52, lessB_in_gg(T48, T52))
U4_gg(T48, T52, lessB_out_gg(T48, T52)) → lessC_out_gg(s(T48), T52)
lessB_in_gg(0, s(T62)) → lessB_out_gg(0, s(T62))
lessB_in_gg(s(T71), 0) → U2_gg(T71, lessA_in_g(T71))
lessB_in_gg(s(T71), s(T80)) → U3_gg(T71, T80, lessB_in_gg(T71, T80))
U2_gg(T71, lessA_out_g(T71)) → lessB_out_gg(s(T71), 0)
U3_gg(T71, T80, lessB_out_gg(T71, T80)) → lessB_out_gg(s(T71), s(T80))
lessA_in_g(s(T77)) → U1_g(T77, lessA_in_g(T77))
U1_g(T77, lessA_out_g(T77)) → lessA_out_g(s(T77))
U5_G(T30, T31, lessC_out_gg) → ORDEREDD_IN_G(.(T30, T31))
ORDEREDD_IN_G(.(T16, .(T30, T31))) → U5_G(T30, T31, lessC_in_gg(T16, T30))
lessC_in_gg(0, T39) → lessC_out_gg
lessC_in_gg(s(T48), T52) → U4_gg(lessB_in_gg(T48, T52))
U4_gg(lessB_out_gg) → lessC_out_gg
lessB_in_gg(0, s(T62)) → lessB_out_gg
lessB_in_gg(s(T71), 0) → U2_gg(lessA_in_g(T71))
lessB_in_gg(s(T71), s(T80)) → U3_gg(lessB_in_gg(T71, T80))
U2_gg(lessA_out_g) → lessB_out_gg
U3_gg(lessB_out_gg) → lessB_out_gg
lessA_in_g(s(T77)) → U1_g(lessA_in_g(T77))
U1_g(lessA_out_g) → lessA_out_g
lessC_in_gg(x0, x1)
U4_gg(x0)
lessB_in_gg(x0, x1)
U2_gg(x0)
U3_gg(x0)
lessA_in_g(x0)
U1_g(x0)
The following rules are removed from R:
ORDEREDD_IN_G(.(T16, .(T30, T31))) → U5_G(T30, T31, lessC_in_gg(T16, T30))
Used ordering: POLO with Polynomial interpretation [POLO]:
lessC_in_gg(0, T39) → lessC_out_gg
lessC_in_gg(s(T48), T52) → U4_gg(lessB_in_gg(T48, T52))
U4_gg(lessB_out_gg) → lessC_out_gg
lessB_in_gg(0, s(T62)) → lessB_out_gg
lessB_in_gg(s(T71), 0) → U2_gg(lessA_in_g(T71))
lessB_in_gg(s(T71), s(T80)) → U3_gg(lessB_in_gg(T71, T80))
U2_gg(lessA_out_g) → lessB_out_gg
U3_gg(lessB_out_gg) → lessB_out_gg
lessA_in_g(s(T77)) → U1_g(lessA_in_g(T77))
POL(.(x1, x2)) = 1 + x1 + 2·x2
POL(0) = 0
POL(ORDEREDD_IN_G(x1)) = x1
POL(U1_g(x1)) = x1
POL(U2_gg(x1)) = 1 + 2·x1
POL(U3_gg(x1)) = 2 + 2·x1
POL(U4_gg(x1)) = 1 + x1
POL(U5_G(x1, x2, x3)) = 1 + x1 + 2·x2 + x3
POL(lessA_in_g(x1)) = 1 + x1
POL(lessA_out_g) = 2
POL(lessB_in_gg(x1, x2)) = 1 + 2·x1 + x2
POL(lessB_out_gg) = 1
POL(lessC_in_gg(x1, x2)) = 1 + x1 + x2
POL(lessC_out_gg) = 0
POL(s(x1)) = 1 + 2·x1
U5_G(T30, T31, lessC_out_gg) → ORDEREDD_IN_G(.(T30, T31))
U1_g(lessA_out_g) → lessA_out_g
lessC_in_gg(x0, x1)
U4_gg(x0)
lessB_in_gg(x0, x1)
U2_gg(x0)
U3_gg(x0)
lessA_in_g(x0)
U1_g(x0)