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 QDPOrderProof (⇔)
↳22 QDP
↳23 DependencyGraphProof (⇔)
↳24 TRUE
div1_in_gga(0, T6, 0) → div1_out_gga(0, T6, 0)
div1_in_gga(T12, T14, s(T10)) → U1_gga(T12, T14, T10, minus37_in_gga(T12, T14, X15))
minus37_in_gga(s(0), s(T18), 0) → minus37_out_gga(s(0), s(T18), 0)
minus37_in_gga(s(T19), s(0), T19) → minus37_out_gga(s(T19), s(0), T19)
minus37_in_gga(s(s(T20)), s(s(T21)), X47) → U5_gga(T20, T21, X47, minus44_in_gga(T20, T21, X47))
minus44_in_gga(0, T18, 0) → minus44_out_gga(0, T18, 0)
minus44_in_gga(T19, 0, T19) → minus44_out_gga(T19, 0, T19)
minus44_in_gga(s(T20), s(T21), X47) → U4_gga(T20, T21, X47, minus44_in_gga(T20, T21, X47))
U4_gga(T20, T21, X47, minus44_out_gga(T20, T21, X47)) → minus44_out_gga(s(T20), s(T21), X47)
U5_gga(T20, T21, X47, minus44_out_gga(T20, T21, X47)) → minus37_out_gga(s(s(T20)), s(s(T21)), X47)
U1_gga(T12, T14, T10, minus37_out_gga(T12, T14, X15)) → div1_out_gga(T12, T14, s(T10))
div1_in_gga(T12, T14, s(T10)) → U2_gga(T12, T14, T10, minus37_in_gga(T12, T14, T15))
U2_gga(T12, T14, T10, minus37_out_gga(T12, T14, T15)) → U3_gga(T12, T14, T10, div1_in_gga(T15, T14, T10))
U3_gga(T12, T14, T10, div1_out_gga(T15, T14, T10)) → div1_out_gga(T12, T14, s(T10))
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(T12, T14, s(T10)) → U1_gga(T12, T14, T10, minus37_in_gga(T12, T14, X15))
minus37_in_gga(s(0), s(T18), 0) → minus37_out_gga(s(0), s(T18), 0)
minus37_in_gga(s(T19), s(0), T19) → minus37_out_gga(s(T19), s(0), T19)
minus37_in_gga(s(s(T20)), s(s(T21)), X47) → U5_gga(T20, T21, X47, minus44_in_gga(T20, T21, X47))
minus44_in_gga(0, T18, 0) → minus44_out_gga(0, T18, 0)
minus44_in_gga(T19, 0, T19) → minus44_out_gga(T19, 0, T19)
minus44_in_gga(s(T20), s(T21), X47) → U4_gga(T20, T21, X47, minus44_in_gga(T20, T21, X47))
U4_gga(T20, T21, X47, minus44_out_gga(T20, T21, X47)) → minus44_out_gga(s(T20), s(T21), X47)
U5_gga(T20, T21, X47, minus44_out_gga(T20, T21, X47)) → minus37_out_gga(s(s(T20)), s(s(T21)), X47)
U1_gga(T12, T14, T10, minus37_out_gga(T12, T14, X15)) → div1_out_gga(T12, T14, s(T10))
div1_in_gga(T12, T14, s(T10)) → U2_gga(T12, T14, T10, minus37_in_gga(T12, T14, T15))
U2_gga(T12, T14, T10, minus37_out_gga(T12, T14, T15)) → U3_gga(T12, T14, T10, div1_in_gga(T15, T14, T10))
U3_gga(T12, T14, T10, div1_out_gga(T15, T14, T10)) → div1_out_gga(T12, T14, s(T10))
DIV1_IN_GGA(T12, T14, s(T10)) → U1_GGA(T12, T14, T10, minus37_in_gga(T12, T14, X15))
DIV1_IN_GGA(T12, T14, s(T10)) → MINUS37_IN_GGA(T12, T14, X15)
MINUS37_IN_GGA(s(s(T20)), s(s(T21)), X47) → U5_GGA(T20, T21, X47, minus44_in_gga(T20, T21, X47))
MINUS37_IN_GGA(s(s(T20)), s(s(T21)), X47) → MINUS44_IN_GGA(T20, T21, X47)
MINUS44_IN_GGA(s(T20), s(T21), X47) → U4_GGA(T20, T21, X47, minus44_in_gga(T20, T21, X47))
MINUS44_IN_GGA(s(T20), s(T21), X47) → MINUS44_IN_GGA(T20, T21, X47)
DIV1_IN_GGA(T12, T14, s(T10)) → U2_GGA(T12, T14, T10, minus37_in_gga(T12, T14, T15))
U2_GGA(T12, T14, T10, minus37_out_gga(T12, T14, T15)) → U3_GGA(T12, T14, T10, div1_in_gga(T15, T14, T10))
U2_GGA(T12, T14, T10, minus37_out_gga(T12, T14, T15)) → DIV1_IN_GGA(T15, T14, T10)
div1_in_gga(0, T6, 0) → div1_out_gga(0, T6, 0)
div1_in_gga(T12, T14, s(T10)) → U1_gga(T12, T14, T10, minus37_in_gga(T12, T14, X15))
minus37_in_gga(s(0), s(T18), 0) → minus37_out_gga(s(0), s(T18), 0)
minus37_in_gga(s(T19), s(0), T19) → minus37_out_gga(s(T19), s(0), T19)
minus37_in_gga(s(s(T20)), s(s(T21)), X47) → U5_gga(T20, T21, X47, minus44_in_gga(T20, T21, X47))
minus44_in_gga(0, T18, 0) → minus44_out_gga(0, T18, 0)
minus44_in_gga(T19, 0, T19) → minus44_out_gga(T19, 0, T19)
minus44_in_gga(s(T20), s(T21), X47) → U4_gga(T20, T21, X47, minus44_in_gga(T20, T21, X47))
U4_gga(T20, T21, X47, minus44_out_gga(T20, T21, X47)) → minus44_out_gga(s(T20), s(T21), X47)
U5_gga(T20, T21, X47, minus44_out_gga(T20, T21, X47)) → minus37_out_gga(s(s(T20)), s(s(T21)), X47)
U1_gga(T12, T14, T10, minus37_out_gga(T12, T14, X15)) → div1_out_gga(T12, T14, s(T10))
div1_in_gga(T12, T14, s(T10)) → U2_gga(T12, T14, T10, minus37_in_gga(T12, T14, T15))
U2_gga(T12, T14, T10, minus37_out_gga(T12, T14, T15)) → U3_gga(T12, T14, T10, div1_in_gga(T15, T14, T10))
U3_gga(T12, T14, T10, div1_out_gga(T15, T14, T10)) → div1_out_gga(T12, T14, s(T10))
DIV1_IN_GGA(T12, T14, s(T10)) → U1_GGA(T12, T14, T10, minus37_in_gga(T12, T14, X15))
DIV1_IN_GGA(T12, T14, s(T10)) → MINUS37_IN_GGA(T12, T14, X15)
MINUS37_IN_GGA(s(s(T20)), s(s(T21)), X47) → U5_GGA(T20, T21, X47, minus44_in_gga(T20, T21, X47))
MINUS37_IN_GGA(s(s(T20)), s(s(T21)), X47) → MINUS44_IN_GGA(T20, T21, X47)
MINUS44_IN_GGA(s(T20), s(T21), X47) → U4_GGA(T20, T21, X47, minus44_in_gga(T20, T21, X47))
MINUS44_IN_GGA(s(T20), s(T21), X47) → MINUS44_IN_GGA(T20, T21, X47)
DIV1_IN_GGA(T12, T14, s(T10)) → U2_GGA(T12, T14, T10, minus37_in_gga(T12, T14, T15))
U2_GGA(T12, T14, T10, minus37_out_gga(T12, T14, T15)) → U3_GGA(T12, T14, T10, div1_in_gga(T15, T14, T10))
U2_GGA(T12, T14, T10, minus37_out_gga(T12, T14, T15)) → DIV1_IN_GGA(T15, T14, T10)
div1_in_gga(0, T6, 0) → div1_out_gga(0, T6, 0)
div1_in_gga(T12, T14, s(T10)) → U1_gga(T12, T14, T10, minus37_in_gga(T12, T14, X15))
minus37_in_gga(s(0), s(T18), 0) → minus37_out_gga(s(0), s(T18), 0)
minus37_in_gga(s(T19), s(0), T19) → minus37_out_gga(s(T19), s(0), T19)
minus37_in_gga(s(s(T20)), s(s(T21)), X47) → U5_gga(T20, T21, X47, minus44_in_gga(T20, T21, X47))
minus44_in_gga(0, T18, 0) → minus44_out_gga(0, T18, 0)
minus44_in_gga(T19, 0, T19) → minus44_out_gga(T19, 0, T19)
minus44_in_gga(s(T20), s(T21), X47) → U4_gga(T20, T21, X47, minus44_in_gga(T20, T21, X47))
U4_gga(T20, T21, X47, minus44_out_gga(T20, T21, X47)) → minus44_out_gga(s(T20), s(T21), X47)
U5_gga(T20, T21, X47, minus44_out_gga(T20, T21, X47)) → minus37_out_gga(s(s(T20)), s(s(T21)), X47)
U1_gga(T12, T14, T10, minus37_out_gga(T12, T14, X15)) → div1_out_gga(T12, T14, s(T10))
div1_in_gga(T12, T14, s(T10)) → U2_gga(T12, T14, T10, minus37_in_gga(T12, T14, T15))
U2_gga(T12, T14, T10, minus37_out_gga(T12, T14, T15)) → U3_gga(T12, T14, T10, div1_in_gga(T15, T14, T10))
U3_gga(T12, T14, T10, div1_out_gga(T15, T14, T10)) → div1_out_gga(T12, T14, s(T10))
MINUS44_IN_GGA(s(T20), s(T21), X47) → MINUS44_IN_GGA(T20, T21, X47)
div1_in_gga(0, T6, 0) → div1_out_gga(0, T6, 0)
div1_in_gga(T12, T14, s(T10)) → U1_gga(T12, T14, T10, minus37_in_gga(T12, T14, X15))
minus37_in_gga(s(0), s(T18), 0) → minus37_out_gga(s(0), s(T18), 0)
minus37_in_gga(s(T19), s(0), T19) → minus37_out_gga(s(T19), s(0), T19)
minus37_in_gga(s(s(T20)), s(s(T21)), X47) → U5_gga(T20, T21, X47, minus44_in_gga(T20, T21, X47))
minus44_in_gga(0, T18, 0) → minus44_out_gga(0, T18, 0)
minus44_in_gga(T19, 0, T19) → minus44_out_gga(T19, 0, T19)
minus44_in_gga(s(T20), s(T21), X47) → U4_gga(T20, T21, X47, minus44_in_gga(T20, T21, X47))
U4_gga(T20, T21, X47, minus44_out_gga(T20, T21, X47)) → minus44_out_gga(s(T20), s(T21), X47)
U5_gga(T20, T21, X47, minus44_out_gga(T20, T21, X47)) → minus37_out_gga(s(s(T20)), s(s(T21)), X47)
U1_gga(T12, T14, T10, minus37_out_gga(T12, T14, X15)) → div1_out_gga(T12, T14, s(T10))
div1_in_gga(T12, T14, s(T10)) → U2_gga(T12, T14, T10, minus37_in_gga(T12, T14, T15))
U2_gga(T12, T14, T10, minus37_out_gga(T12, T14, T15)) → U3_gga(T12, T14, T10, div1_in_gga(T15, T14, T10))
U3_gga(T12, T14, T10, div1_out_gga(T15, T14, T10)) → div1_out_gga(T12, T14, s(T10))
MINUS44_IN_GGA(s(T20), s(T21), X47) → MINUS44_IN_GGA(T20, T21, X47)
MINUS44_IN_GGA(s(T20), s(T21)) → MINUS44_IN_GGA(T20, T21)
From the DPs we obtained the following set of size-change graphs:
DIV1_IN_GGA(T12, T14, s(T10)) → U2_GGA(T12, T14, T10, minus37_in_gga(T12, T14, T15))
U2_GGA(T12, T14, T10, minus37_out_gga(T12, T14, T15)) → DIV1_IN_GGA(T15, T14, T10)
div1_in_gga(0, T6, 0) → div1_out_gga(0, T6, 0)
div1_in_gga(T12, T14, s(T10)) → U1_gga(T12, T14, T10, minus37_in_gga(T12, T14, X15))
minus37_in_gga(s(0), s(T18), 0) → minus37_out_gga(s(0), s(T18), 0)
minus37_in_gga(s(T19), s(0), T19) → minus37_out_gga(s(T19), s(0), T19)
minus37_in_gga(s(s(T20)), s(s(T21)), X47) → U5_gga(T20, T21, X47, minus44_in_gga(T20, T21, X47))
minus44_in_gga(0, T18, 0) → minus44_out_gga(0, T18, 0)
minus44_in_gga(T19, 0, T19) → minus44_out_gga(T19, 0, T19)
minus44_in_gga(s(T20), s(T21), X47) → U4_gga(T20, T21, X47, minus44_in_gga(T20, T21, X47))
U4_gga(T20, T21, X47, minus44_out_gga(T20, T21, X47)) → minus44_out_gga(s(T20), s(T21), X47)
U5_gga(T20, T21, X47, minus44_out_gga(T20, T21, X47)) → minus37_out_gga(s(s(T20)), s(s(T21)), X47)
U1_gga(T12, T14, T10, minus37_out_gga(T12, T14, X15)) → div1_out_gga(T12, T14, s(T10))
div1_in_gga(T12, T14, s(T10)) → U2_gga(T12, T14, T10, minus37_in_gga(T12, T14, T15))
U2_gga(T12, T14, T10, minus37_out_gga(T12, T14, T15)) → U3_gga(T12, T14, T10, div1_in_gga(T15, T14, T10))
U3_gga(T12, T14, T10, div1_out_gga(T15, T14, T10)) → div1_out_gga(T12, T14, s(T10))
DIV1_IN_GGA(T12, T14, s(T10)) → U2_GGA(T12, T14, T10, minus37_in_gga(T12, T14, T15))
U2_GGA(T12, T14, T10, minus37_out_gga(T12, T14, T15)) → DIV1_IN_GGA(T15, T14, T10)
minus37_in_gga(s(0), s(T18), 0) → minus37_out_gga(s(0), s(T18), 0)
minus37_in_gga(s(T19), s(0), T19) → minus37_out_gga(s(T19), s(0), T19)
minus37_in_gga(s(s(T20)), s(s(T21)), X47) → U5_gga(T20, T21, X47, minus44_in_gga(T20, T21, X47))
U5_gga(T20, T21, X47, minus44_out_gga(T20, T21, X47)) → minus37_out_gga(s(s(T20)), s(s(T21)), X47)
minus44_in_gga(0, T18, 0) → minus44_out_gga(0, T18, 0)
minus44_in_gga(T19, 0, T19) → minus44_out_gga(T19, 0, T19)
minus44_in_gga(s(T20), s(T21), X47) → U4_gga(T20, T21, X47, minus44_in_gga(T20, T21, X47))
U4_gga(T20, T21, X47, minus44_out_gga(T20, T21, X47)) → minus44_out_gga(s(T20), s(T21), X47)
DIV1_IN_GGA(T12, T14) → U2_GGA(T14, minus37_in_gga(T12, T14))
U2_GGA(T14, minus37_out_gga(T15)) → DIV1_IN_GGA(T15, T14)
minus37_in_gga(s(0), s(T18)) → minus37_out_gga(0)
minus37_in_gga(s(T19), s(0)) → minus37_out_gga(T19)
minus37_in_gga(s(s(T20)), s(s(T21))) → U5_gga(minus44_in_gga(T20, T21))
U5_gga(minus44_out_gga(X47)) → minus37_out_gga(X47)
minus44_in_gga(0, T18) → minus44_out_gga(0)
minus44_in_gga(T19, 0) → minus44_out_gga(T19)
minus44_in_gga(s(T20), s(T21)) → U4_gga(minus44_in_gga(T20, T21))
U4_gga(minus44_out_gga(X47)) → minus44_out_gga(X47)
minus37_in_gga(x0, x1)
U5_gga(x0)
minus44_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(T14, minus37_out_gga(T15)) → DIV1_IN_GGA(T15, T14)
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(minus37_in_gga(x1, x2)) = x1
POL(minus37_out_gga(x1)) = 1 + x1
POL(minus44_in_gga(x1, x2)) = 1 + x1
POL(minus44_out_gga(x1)) = 1 + x1
POL(s(x1)) = 1 + x1
minus37_in_gga(s(0), s(T18)) → minus37_out_gga(0)
minus37_in_gga(s(T19), s(0)) → minus37_out_gga(T19)
minus37_in_gga(s(s(T20)), s(s(T21))) → U5_gga(minus44_in_gga(T20, T21))
minus44_in_gga(0, T18) → minus44_out_gga(0)
minus44_in_gga(T19, 0) → minus44_out_gga(T19)
minus44_in_gga(s(T20), s(T21)) → U4_gga(minus44_in_gga(T20, T21))
U5_gga(minus44_out_gga(X47)) → minus37_out_gga(X47)
U4_gga(minus44_out_gga(X47)) → minus44_out_gga(X47)
DIV1_IN_GGA(T12, T14) → U2_GGA(T14, minus37_in_gga(T12, T14))
minus37_in_gga(s(0), s(T18)) → minus37_out_gga(0)
minus37_in_gga(s(T19), s(0)) → minus37_out_gga(T19)
minus37_in_gga(s(s(T20)), s(s(T21))) → U5_gga(minus44_in_gga(T20, T21))
U5_gga(minus44_out_gga(X47)) → minus37_out_gga(X47)
minus44_in_gga(0, T18) → minus44_out_gga(0)
minus44_in_gga(T19, 0) → minus44_out_gga(T19)
minus44_in_gga(s(T20), s(T21)) → U4_gga(minus44_in_gga(T20, T21))
U4_gga(minus44_out_gga(X47)) → minus44_out_gga(X47)
minus37_in_gga(x0, x1)
U5_gga(x0)
minus44_in_gga(x0, x1)
U4_gga(x0)