0 Prolog
↳1 PredefinedPredicateTransformerProof (⇐)
↳2 Prolog
↳3 PrologToPrologProblemTransformerProof (⇐)
↳4 Prolog
↳5 PrologToPiTRSProof (⇐)
↳6 PiTRS
↳7 DependencyPairsProof (⇔)
↳8 PiDP
↳9 DependencyGraphProof (⇔)
↳10 AND
↳11 PiDP
↳12 UsableRulesProof (⇔)
↳13 PiDP
↳14 PiDPToQDPProof (⇐)
↳15 QDP
↳16 QDPSizeChangeProof (⇔)
↳17 TRUE
↳18 PiDP
↳19 UsableRulesProof (⇔)
↳20 PiDP
↳21 PiDPToQDPProof (⇐)
↳22 QDP
↳23 QDPOrderProof (⇔)
↳24 QDP
↳25 DependencyGraphProof (⇔)
↳26 TRUE
div1_in_gga(0, T6, 0) → div1_out_gga(0, T6, 0)
div1_in_gga(T10, T11, s(T13)) → U1_gga(T10, T11, T13, minus16_in_gga(T10, T11, X17))
minus16_in_gga(s(0), s(T17), 0) → minus16_out_gga(s(0), s(T17), 0)
minus16_in_gga(s(T18), s(0), T18) → minus16_out_gga(s(T18), s(0), T18)
minus16_in_gga(s(s(T19)), s(s(T20)), X41) → U5_gga(T19, T20, X41, minus23_in_gga(T19, T20, X41))
minus23_in_gga(0, T17, 0) → minus23_out_gga(0, T17, 0)
minus23_in_gga(T18, 0, T18) → minus23_out_gga(T18, 0, T18)
minus23_in_gga(s(T19), s(T20), X41) → U4_gga(T19, T20, X41, minus23_in_gga(T19, T20, X41))
U4_gga(T19, T20, X41, minus23_out_gga(T19, T20, X41)) → minus23_out_gga(s(T19), s(T20), X41)
U5_gga(T19, T20, X41, minus23_out_gga(T19, T20, X41)) → minus16_out_gga(s(s(T19)), s(s(T20)), X41)
U1_gga(T10, T11, T13, minus16_out_gga(T10, T11, X17)) → div1_out_gga(T10, T11, s(T13))
div1_in_gga(T10, T11, s(T13)) → U2_gga(T10, T11, T13, minus16_in_gga(T10, T11, T14))
U2_gga(T10, T11, T13, minus16_out_gga(T10, T11, T14)) → U3_gga(T10, T11, T13, div1_in_gga(T14, T11, T13))
U3_gga(T10, T11, T13, div1_out_gga(T14, T11, T13)) → div1_out_gga(T10, T11, s(T13))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
div1_in_gga(0, T6, 0) → div1_out_gga(0, T6, 0)
div1_in_gga(T10, T11, s(T13)) → U1_gga(T10, T11, T13, minus16_in_gga(T10, T11, X17))
minus16_in_gga(s(0), s(T17), 0) → minus16_out_gga(s(0), s(T17), 0)
minus16_in_gga(s(T18), s(0), T18) → minus16_out_gga(s(T18), s(0), T18)
minus16_in_gga(s(s(T19)), s(s(T20)), X41) → U5_gga(T19, T20, X41, minus23_in_gga(T19, T20, X41))
minus23_in_gga(0, T17, 0) → minus23_out_gga(0, T17, 0)
minus23_in_gga(T18, 0, T18) → minus23_out_gga(T18, 0, T18)
minus23_in_gga(s(T19), s(T20), X41) → U4_gga(T19, T20, X41, minus23_in_gga(T19, T20, X41))
U4_gga(T19, T20, X41, minus23_out_gga(T19, T20, X41)) → minus23_out_gga(s(T19), s(T20), X41)
U5_gga(T19, T20, X41, minus23_out_gga(T19, T20, X41)) → minus16_out_gga(s(s(T19)), s(s(T20)), X41)
U1_gga(T10, T11, T13, minus16_out_gga(T10, T11, X17)) → div1_out_gga(T10, T11, s(T13))
div1_in_gga(T10, T11, s(T13)) → U2_gga(T10, T11, T13, minus16_in_gga(T10, T11, T14))
U2_gga(T10, T11, T13, minus16_out_gga(T10, T11, T14)) → U3_gga(T10, T11, T13, div1_in_gga(T14, T11, T13))
U3_gga(T10, T11, T13, div1_out_gga(T14, T11, T13)) → div1_out_gga(T10, T11, s(T13))
DIV1_IN_GGA(T10, T11, s(T13)) → U1_GGA(T10, T11, T13, minus16_in_gga(T10, T11, X17))
DIV1_IN_GGA(T10, T11, s(T13)) → MINUS16_IN_GGA(T10, T11, X17)
MINUS16_IN_GGA(s(s(T19)), s(s(T20)), X41) → U5_GGA(T19, T20, X41, minus23_in_gga(T19, T20, X41))
MINUS16_IN_GGA(s(s(T19)), s(s(T20)), X41) → MINUS23_IN_GGA(T19, T20, X41)
MINUS23_IN_GGA(s(T19), s(T20), X41) → U4_GGA(T19, T20, X41, minus23_in_gga(T19, T20, X41))
MINUS23_IN_GGA(s(T19), s(T20), X41) → MINUS23_IN_GGA(T19, T20, X41)
DIV1_IN_GGA(T10, T11, s(T13)) → U2_GGA(T10, T11, T13, minus16_in_gga(T10, T11, T14))
U2_GGA(T10, T11, T13, minus16_out_gga(T10, T11, T14)) → U3_GGA(T10, T11, T13, div1_in_gga(T14, T11, T13))
U2_GGA(T10, T11, T13, minus16_out_gga(T10, T11, T14)) → DIV1_IN_GGA(T14, T11, T13)
div1_in_gga(0, T6, 0) → div1_out_gga(0, T6, 0)
div1_in_gga(T10, T11, s(T13)) → U1_gga(T10, T11, T13, minus16_in_gga(T10, T11, X17))
minus16_in_gga(s(0), s(T17), 0) → minus16_out_gga(s(0), s(T17), 0)
minus16_in_gga(s(T18), s(0), T18) → minus16_out_gga(s(T18), s(0), T18)
minus16_in_gga(s(s(T19)), s(s(T20)), X41) → U5_gga(T19, T20, X41, minus23_in_gga(T19, T20, X41))
minus23_in_gga(0, T17, 0) → minus23_out_gga(0, T17, 0)
minus23_in_gga(T18, 0, T18) → minus23_out_gga(T18, 0, T18)
minus23_in_gga(s(T19), s(T20), X41) → U4_gga(T19, T20, X41, minus23_in_gga(T19, T20, X41))
U4_gga(T19, T20, X41, minus23_out_gga(T19, T20, X41)) → minus23_out_gga(s(T19), s(T20), X41)
U5_gga(T19, T20, X41, minus23_out_gga(T19, T20, X41)) → minus16_out_gga(s(s(T19)), s(s(T20)), X41)
U1_gga(T10, T11, T13, minus16_out_gga(T10, T11, X17)) → div1_out_gga(T10, T11, s(T13))
div1_in_gga(T10, T11, s(T13)) → U2_gga(T10, T11, T13, minus16_in_gga(T10, T11, T14))
U2_gga(T10, T11, T13, minus16_out_gga(T10, T11, T14)) → U3_gga(T10, T11, T13, div1_in_gga(T14, T11, T13))
U3_gga(T10, T11, T13, div1_out_gga(T14, T11, T13)) → div1_out_gga(T10, T11, s(T13))
DIV1_IN_GGA(T10, T11, s(T13)) → U1_GGA(T10, T11, T13, minus16_in_gga(T10, T11, X17))
DIV1_IN_GGA(T10, T11, s(T13)) → MINUS16_IN_GGA(T10, T11, X17)
MINUS16_IN_GGA(s(s(T19)), s(s(T20)), X41) → U5_GGA(T19, T20, X41, minus23_in_gga(T19, T20, X41))
MINUS16_IN_GGA(s(s(T19)), s(s(T20)), X41) → MINUS23_IN_GGA(T19, T20, X41)
MINUS23_IN_GGA(s(T19), s(T20), X41) → U4_GGA(T19, T20, X41, minus23_in_gga(T19, T20, X41))
MINUS23_IN_GGA(s(T19), s(T20), X41) → MINUS23_IN_GGA(T19, T20, X41)
DIV1_IN_GGA(T10, T11, s(T13)) → U2_GGA(T10, T11, T13, minus16_in_gga(T10, T11, T14))
U2_GGA(T10, T11, T13, minus16_out_gga(T10, T11, T14)) → U3_GGA(T10, T11, T13, div1_in_gga(T14, T11, T13))
U2_GGA(T10, T11, T13, minus16_out_gga(T10, T11, T14)) → DIV1_IN_GGA(T14, T11, T13)
div1_in_gga(0, T6, 0) → div1_out_gga(0, T6, 0)
div1_in_gga(T10, T11, s(T13)) → U1_gga(T10, T11, T13, minus16_in_gga(T10, T11, X17))
minus16_in_gga(s(0), s(T17), 0) → minus16_out_gga(s(0), s(T17), 0)
minus16_in_gga(s(T18), s(0), T18) → minus16_out_gga(s(T18), s(0), T18)
minus16_in_gga(s(s(T19)), s(s(T20)), X41) → U5_gga(T19, T20, X41, minus23_in_gga(T19, T20, X41))
minus23_in_gga(0, T17, 0) → minus23_out_gga(0, T17, 0)
minus23_in_gga(T18, 0, T18) → minus23_out_gga(T18, 0, T18)
minus23_in_gga(s(T19), s(T20), X41) → U4_gga(T19, T20, X41, minus23_in_gga(T19, T20, X41))
U4_gga(T19, T20, X41, minus23_out_gga(T19, T20, X41)) → minus23_out_gga(s(T19), s(T20), X41)
U5_gga(T19, T20, X41, minus23_out_gga(T19, T20, X41)) → minus16_out_gga(s(s(T19)), s(s(T20)), X41)
U1_gga(T10, T11, T13, minus16_out_gga(T10, T11, X17)) → div1_out_gga(T10, T11, s(T13))
div1_in_gga(T10, T11, s(T13)) → U2_gga(T10, T11, T13, minus16_in_gga(T10, T11, T14))
U2_gga(T10, T11, T13, minus16_out_gga(T10, T11, T14)) → U3_gga(T10, T11, T13, div1_in_gga(T14, T11, T13))
U3_gga(T10, T11, T13, div1_out_gga(T14, T11, T13)) → div1_out_gga(T10, T11, s(T13))
MINUS23_IN_GGA(s(T19), s(T20), X41) → MINUS23_IN_GGA(T19, T20, X41)
div1_in_gga(0, T6, 0) → div1_out_gga(0, T6, 0)
div1_in_gga(T10, T11, s(T13)) → U1_gga(T10, T11, T13, minus16_in_gga(T10, T11, X17))
minus16_in_gga(s(0), s(T17), 0) → minus16_out_gga(s(0), s(T17), 0)
minus16_in_gga(s(T18), s(0), T18) → minus16_out_gga(s(T18), s(0), T18)
minus16_in_gga(s(s(T19)), s(s(T20)), X41) → U5_gga(T19, T20, X41, minus23_in_gga(T19, T20, X41))
minus23_in_gga(0, T17, 0) → minus23_out_gga(0, T17, 0)
minus23_in_gga(T18, 0, T18) → minus23_out_gga(T18, 0, T18)
minus23_in_gga(s(T19), s(T20), X41) → U4_gga(T19, T20, X41, minus23_in_gga(T19, T20, X41))
U4_gga(T19, T20, X41, minus23_out_gga(T19, T20, X41)) → minus23_out_gga(s(T19), s(T20), X41)
U5_gga(T19, T20, X41, minus23_out_gga(T19, T20, X41)) → minus16_out_gga(s(s(T19)), s(s(T20)), X41)
U1_gga(T10, T11, T13, minus16_out_gga(T10, T11, X17)) → div1_out_gga(T10, T11, s(T13))
div1_in_gga(T10, T11, s(T13)) → U2_gga(T10, T11, T13, minus16_in_gga(T10, T11, T14))
U2_gga(T10, T11, T13, minus16_out_gga(T10, T11, T14)) → U3_gga(T10, T11, T13, div1_in_gga(T14, T11, T13))
U3_gga(T10, T11, T13, div1_out_gga(T14, T11, T13)) → div1_out_gga(T10, T11, s(T13))
MINUS23_IN_GGA(s(T19), s(T20), X41) → MINUS23_IN_GGA(T19, T20, X41)
MINUS23_IN_GGA(s(T19), s(T20)) → MINUS23_IN_GGA(T19, T20)
From the DPs we obtained the following set of size-change graphs:
DIV1_IN_GGA(T10, T11, s(T13)) → U2_GGA(T10, T11, T13, minus16_in_gga(T10, T11, T14))
U2_GGA(T10, T11, T13, minus16_out_gga(T10, T11, T14)) → DIV1_IN_GGA(T14, T11, T13)
div1_in_gga(0, T6, 0) → div1_out_gga(0, T6, 0)
div1_in_gga(T10, T11, s(T13)) → U1_gga(T10, T11, T13, minus16_in_gga(T10, T11, X17))
minus16_in_gga(s(0), s(T17), 0) → minus16_out_gga(s(0), s(T17), 0)
minus16_in_gga(s(T18), s(0), T18) → minus16_out_gga(s(T18), s(0), T18)
minus16_in_gga(s(s(T19)), s(s(T20)), X41) → U5_gga(T19, T20, X41, minus23_in_gga(T19, T20, X41))
minus23_in_gga(0, T17, 0) → minus23_out_gga(0, T17, 0)
minus23_in_gga(T18, 0, T18) → minus23_out_gga(T18, 0, T18)
minus23_in_gga(s(T19), s(T20), X41) → U4_gga(T19, T20, X41, minus23_in_gga(T19, T20, X41))
U4_gga(T19, T20, X41, minus23_out_gga(T19, T20, X41)) → minus23_out_gga(s(T19), s(T20), X41)
U5_gga(T19, T20, X41, minus23_out_gga(T19, T20, X41)) → minus16_out_gga(s(s(T19)), s(s(T20)), X41)
U1_gga(T10, T11, T13, minus16_out_gga(T10, T11, X17)) → div1_out_gga(T10, T11, s(T13))
div1_in_gga(T10, T11, s(T13)) → U2_gga(T10, T11, T13, minus16_in_gga(T10, T11, T14))
U2_gga(T10, T11, T13, minus16_out_gga(T10, T11, T14)) → U3_gga(T10, T11, T13, div1_in_gga(T14, T11, T13))
U3_gga(T10, T11, T13, div1_out_gga(T14, T11, T13)) → div1_out_gga(T10, T11, s(T13))
DIV1_IN_GGA(T10, T11, s(T13)) → U2_GGA(T10, T11, T13, minus16_in_gga(T10, T11, T14))
U2_GGA(T10, T11, T13, minus16_out_gga(T10, T11, T14)) → DIV1_IN_GGA(T14, T11, T13)
minus16_in_gga(s(0), s(T17), 0) → minus16_out_gga(s(0), s(T17), 0)
minus16_in_gga(s(T18), s(0), T18) → minus16_out_gga(s(T18), s(0), T18)
minus16_in_gga(s(s(T19)), s(s(T20)), X41) → U5_gga(T19, T20, X41, minus23_in_gga(T19, T20, X41))
U5_gga(T19, T20, X41, minus23_out_gga(T19, T20, X41)) → minus16_out_gga(s(s(T19)), s(s(T20)), X41)
minus23_in_gga(0, T17, 0) → minus23_out_gga(0, T17, 0)
minus23_in_gga(T18, 0, T18) → minus23_out_gga(T18, 0, T18)
minus23_in_gga(s(T19), s(T20), X41) → U4_gga(T19, T20, X41, minus23_in_gga(T19, T20, X41))
U4_gga(T19, T20, X41, minus23_out_gga(T19, T20, X41)) → minus23_out_gga(s(T19), s(T20), X41)
DIV1_IN_GGA(T10, T11) → U2_GGA(T11, minus16_in_gga(T10, T11))
U2_GGA(T11, minus16_out_gga(T14)) → DIV1_IN_GGA(T14, T11)
minus16_in_gga(s(0), s(T17)) → minus16_out_gga(0)
minus16_in_gga(s(T18), s(0)) → minus16_out_gga(T18)
minus16_in_gga(s(s(T19)), s(s(T20))) → U5_gga(minus23_in_gga(T19, T20))
U5_gga(minus23_out_gga(X41)) → minus16_out_gga(X41)
minus23_in_gga(0, T17) → minus23_out_gga(0)
minus23_in_gga(T18, 0) → minus23_out_gga(T18)
minus23_in_gga(s(T19), s(T20)) → U4_gga(minus23_in_gga(T19, T20))
U4_gga(minus23_out_gga(X41)) → minus23_out_gga(X41)
minus16_in_gga(x0, x1)
U5_gga(x0)
minus23_in_gga(x0, x1)
U4_gga(x0)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U2_GGA(T11, minus16_out_gga(T14)) → DIV1_IN_GGA(T14, T11)
POL(0) = 0
POL(DIV1_IN_GGA(x1, x2)) = x1
POL(U2_GGA(x1, x2)) = x2
POL(U4_gga(x1)) = 1 + x1
POL(U5_gga(x1)) = x1
POL(minus16_in_gga(x1, x2)) = x1
POL(minus16_out_gga(x1)) = 1 + x1
POL(minus23_in_gga(x1, x2)) = 1 + x1
POL(minus23_out_gga(x1)) = 1 + x1
POL(s(x1)) = 1 + x1
minus16_in_gga(s(0), s(T17)) → minus16_out_gga(0)
minus16_in_gga(s(T18), s(0)) → minus16_out_gga(T18)
minus16_in_gga(s(s(T19)), s(s(T20))) → U5_gga(minus23_in_gga(T19, T20))
minus23_in_gga(0, T17) → minus23_out_gga(0)
minus23_in_gga(T18, 0) → minus23_out_gga(T18)
minus23_in_gga(s(T19), s(T20)) → U4_gga(minus23_in_gga(T19, T20))
U5_gga(minus23_out_gga(X41)) → minus16_out_gga(X41)
U4_gga(minus23_out_gga(X41)) → minus23_out_gga(X41)
DIV1_IN_GGA(T10, T11) → U2_GGA(T11, minus16_in_gga(T10, T11))
minus16_in_gga(s(0), s(T17)) → minus16_out_gga(0)
minus16_in_gga(s(T18), s(0)) → minus16_out_gga(T18)
minus16_in_gga(s(s(T19)), s(s(T20))) → U5_gga(minus23_in_gga(T19, T20))
U5_gga(minus23_out_gga(X41)) → minus16_out_gga(X41)
minus23_in_gga(0, T17) → minus23_out_gga(0)
minus23_in_gga(T18, 0) → minus23_out_gga(T18)
minus23_in_gga(s(T19), s(T20)) → U4_gga(minus23_in_gga(T19, T20))
U4_gga(minus23_out_gga(X41)) → minus23_out_gga(X41)
minus16_in_gga(x0, x1)
U5_gga(x0)
minus23_in_gga(x0, x1)
U4_gga(x0)