0 Prolog
↳1 PrologToPiTRSProof (⇐)
↳2 PiTRS
↳3 DependencyPairsProof (⇔)
↳4 PiDP
↳5 DependencyGraphProof (⇔)
↳6 AND
↳7 PiDP
↳8 UsableRulesProof (⇔)
↳9 PiDP
↳10 PiDPToQDPProof (⇐)
↳11 QDP
↳12 QDPSizeChangeProof (⇔)
↳13 TRUE
↳14 PiDP
↳15 UsableRulesProof (⇔)
↳16 PiDP
↳17 PiDPToQDPProof (⇐)
↳18 QDP
↳19 QDPSizeChangeProof (⇔)
↳20 TRUE
↳21 PiDP
↳22 UsableRulesProof (⇔)
↳23 PiDP
↳24 PiDPToQDPProof (⇐)
↳25 QDP
↳26 Narrowing (⇐)
↳27 QDP
↳28 Narrowing (⇐)
↳29 QDP
↳30 Instantiation (⇔)
↳31 QDP
↳32 DependencyGraphProof (⇔)
↳33 QDP
↳34 Instantiation (⇔)
↳35 QDP
↳36 Instantiation (⇔)
↳37 QDP
↳38 Instantiation (⇔)
↳39 QDP
↳40 Rewriting (⇔)
↳41 QDP
↳42 Rewriting (⇔)
↳43 QDP
↳44 Instantiation (⇔)
↳45 QDP
↳46 DependencyGraphProof (⇔)
↳47 AND
↳48 QDP
↳49 UsableRulesProof (⇔)
↳50 QDP
↳51 QReductionProof (⇔)
↳52 QDP
↳53 NonTerminationProof (⇔)
↳54 FALSE
↳55 QDP
↳56 ForwardInstantiation (⇔)
↳57 QDP
↳58 ForwardInstantiation (⇔)
↳59 QDP
↳60 QDPOrderProof (⇔)
↳61 QDP
↳62 DependencyGraphProof (⇔)
↳63 TRUE
↳64 PrologToPiTRSProof (⇐)
↳65 PiTRS
↳66 DependencyPairsProof (⇔)
↳67 PiDP
↳68 DependencyGraphProof (⇔)
↳69 AND
↳70 PiDP
↳71 UsableRulesProof (⇔)
↳72 PiDP
↳73 PiDPToQDPProof (⇐)
↳74 QDP
↳75 QDPSizeChangeProof (⇔)
↳76 TRUE
↳77 PiDP
↳78 UsableRulesProof (⇔)
↳79 PiDP
↳80 PiDPToQDPProof (⇐)
↳81 QDP
↳82 QDPSizeChangeProof (⇔)
↳83 TRUE
↳84 PiDP
↳85 UsableRulesProof (⇔)
↳86 PiDP
↳87 PiDPToQDPProof (⇐)
↳88 QDP
↳89 Narrowing (⇐)
↳90 QDP
↳91 Narrowing (⇐)
↳92 QDP
↳93 Instantiation (⇔)
↳94 QDP
↳95 DependencyGraphProof (⇔)
↳96 QDP
↳97 Instantiation (⇔)
↳98 QDP
↳99 Instantiation (⇔)
↳100 QDP
↳101 Instantiation (⇔)
↳102 QDP
↳103 Rewriting (⇔)
↳104 QDP
↳105 Rewriting (⇔)
↳106 QDP
↳107 Instantiation (⇔)
↳108 QDP
↳109 DependencyGraphProof (⇔)
↳110 AND
↳111 QDP
↳112 UsableRulesProof (⇔)
↳113 QDP
↳114 QReductionProof (⇔)
↳115 QDP
↳116 NonTerminationProof (⇔)
↳117 FALSE
↳118 QDP
↳119 ForwardInstantiation (⇔)
↳120 QDP
↳121 ForwardInstantiation (⇔)
↳122 QDP
↳123 QDPOrderProof (⇔)
↳124 QDP
↳125 DependencyGraphProof (⇔)
↳126 TRUE
div_in_gga(X, s(Y), Z) → U3_gga(X, Y, Z, le_in_gga(s(Y), X, B))
le_in_gga(0, Y, true) → le_out_gga(0, Y, true)
le_in_gga(s(X), 0, false) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y), B) → U1_gga(X, Y, B, le_in_gga(X, Y, B))
U1_gga(X, Y, B, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
U3_gga(X, Y, Z, le_out_gga(s(Y), X, B)) → U4_gga(X, Y, Z, if_in_ggga(B, X, s(Y), Z))
if_in_ggga(false, X, s(Y), 0) → if_out_ggga(false, X, s(Y), 0)
if_in_ggga(true, X, s(Y), s(Z)) → U5_ggga(X, Y, Z, minus_in_gga(X, Y, U))
minus_in_gga(X, 0, X) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y), Z) → U2_gga(X, Y, Z, minus_in_gga(X, Y, Z))
U2_gga(X, Y, Z, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U5_ggga(X, Y, Z, minus_out_gga(X, Y, U)) → U6_ggga(X, Y, Z, div_in_gga(U, s(Y), Z))
U6_ggga(X, Y, Z, div_out_gga(U, s(Y), Z)) → if_out_ggga(true, X, s(Y), s(Z))
U4_gga(X, Y, Z, if_out_ggga(B, X, s(Y), Z)) → div_out_gga(X, s(Y), Z)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
div_in_gga(X, s(Y), Z) → U3_gga(X, Y, Z, le_in_gga(s(Y), X, B))
le_in_gga(0, Y, true) → le_out_gga(0, Y, true)
le_in_gga(s(X), 0, false) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y), B) → U1_gga(X, Y, B, le_in_gga(X, Y, B))
U1_gga(X, Y, B, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
U3_gga(X, Y, Z, le_out_gga(s(Y), X, B)) → U4_gga(X, Y, Z, if_in_ggga(B, X, s(Y), Z))
if_in_ggga(false, X, s(Y), 0) → if_out_ggga(false, X, s(Y), 0)
if_in_ggga(true, X, s(Y), s(Z)) → U5_ggga(X, Y, Z, minus_in_gga(X, Y, U))
minus_in_gga(X, 0, X) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y), Z) → U2_gga(X, Y, Z, minus_in_gga(X, Y, Z))
U2_gga(X, Y, Z, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U5_ggga(X, Y, Z, minus_out_gga(X, Y, U)) → U6_ggga(X, Y, Z, div_in_gga(U, s(Y), Z))
U6_ggga(X, Y, Z, div_out_gga(U, s(Y), Z)) → if_out_ggga(true, X, s(Y), s(Z))
U4_gga(X, Y, Z, if_out_ggga(B, X, s(Y), Z)) → div_out_gga(X, s(Y), Z)
DIV_IN_GGA(X, s(Y), Z) → U3_GGA(X, Y, Z, le_in_gga(s(Y), X, B))
DIV_IN_GGA(X, s(Y), Z) → LE_IN_GGA(s(Y), X, B)
LE_IN_GGA(s(X), s(Y), B) → U1_GGA(X, Y, B, le_in_gga(X, Y, B))
LE_IN_GGA(s(X), s(Y), B) → LE_IN_GGA(X, Y, B)
U3_GGA(X, Y, Z, le_out_gga(s(Y), X, B)) → U4_GGA(X, Y, Z, if_in_ggga(B, X, s(Y), Z))
U3_GGA(X, Y, Z, le_out_gga(s(Y), X, B)) → IF_IN_GGGA(B, X, s(Y), Z)
IF_IN_GGGA(true, X, s(Y), s(Z)) → U5_GGGA(X, Y, Z, minus_in_gga(X, Y, U))
IF_IN_GGGA(true, X, s(Y), s(Z)) → MINUS_IN_GGA(X, Y, U)
MINUS_IN_GGA(s(X), s(Y), Z) → U2_GGA(X, Y, Z, minus_in_gga(X, Y, Z))
MINUS_IN_GGA(s(X), s(Y), Z) → MINUS_IN_GGA(X, Y, Z)
U5_GGGA(X, Y, Z, minus_out_gga(X, Y, U)) → U6_GGGA(X, Y, Z, div_in_gga(U, s(Y), Z))
U5_GGGA(X, Y, Z, minus_out_gga(X, Y, U)) → DIV_IN_GGA(U, s(Y), Z)
div_in_gga(X, s(Y), Z) → U3_gga(X, Y, Z, le_in_gga(s(Y), X, B))
le_in_gga(0, Y, true) → le_out_gga(0, Y, true)
le_in_gga(s(X), 0, false) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y), B) → U1_gga(X, Y, B, le_in_gga(X, Y, B))
U1_gga(X, Y, B, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
U3_gga(X, Y, Z, le_out_gga(s(Y), X, B)) → U4_gga(X, Y, Z, if_in_ggga(B, X, s(Y), Z))
if_in_ggga(false, X, s(Y), 0) → if_out_ggga(false, X, s(Y), 0)
if_in_ggga(true, X, s(Y), s(Z)) → U5_ggga(X, Y, Z, minus_in_gga(X, Y, U))
minus_in_gga(X, 0, X) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y), Z) → U2_gga(X, Y, Z, minus_in_gga(X, Y, Z))
U2_gga(X, Y, Z, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U5_ggga(X, Y, Z, minus_out_gga(X, Y, U)) → U6_ggga(X, Y, Z, div_in_gga(U, s(Y), Z))
U6_ggga(X, Y, Z, div_out_gga(U, s(Y), Z)) → if_out_ggga(true, X, s(Y), s(Z))
U4_gga(X, Y, Z, if_out_ggga(B, X, s(Y), Z)) → div_out_gga(X, s(Y), Z)
DIV_IN_GGA(X, s(Y), Z) → U3_GGA(X, Y, Z, le_in_gga(s(Y), X, B))
DIV_IN_GGA(X, s(Y), Z) → LE_IN_GGA(s(Y), X, B)
LE_IN_GGA(s(X), s(Y), B) → U1_GGA(X, Y, B, le_in_gga(X, Y, B))
LE_IN_GGA(s(X), s(Y), B) → LE_IN_GGA(X, Y, B)
U3_GGA(X, Y, Z, le_out_gga(s(Y), X, B)) → U4_GGA(X, Y, Z, if_in_ggga(B, X, s(Y), Z))
U3_GGA(X, Y, Z, le_out_gga(s(Y), X, B)) → IF_IN_GGGA(B, X, s(Y), Z)
IF_IN_GGGA(true, X, s(Y), s(Z)) → U5_GGGA(X, Y, Z, minus_in_gga(X, Y, U))
IF_IN_GGGA(true, X, s(Y), s(Z)) → MINUS_IN_GGA(X, Y, U)
MINUS_IN_GGA(s(X), s(Y), Z) → U2_GGA(X, Y, Z, minus_in_gga(X, Y, Z))
MINUS_IN_GGA(s(X), s(Y), Z) → MINUS_IN_GGA(X, Y, Z)
U5_GGGA(X, Y, Z, minus_out_gga(X, Y, U)) → U6_GGGA(X, Y, Z, div_in_gga(U, s(Y), Z))
U5_GGGA(X, Y, Z, minus_out_gga(X, Y, U)) → DIV_IN_GGA(U, s(Y), Z)
div_in_gga(X, s(Y), Z) → U3_gga(X, Y, Z, le_in_gga(s(Y), X, B))
le_in_gga(0, Y, true) → le_out_gga(0, Y, true)
le_in_gga(s(X), 0, false) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y), B) → U1_gga(X, Y, B, le_in_gga(X, Y, B))
U1_gga(X, Y, B, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
U3_gga(X, Y, Z, le_out_gga(s(Y), X, B)) → U4_gga(X, Y, Z, if_in_ggga(B, X, s(Y), Z))
if_in_ggga(false, X, s(Y), 0) → if_out_ggga(false, X, s(Y), 0)
if_in_ggga(true, X, s(Y), s(Z)) → U5_ggga(X, Y, Z, minus_in_gga(X, Y, U))
minus_in_gga(X, 0, X) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y), Z) → U2_gga(X, Y, Z, minus_in_gga(X, Y, Z))
U2_gga(X, Y, Z, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U5_ggga(X, Y, Z, minus_out_gga(X, Y, U)) → U6_ggga(X, Y, Z, div_in_gga(U, s(Y), Z))
U6_ggga(X, Y, Z, div_out_gga(U, s(Y), Z)) → if_out_ggga(true, X, s(Y), s(Z))
U4_gga(X, Y, Z, if_out_ggga(B, X, s(Y), Z)) → div_out_gga(X, s(Y), Z)
MINUS_IN_GGA(s(X), s(Y), Z) → MINUS_IN_GGA(X, Y, Z)
div_in_gga(X, s(Y), Z) → U3_gga(X, Y, Z, le_in_gga(s(Y), X, B))
le_in_gga(0, Y, true) → le_out_gga(0, Y, true)
le_in_gga(s(X), 0, false) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y), B) → U1_gga(X, Y, B, le_in_gga(X, Y, B))
U1_gga(X, Y, B, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
U3_gga(X, Y, Z, le_out_gga(s(Y), X, B)) → U4_gga(X, Y, Z, if_in_ggga(B, X, s(Y), Z))
if_in_ggga(false, X, s(Y), 0) → if_out_ggga(false, X, s(Y), 0)
if_in_ggga(true, X, s(Y), s(Z)) → U5_ggga(X, Y, Z, minus_in_gga(X, Y, U))
minus_in_gga(X, 0, X) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y), Z) → U2_gga(X, Y, Z, minus_in_gga(X, Y, Z))
U2_gga(X, Y, Z, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U5_ggga(X, Y, Z, minus_out_gga(X, Y, U)) → U6_ggga(X, Y, Z, div_in_gga(U, s(Y), Z))
U6_ggga(X, Y, Z, div_out_gga(U, s(Y), Z)) → if_out_ggga(true, X, s(Y), s(Z))
U4_gga(X, Y, Z, if_out_ggga(B, X, s(Y), Z)) → div_out_gga(X, s(Y), Z)
MINUS_IN_GGA(s(X), s(Y), Z) → MINUS_IN_GGA(X, Y, Z)
MINUS_IN_GGA(s(X), s(Y)) → MINUS_IN_GGA(X, Y)
From the DPs we obtained the following set of size-change graphs:
LE_IN_GGA(s(X), s(Y), B) → LE_IN_GGA(X, Y, B)
div_in_gga(X, s(Y), Z) → U3_gga(X, Y, Z, le_in_gga(s(Y), X, B))
le_in_gga(0, Y, true) → le_out_gga(0, Y, true)
le_in_gga(s(X), 0, false) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y), B) → U1_gga(X, Y, B, le_in_gga(X, Y, B))
U1_gga(X, Y, B, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
U3_gga(X, Y, Z, le_out_gga(s(Y), X, B)) → U4_gga(X, Y, Z, if_in_ggga(B, X, s(Y), Z))
if_in_ggga(false, X, s(Y), 0) → if_out_ggga(false, X, s(Y), 0)
if_in_ggga(true, X, s(Y), s(Z)) → U5_ggga(X, Y, Z, minus_in_gga(X, Y, U))
minus_in_gga(X, 0, X) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y), Z) → U2_gga(X, Y, Z, minus_in_gga(X, Y, Z))
U2_gga(X, Y, Z, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U5_ggga(X, Y, Z, minus_out_gga(X, Y, U)) → U6_ggga(X, Y, Z, div_in_gga(U, s(Y), Z))
U6_ggga(X, Y, Z, div_out_gga(U, s(Y), Z)) → if_out_ggga(true, X, s(Y), s(Z))
U4_gga(X, Y, Z, if_out_ggga(B, X, s(Y), Z)) → div_out_gga(X, s(Y), Z)
LE_IN_GGA(s(X), s(Y), B) → LE_IN_GGA(X, Y, B)
LE_IN_GGA(s(X), s(Y)) → LE_IN_GGA(X, Y)
From the DPs we obtained the following set of size-change graphs:
U3_GGA(X, Y, Z, le_out_gga(s(Y), X, B)) → IF_IN_GGGA(B, X, s(Y), Z)
IF_IN_GGGA(true, X, s(Y), s(Z)) → U5_GGGA(X, Y, Z, minus_in_gga(X, Y, U))
U5_GGGA(X, Y, Z, minus_out_gga(X, Y, U)) → DIV_IN_GGA(U, s(Y), Z)
DIV_IN_GGA(X, s(Y), Z) → U3_GGA(X, Y, Z, le_in_gga(s(Y), X, B))
div_in_gga(X, s(Y), Z) → U3_gga(X, Y, Z, le_in_gga(s(Y), X, B))
le_in_gga(0, Y, true) → le_out_gga(0, Y, true)
le_in_gga(s(X), 0, false) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y), B) → U1_gga(X, Y, B, le_in_gga(X, Y, B))
U1_gga(X, Y, B, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
U3_gga(X, Y, Z, le_out_gga(s(Y), X, B)) → U4_gga(X, Y, Z, if_in_ggga(B, X, s(Y), Z))
if_in_ggga(false, X, s(Y), 0) → if_out_ggga(false, X, s(Y), 0)
if_in_ggga(true, X, s(Y), s(Z)) → U5_ggga(X, Y, Z, minus_in_gga(X, Y, U))
minus_in_gga(X, 0, X) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y), Z) → U2_gga(X, Y, Z, minus_in_gga(X, Y, Z))
U2_gga(X, Y, Z, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U5_ggga(X, Y, Z, minus_out_gga(X, Y, U)) → U6_ggga(X, Y, Z, div_in_gga(U, s(Y), Z))
U6_ggga(X, Y, Z, div_out_gga(U, s(Y), Z)) → if_out_ggga(true, X, s(Y), s(Z))
U4_gga(X, Y, Z, if_out_ggga(B, X, s(Y), Z)) → div_out_gga(X, s(Y), Z)
U3_GGA(X, Y, Z, le_out_gga(s(Y), X, B)) → IF_IN_GGGA(B, X, s(Y), Z)
IF_IN_GGGA(true, X, s(Y), s(Z)) → U5_GGGA(X, Y, Z, minus_in_gga(X, Y, U))
U5_GGGA(X, Y, Z, minus_out_gga(X, Y, U)) → DIV_IN_GGA(U, s(Y), Z)
DIV_IN_GGA(X, s(Y), Z) → U3_GGA(X, Y, Z, le_in_gga(s(Y), X, B))
minus_in_gga(X, 0, X) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y), Z) → U2_gga(X, Y, Z, minus_in_gga(X, Y, Z))
le_in_gga(s(X), 0, false) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y), B) → U1_gga(X, Y, B, le_in_gga(X, Y, B))
U2_gga(X, Y, Z, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U1_gga(X, Y, B, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
le_in_gga(0, Y, true) → le_out_gga(0, Y, true)
U3_GGA(X, Y, le_out_gga(B)) → IF_IN_GGGA(B, X, s(Y))
IF_IN_GGGA(true, X, s(Y)) → U5_GGGA(Y, minus_in_gga(X, Y))
U5_GGGA(Y, minus_out_gga(U)) → DIV_IN_GGA(U, s(Y))
DIV_IN_GGA(X, s(Y)) → U3_GGA(X, Y, le_in_gga(s(Y), X))
minus_in_gga(X, 0) → minus_out_gga(X)
minus_in_gga(s(X), s(Y)) → U2_gga(minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(false)
le_in_gga(s(X), s(Y)) → U1_gga(le_in_gga(X, Y))
U2_gga(minus_out_gga(Z)) → minus_out_gga(Z)
U1_gga(le_out_gga(B)) → le_out_gga(B)
le_in_gga(0, Y) → le_out_gga(true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0)
U1_gga(x0)
IF_IN_GGGA(true, x0, s(0)) → U5_GGGA(0, minus_out_gga(x0))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x1), U2_gga(minus_in_gga(x0, x1)))
U3_GGA(X, Y, le_out_gga(B)) → IF_IN_GGGA(B, X, s(Y))
U5_GGGA(Y, minus_out_gga(U)) → DIV_IN_GGA(U, s(Y))
DIV_IN_GGA(X, s(Y)) → U3_GGA(X, Y, le_in_gga(s(Y), X))
IF_IN_GGGA(true, x0, s(0)) → U5_GGGA(0, minus_out_gga(x0))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x1), U2_gga(minus_in_gga(x0, x1)))
minus_in_gga(X, 0) → minus_out_gga(X)
minus_in_gga(s(X), s(Y)) → U2_gga(minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(false)
le_in_gga(s(X), s(Y)) → U1_gga(le_in_gga(X, Y))
U2_gga(minus_out_gga(Z)) → minus_out_gga(Z)
U1_gga(le_out_gga(B)) → le_out_gga(B)
le_in_gga(0, Y) → le_out_gga(true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0)
U1_gga(x0)
DIV_IN_GGA(0, s(x0)) → U3_GGA(0, x0, le_out_gga(false))
DIV_IN_GGA(s(x1), s(x0)) → U3_GGA(s(x1), x0, U1_gga(le_in_gga(x0, x1)))
U3_GGA(X, Y, le_out_gga(B)) → IF_IN_GGGA(B, X, s(Y))
U5_GGGA(Y, minus_out_gga(U)) → DIV_IN_GGA(U, s(Y))
IF_IN_GGGA(true, x0, s(0)) → U5_GGGA(0, minus_out_gga(x0))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x1), U2_gga(minus_in_gga(x0, x1)))
DIV_IN_GGA(0, s(x0)) → U3_GGA(0, x0, le_out_gga(false))
DIV_IN_GGA(s(x1), s(x0)) → U3_GGA(s(x1), x0, U1_gga(le_in_gga(x0, x1)))
minus_in_gga(X, 0) → minus_out_gga(X)
minus_in_gga(s(X), s(Y)) → U2_gga(minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(false)
le_in_gga(s(X), s(Y)) → U1_gga(le_in_gga(X, Y))
U2_gga(minus_out_gga(Z)) → minus_out_gga(Z)
U1_gga(le_out_gga(B)) → le_out_gga(B)
le_in_gga(0, Y) → le_out_gga(true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0)
U1_gga(x0)
U3_GGA(0, z0, le_out_gga(false)) → IF_IN_GGGA(false, 0, s(z0))
U3_GGA(s(z0), z1, le_out_gga(x2)) → IF_IN_GGGA(x2, s(z0), s(z1))
U5_GGGA(Y, minus_out_gga(U)) → DIV_IN_GGA(U, s(Y))
IF_IN_GGGA(true, x0, s(0)) → U5_GGGA(0, minus_out_gga(x0))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x1), U2_gga(minus_in_gga(x0, x1)))
DIV_IN_GGA(0, s(x0)) → U3_GGA(0, x0, le_out_gga(false))
DIV_IN_GGA(s(x1), s(x0)) → U3_GGA(s(x1), x0, U1_gga(le_in_gga(x0, x1)))
U3_GGA(0, z0, le_out_gga(false)) → IF_IN_GGGA(false, 0, s(z0))
U3_GGA(s(z0), z1, le_out_gga(x2)) → IF_IN_GGGA(x2, s(z0), s(z1))
minus_in_gga(X, 0) → minus_out_gga(X)
minus_in_gga(s(X), s(Y)) → U2_gga(minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(false)
le_in_gga(s(X), s(Y)) → U1_gga(le_in_gga(X, Y))
U2_gga(minus_out_gga(Z)) → minus_out_gga(Z)
U1_gga(le_out_gga(B)) → le_out_gga(B)
le_in_gga(0, Y) → le_out_gga(true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0)
U1_gga(x0)
DIV_IN_GGA(s(x1), s(x0)) → U3_GGA(s(x1), x0, U1_gga(le_in_gga(x0, x1)))
U3_GGA(s(z0), z1, le_out_gga(x2)) → IF_IN_GGGA(x2, s(z0), s(z1))
IF_IN_GGGA(true, x0, s(0)) → U5_GGGA(0, minus_out_gga(x0))
U5_GGGA(Y, minus_out_gga(U)) → DIV_IN_GGA(U, s(Y))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x1), U2_gga(minus_in_gga(x0, x1)))
minus_in_gga(X, 0) → minus_out_gga(X)
minus_in_gga(s(X), s(Y)) → U2_gga(minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(false)
le_in_gga(s(X), s(Y)) → U1_gga(le_in_gga(X, Y))
U2_gga(minus_out_gga(Z)) → minus_out_gga(Z)
U1_gga(le_out_gga(B)) → le_out_gga(B)
le_in_gga(0, Y) → le_out_gga(true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0)
U1_gga(x0)
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(0, minus_out_gga(s(z0)))
DIV_IN_GGA(s(x1), s(x0)) → U3_GGA(s(x1), x0, U1_gga(le_in_gga(x0, x1)))
U3_GGA(s(z0), z1, le_out_gga(x2)) → IF_IN_GGGA(x2, s(z0), s(z1))
U5_GGGA(Y, minus_out_gga(U)) → DIV_IN_GGA(U, s(Y))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x1), U2_gga(minus_in_gga(x0, x1)))
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(0, minus_out_gga(s(z0)))
minus_in_gga(X, 0) → minus_out_gga(X)
minus_in_gga(s(X), s(Y)) → U2_gga(minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(false)
le_in_gga(s(X), s(Y)) → U1_gga(le_in_gga(X, Y))
U2_gga(minus_out_gga(Z)) → minus_out_gga(Z)
U1_gga(le_out_gga(B)) → le_out_gga(B)
le_in_gga(0, Y) → le_out_gga(true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0)
U1_gga(x0)
U5_GGGA(s(z1), minus_out_gga(x1)) → DIV_IN_GGA(x1, s(s(z1)))
U5_GGGA(0, minus_out_gga(s(z0))) → DIV_IN_GGA(s(z0), s(0))
DIV_IN_GGA(s(x1), s(x0)) → U3_GGA(s(x1), x0, U1_gga(le_in_gga(x0, x1)))
U3_GGA(s(z0), z1, le_out_gga(x2)) → IF_IN_GGGA(x2, s(z0), s(z1))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x1), U2_gga(minus_in_gga(x0, x1)))
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(0, minus_out_gga(s(z0)))
U5_GGGA(s(z1), minus_out_gga(x1)) → DIV_IN_GGA(x1, s(s(z1)))
U5_GGGA(0, minus_out_gga(s(z0))) → DIV_IN_GGA(s(z0), s(0))
minus_in_gga(X, 0) → minus_out_gga(X)
minus_in_gga(s(X), s(Y)) → U2_gga(minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(false)
le_in_gga(s(X), s(Y)) → U1_gga(le_in_gga(X, Y))
U2_gga(minus_out_gga(Z)) → minus_out_gga(Z)
U1_gga(le_out_gga(B)) → le_out_gga(B)
le_in_gga(0, Y) → le_out_gga(true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0)
U1_gga(x0)
DIV_IN_GGA(s(x0), s(s(z0))) → U3_GGA(s(x0), s(z0), U1_gga(le_in_gga(s(z0), x0)))
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, U1_gga(le_in_gga(0, z0)))
U3_GGA(s(z0), z1, le_out_gga(x2)) → IF_IN_GGGA(x2, s(z0), s(z1))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x1), U2_gga(minus_in_gga(x0, x1)))
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(0, minus_out_gga(s(z0)))
U5_GGGA(s(z1), minus_out_gga(x1)) → DIV_IN_GGA(x1, s(s(z1)))
U5_GGGA(0, minus_out_gga(s(z0))) → DIV_IN_GGA(s(z0), s(0))
DIV_IN_GGA(s(x0), s(s(z0))) → U3_GGA(s(x0), s(z0), U1_gga(le_in_gga(s(z0), x0)))
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, U1_gga(le_in_gga(0, z0)))
minus_in_gga(X, 0) → minus_out_gga(X)
minus_in_gga(s(X), s(Y)) → U2_gga(minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(false)
le_in_gga(s(X), s(Y)) → U1_gga(le_in_gga(X, Y))
U2_gga(minus_out_gga(Z)) → minus_out_gga(Z)
U1_gga(le_out_gga(B)) → le_out_gga(B)
le_in_gga(0, Y) → le_out_gga(true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0)
U1_gga(x0)
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, U1_gga(le_out_gga(true)))
U3_GGA(s(z0), z1, le_out_gga(x2)) → IF_IN_GGGA(x2, s(z0), s(z1))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x1), U2_gga(minus_in_gga(x0, x1)))
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(0, minus_out_gga(s(z0)))
U5_GGGA(s(z1), minus_out_gga(x1)) → DIV_IN_GGA(x1, s(s(z1)))
U5_GGGA(0, minus_out_gga(s(z0))) → DIV_IN_GGA(s(z0), s(0))
DIV_IN_GGA(s(x0), s(s(z0))) → U3_GGA(s(x0), s(z0), U1_gga(le_in_gga(s(z0), x0)))
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, U1_gga(le_out_gga(true)))
minus_in_gga(X, 0) → minus_out_gga(X)
minus_in_gga(s(X), s(Y)) → U2_gga(minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(false)
le_in_gga(s(X), s(Y)) → U1_gga(le_in_gga(X, Y))
U2_gga(minus_out_gga(Z)) → minus_out_gga(Z)
U1_gga(le_out_gga(B)) → le_out_gga(B)
le_in_gga(0, Y) → le_out_gga(true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0)
U1_gga(x0)
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, le_out_gga(true))
U3_GGA(s(z0), z1, le_out_gga(x2)) → IF_IN_GGGA(x2, s(z0), s(z1))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x1), U2_gga(minus_in_gga(x0, x1)))
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(0, minus_out_gga(s(z0)))
U5_GGGA(s(z1), minus_out_gga(x1)) → DIV_IN_GGA(x1, s(s(z1)))
U5_GGGA(0, minus_out_gga(s(z0))) → DIV_IN_GGA(s(z0), s(0))
DIV_IN_GGA(s(x0), s(s(z0))) → U3_GGA(s(x0), s(z0), U1_gga(le_in_gga(s(z0), x0)))
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, le_out_gga(true))
minus_in_gga(X, 0) → minus_out_gga(X)
minus_in_gga(s(X), s(Y)) → U2_gga(minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(false)
le_in_gga(s(X), s(Y)) → U1_gga(le_in_gga(X, Y))
U2_gga(minus_out_gga(Z)) → minus_out_gga(Z)
U1_gga(le_out_gga(B)) → le_out_gga(B)
le_in_gga(0, Y) → le_out_gga(true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0)
U1_gga(x0)
U3_GGA(s(z0), s(z1), le_out_gga(x2)) → IF_IN_GGGA(x2, s(z0), s(s(z1)))
U3_GGA(s(z0), 0, le_out_gga(true)) → IF_IN_GGGA(true, s(z0), s(0))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x1), U2_gga(minus_in_gga(x0, x1)))
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(0, minus_out_gga(s(z0)))
U5_GGGA(s(z1), minus_out_gga(x1)) → DIV_IN_GGA(x1, s(s(z1)))
U5_GGGA(0, minus_out_gga(s(z0))) → DIV_IN_GGA(s(z0), s(0))
DIV_IN_GGA(s(x0), s(s(z0))) → U3_GGA(s(x0), s(z0), U1_gga(le_in_gga(s(z0), x0)))
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, le_out_gga(true))
U3_GGA(s(z0), s(z1), le_out_gga(x2)) → IF_IN_GGGA(x2, s(z0), s(s(z1)))
U3_GGA(s(z0), 0, le_out_gga(true)) → IF_IN_GGGA(true, s(z0), s(0))
minus_in_gga(X, 0) → minus_out_gga(X)
minus_in_gga(s(X), s(Y)) → U2_gga(minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(false)
le_in_gga(s(X), s(Y)) → U1_gga(le_in_gga(X, Y))
U2_gga(minus_out_gga(Z)) → minus_out_gga(Z)
U1_gga(le_out_gga(B)) → le_out_gga(B)
le_in_gga(0, Y) → le_out_gga(true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0)
U1_gga(x0)
U5_GGGA(0, minus_out_gga(s(z0))) → DIV_IN_GGA(s(z0), s(0))
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, le_out_gga(true))
U3_GGA(s(z0), 0, le_out_gga(true)) → IF_IN_GGGA(true, s(z0), s(0))
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(0, minus_out_gga(s(z0)))
minus_in_gga(X, 0) → minus_out_gga(X)
minus_in_gga(s(X), s(Y)) → U2_gga(minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(false)
le_in_gga(s(X), s(Y)) → U1_gga(le_in_gga(X, Y))
U2_gga(minus_out_gga(Z)) → minus_out_gga(Z)
U1_gga(le_out_gga(B)) → le_out_gga(B)
le_in_gga(0, Y) → le_out_gga(true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0)
U1_gga(x0)
U5_GGGA(0, minus_out_gga(s(z0))) → DIV_IN_GGA(s(z0), s(0))
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, le_out_gga(true))
U3_GGA(s(z0), 0, le_out_gga(true)) → IF_IN_GGGA(true, s(z0), s(0))
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(0, minus_out_gga(s(z0)))
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0)
U1_gga(x0)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0)
U1_gga(x0)
U5_GGGA(0, minus_out_gga(s(z0))) → DIV_IN_GGA(s(z0), s(0))
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, le_out_gga(true))
U3_GGA(s(z0), 0, le_out_gga(true)) → IF_IN_GGGA(true, s(z0), s(0))
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(0, minus_out_gga(s(z0)))
U5_GGGA(s(z1), minus_out_gga(x1)) → DIV_IN_GGA(x1, s(s(z1)))
DIV_IN_GGA(s(x0), s(s(z0))) → U3_GGA(s(x0), s(z0), U1_gga(le_in_gga(s(z0), x0)))
U3_GGA(s(z0), s(z1), le_out_gga(x2)) → IF_IN_GGGA(x2, s(z0), s(s(z1)))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x1), U2_gga(minus_in_gga(x0, x1)))
minus_in_gga(X, 0) → minus_out_gga(X)
minus_in_gga(s(X), s(Y)) → U2_gga(minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(false)
le_in_gga(s(X), s(Y)) → U1_gga(le_in_gga(X, Y))
U2_gga(minus_out_gga(Z)) → minus_out_gga(Z)
U1_gga(le_out_gga(B)) → le_out_gga(B)
le_in_gga(0, Y) → le_out_gga(true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0)
U1_gga(x0)
U5_GGGA(s(x0), minus_out_gga(s(y_0))) → DIV_IN_GGA(s(y_0), s(s(x0)))
DIV_IN_GGA(s(x0), s(s(z0))) → U3_GGA(s(x0), s(z0), U1_gga(le_in_gga(s(z0), x0)))
U3_GGA(s(z0), s(z1), le_out_gga(x2)) → IF_IN_GGGA(x2, s(z0), s(s(z1)))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x1), U2_gga(minus_in_gga(x0, x1)))
U5_GGGA(s(x0), minus_out_gga(s(y_0))) → DIV_IN_GGA(s(y_0), s(s(x0)))
minus_in_gga(X, 0) → minus_out_gga(X)
minus_in_gga(s(X), s(Y)) → U2_gga(minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(false)
le_in_gga(s(X), s(Y)) → U1_gga(le_in_gga(X, Y))
U2_gga(minus_out_gga(Z)) → minus_out_gga(Z)
U1_gga(le_out_gga(B)) → le_out_gga(B)
le_in_gga(0, Y) → le_out_gga(true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0)
U1_gga(x0)
U3_GGA(s(x0), s(x1), le_out_gga(true)) → IF_IN_GGGA(true, s(x0), s(s(x1)))
DIV_IN_GGA(s(x0), s(s(z0))) → U3_GGA(s(x0), s(z0), U1_gga(le_in_gga(s(z0), x0)))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x1), U2_gga(minus_in_gga(x0, x1)))
U5_GGGA(s(x0), minus_out_gga(s(y_0))) → DIV_IN_GGA(s(y_0), s(s(x0)))
U3_GGA(s(x0), s(x1), le_out_gga(true)) → IF_IN_GGGA(true, s(x0), s(s(x1)))
minus_in_gga(X, 0) → minus_out_gga(X)
minus_in_gga(s(X), s(Y)) → U2_gga(minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(false)
le_in_gga(s(X), s(Y)) → U1_gga(le_in_gga(X, Y))
U2_gga(minus_out_gga(Z)) → minus_out_gga(Z)
U1_gga(le_out_gga(B)) → le_out_gga(B)
le_in_gga(0, Y) → le_out_gga(true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0)
U1_gga(x0)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
U3_GGA(s(x0), s(x1), le_out_gga(true)) → IF_IN_GGGA(true, s(x0), s(s(x1)))
POL(0) = 0
POL(DIV_IN_GGA(x1, x2)) = 1 + x1
POL(IF_IN_GGGA(x1, x2, x3)) = x2
POL(U1_gga(x1)) = 0
POL(U2_gga(x1)) = x1
POL(U3_GGA(x1, x2, x3)) = 1 + x1
POL(U5_GGGA(x1, x2)) = 1 + x2
POL(false) = 0
POL(le_in_gga(x1, x2)) = 0
POL(le_out_gga(x1)) = 0
POL(minus_in_gga(x1, x2)) = x1
POL(minus_out_gga(x1)) = x1
POL(s(x1)) = 1 + x1
POL(true) = 0
minus_in_gga(X, 0) → minus_out_gga(X)
minus_in_gga(s(X), s(Y)) → U2_gga(minus_in_gga(X, Y))
U2_gga(minus_out_gga(Z)) → minus_out_gga(Z)
DIV_IN_GGA(s(x0), s(s(z0))) → U3_GGA(s(x0), s(z0), U1_gga(le_in_gga(s(z0), x0)))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x1), U2_gga(minus_in_gga(x0, x1)))
U5_GGGA(s(x0), minus_out_gga(s(y_0))) → DIV_IN_GGA(s(y_0), s(s(x0)))
minus_in_gga(X, 0) → minus_out_gga(X)
minus_in_gga(s(X), s(Y)) → U2_gga(minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(false)
le_in_gga(s(X), s(Y)) → U1_gga(le_in_gga(X, Y))
U2_gga(minus_out_gga(Z)) → minus_out_gga(Z)
U1_gga(le_out_gga(B)) → le_out_gga(B)
le_in_gga(0, Y) → le_out_gga(true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0)
U1_gga(x0)
div_in_gga(X, s(Y), Z) → U3_gga(X, Y, Z, le_in_gga(s(Y), X, B))
le_in_gga(0, Y, true) → le_out_gga(0, Y, true)
le_in_gga(s(X), 0, false) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y), B) → U1_gga(X, Y, B, le_in_gga(X, Y, B))
U1_gga(X, Y, B, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
U3_gga(X, Y, Z, le_out_gga(s(Y), X, B)) → U4_gga(X, Y, Z, if_in_ggga(B, X, s(Y), Z))
if_in_ggga(false, X, s(Y), 0) → if_out_ggga(false, X, s(Y), 0)
if_in_ggga(true, X, s(Y), s(Z)) → U5_ggga(X, Y, Z, minus_in_gga(X, Y, U))
minus_in_gga(X, 0, X) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y), Z) → U2_gga(X, Y, Z, minus_in_gga(X, Y, Z))
U2_gga(X, Y, Z, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U5_ggga(X, Y, Z, minus_out_gga(X, Y, U)) → U6_ggga(X, Y, Z, div_in_gga(U, s(Y), Z))
U6_ggga(X, Y, Z, div_out_gga(U, s(Y), Z)) → if_out_ggga(true, X, s(Y), s(Z))
U4_gga(X, Y, Z, if_out_ggga(B, X, s(Y), Z)) → div_out_gga(X, s(Y), Z)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
div_in_gga(X, s(Y), Z) → U3_gga(X, Y, Z, le_in_gga(s(Y), X, B))
le_in_gga(0, Y, true) → le_out_gga(0, Y, true)
le_in_gga(s(X), 0, false) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y), B) → U1_gga(X, Y, B, le_in_gga(X, Y, B))
U1_gga(X, Y, B, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
U3_gga(X, Y, Z, le_out_gga(s(Y), X, B)) → U4_gga(X, Y, Z, if_in_ggga(B, X, s(Y), Z))
if_in_ggga(false, X, s(Y), 0) → if_out_ggga(false, X, s(Y), 0)
if_in_ggga(true, X, s(Y), s(Z)) → U5_ggga(X, Y, Z, minus_in_gga(X, Y, U))
minus_in_gga(X, 0, X) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y), Z) → U2_gga(X, Y, Z, minus_in_gga(X, Y, Z))
U2_gga(X, Y, Z, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U5_ggga(X, Y, Z, minus_out_gga(X, Y, U)) → U6_ggga(X, Y, Z, div_in_gga(U, s(Y), Z))
U6_ggga(X, Y, Z, div_out_gga(U, s(Y), Z)) → if_out_ggga(true, X, s(Y), s(Z))
U4_gga(X, Y, Z, if_out_ggga(B, X, s(Y), Z)) → div_out_gga(X, s(Y), Z)
DIV_IN_GGA(X, s(Y), Z) → U3_GGA(X, Y, Z, le_in_gga(s(Y), X, B))
DIV_IN_GGA(X, s(Y), Z) → LE_IN_GGA(s(Y), X, B)
LE_IN_GGA(s(X), s(Y), B) → U1_GGA(X, Y, B, le_in_gga(X, Y, B))
LE_IN_GGA(s(X), s(Y), B) → LE_IN_GGA(X, Y, B)
U3_GGA(X, Y, Z, le_out_gga(s(Y), X, B)) → U4_GGA(X, Y, Z, if_in_ggga(B, X, s(Y), Z))
U3_GGA(X, Y, Z, le_out_gga(s(Y), X, B)) → IF_IN_GGGA(B, X, s(Y), Z)
IF_IN_GGGA(true, X, s(Y), s(Z)) → U5_GGGA(X, Y, Z, minus_in_gga(X, Y, U))
IF_IN_GGGA(true, X, s(Y), s(Z)) → MINUS_IN_GGA(X, Y, U)
MINUS_IN_GGA(s(X), s(Y), Z) → U2_GGA(X, Y, Z, minus_in_gga(X, Y, Z))
MINUS_IN_GGA(s(X), s(Y), Z) → MINUS_IN_GGA(X, Y, Z)
U5_GGGA(X, Y, Z, minus_out_gga(X, Y, U)) → U6_GGGA(X, Y, Z, div_in_gga(U, s(Y), Z))
U5_GGGA(X, Y, Z, minus_out_gga(X, Y, U)) → DIV_IN_GGA(U, s(Y), Z)
div_in_gga(X, s(Y), Z) → U3_gga(X, Y, Z, le_in_gga(s(Y), X, B))
le_in_gga(0, Y, true) → le_out_gga(0, Y, true)
le_in_gga(s(X), 0, false) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y), B) → U1_gga(X, Y, B, le_in_gga(X, Y, B))
U1_gga(X, Y, B, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
U3_gga(X, Y, Z, le_out_gga(s(Y), X, B)) → U4_gga(X, Y, Z, if_in_ggga(B, X, s(Y), Z))
if_in_ggga(false, X, s(Y), 0) → if_out_ggga(false, X, s(Y), 0)
if_in_ggga(true, X, s(Y), s(Z)) → U5_ggga(X, Y, Z, minus_in_gga(X, Y, U))
minus_in_gga(X, 0, X) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y), Z) → U2_gga(X, Y, Z, minus_in_gga(X, Y, Z))
U2_gga(X, Y, Z, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U5_ggga(X, Y, Z, minus_out_gga(X, Y, U)) → U6_ggga(X, Y, Z, div_in_gga(U, s(Y), Z))
U6_ggga(X, Y, Z, div_out_gga(U, s(Y), Z)) → if_out_ggga(true, X, s(Y), s(Z))
U4_gga(X, Y, Z, if_out_ggga(B, X, s(Y), Z)) → div_out_gga(X, s(Y), Z)
DIV_IN_GGA(X, s(Y), Z) → U3_GGA(X, Y, Z, le_in_gga(s(Y), X, B))
DIV_IN_GGA(X, s(Y), Z) → LE_IN_GGA(s(Y), X, B)
LE_IN_GGA(s(X), s(Y), B) → U1_GGA(X, Y, B, le_in_gga(X, Y, B))
LE_IN_GGA(s(X), s(Y), B) → LE_IN_GGA(X, Y, B)
U3_GGA(X, Y, Z, le_out_gga(s(Y), X, B)) → U4_GGA(X, Y, Z, if_in_ggga(B, X, s(Y), Z))
U3_GGA(X, Y, Z, le_out_gga(s(Y), X, B)) → IF_IN_GGGA(B, X, s(Y), Z)
IF_IN_GGGA(true, X, s(Y), s(Z)) → U5_GGGA(X, Y, Z, minus_in_gga(X, Y, U))
IF_IN_GGGA(true, X, s(Y), s(Z)) → MINUS_IN_GGA(X, Y, U)
MINUS_IN_GGA(s(X), s(Y), Z) → U2_GGA(X, Y, Z, minus_in_gga(X, Y, Z))
MINUS_IN_GGA(s(X), s(Y), Z) → MINUS_IN_GGA(X, Y, Z)
U5_GGGA(X, Y, Z, minus_out_gga(X, Y, U)) → U6_GGGA(X, Y, Z, div_in_gga(U, s(Y), Z))
U5_GGGA(X, Y, Z, minus_out_gga(X, Y, U)) → DIV_IN_GGA(U, s(Y), Z)
div_in_gga(X, s(Y), Z) → U3_gga(X, Y, Z, le_in_gga(s(Y), X, B))
le_in_gga(0, Y, true) → le_out_gga(0, Y, true)
le_in_gga(s(X), 0, false) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y), B) → U1_gga(X, Y, B, le_in_gga(X, Y, B))
U1_gga(X, Y, B, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
U3_gga(X, Y, Z, le_out_gga(s(Y), X, B)) → U4_gga(X, Y, Z, if_in_ggga(B, X, s(Y), Z))
if_in_ggga(false, X, s(Y), 0) → if_out_ggga(false, X, s(Y), 0)
if_in_ggga(true, X, s(Y), s(Z)) → U5_ggga(X, Y, Z, minus_in_gga(X, Y, U))
minus_in_gga(X, 0, X) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y), Z) → U2_gga(X, Y, Z, minus_in_gga(X, Y, Z))
U2_gga(X, Y, Z, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U5_ggga(X, Y, Z, minus_out_gga(X, Y, U)) → U6_ggga(X, Y, Z, div_in_gga(U, s(Y), Z))
U6_ggga(X, Y, Z, div_out_gga(U, s(Y), Z)) → if_out_ggga(true, X, s(Y), s(Z))
U4_gga(X, Y, Z, if_out_ggga(B, X, s(Y), Z)) → div_out_gga(X, s(Y), Z)
MINUS_IN_GGA(s(X), s(Y), Z) → MINUS_IN_GGA(X, Y, Z)
div_in_gga(X, s(Y), Z) → U3_gga(X, Y, Z, le_in_gga(s(Y), X, B))
le_in_gga(0, Y, true) → le_out_gga(0, Y, true)
le_in_gga(s(X), 0, false) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y), B) → U1_gga(X, Y, B, le_in_gga(X, Y, B))
U1_gga(X, Y, B, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
U3_gga(X, Y, Z, le_out_gga(s(Y), X, B)) → U4_gga(X, Y, Z, if_in_ggga(B, X, s(Y), Z))
if_in_ggga(false, X, s(Y), 0) → if_out_ggga(false, X, s(Y), 0)
if_in_ggga(true, X, s(Y), s(Z)) → U5_ggga(X, Y, Z, minus_in_gga(X, Y, U))
minus_in_gga(X, 0, X) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y), Z) → U2_gga(X, Y, Z, minus_in_gga(X, Y, Z))
U2_gga(X, Y, Z, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U5_ggga(X, Y, Z, minus_out_gga(X, Y, U)) → U6_ggga(X, Y, Z, div_in_gga(U, s(Y), Z))
U6_ggga(X, Y, Z, div_out_gga(U, s(Y), Z)) → if_out_ggga(true, X, s(Y), s(Z))
U4_gga(X, Y, Z, if_out_ggga(B, X, s(Y), Z)) → div_out_gga(X, s(Y), Z)
MINUS_IN_GGA(s(X), s(Y), Z) → MINUS_IN_GGA(X, Y, Z)
MINUS_IN_GGA(s(X), s(Y)) → MINUS_IN_GGA(X, Y)
From the DPs we obtained the following set of size-change graphs:
LE_IN_GGA(s(X), s(Y), B) → LE_IN_GGA(X, Y, B)
div_in_gga(X, s(Y), Z) → U3_gga(X, Y, Z, le_in_gga(s(Y), X, B))
le_in_gga(0, Y, true) → le_out_gga(0, Y, true)
le_in_gga(s(X), 0, false) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y), B) → U1_gga(X, Y, B, le_in_gga(X, Y, B))
U1_gga(X, Y, B, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
U3_gga(X, Y, Z, le_out_gga(s(Y), X, B)) → U4_gga(X, Y, Z, if_in_ggga(B, X, s(Y), Z))
if_in_ggga(false, X, s(Y), 0) → if_out_ggga(false, X, s(Y), 0)
if_in_ggga(true, X, s(Y), s(Z)) → U5_ggga(X, Y, Z, minus_in_gga(X, Y, U))
minus_in_gga(X, 0, X) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y), Z) → U2_gga(X, Y, Z, minus_in_gga(X, Y, Z))
U2_gga(X, Y, Z, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U5_ggga(X, Y, Z, minus_out_gga(X, Y, U)) → U6_ggga(X, Y, Z, div_in_gga(U, s(Y), Z))
U6_ggga(X, Y, Z, div_out_gga(U, s(Y), Z)) → if_out_ggga(true, X, s(Y), s(Z))
U4_gga(X, Y, Z, if_out_ggga(B, X, s(Y), Z)) → div_out_gga(X, s(Y), Z)
LE_IN_GGA(s(X), s(Y), B) → LE_IN_GGA(X, Y, B)
LE_IN_GGA(s(X), s(Y)) → LE_IN_GGA(X, Y)
From the DPs we obtained the following set of size-change graphs:
U3_GGA(X, Y, Z, le_out_gga(s(Y), X, B)) → IF_IN_GGGA(B, X, s(Y), Z)
IF_IN_GGGA(true, X, s(Y), s(Z)) → U5_GGGA(X, Y, Z, minus_in_gga(X, Y, U))
U5_GGGA(X, Y, Z, minus_out_gga(X, Y, U)) → DIV_IN_GGA(U, s(Y), Z)
DIV_IN_GGA(X, s(Y), Z) → U3_GGA(X, Y, Z, le_in_gga(s(Y), X, B))
div_in_gga(X, s(Y), Z) → U3_gga(X, Y, Z, le_in_gga(s(Y), X, B))
le_in_gga(0, Y, true) → le_out_gga(0, Y, true)
le_in_gga(s(X), 0, false) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y), B) → U1_gga(X, Y, B, le_in_gga(X, Y, B))
U1_gga(X, Y, B, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
U3_gga(X, Y, Z, le_out_gga(s(Y), X, B)) → U4_gga(X, Y, Z, if_in_ggga(B, X, s(Y), Z))
if_in_ggga(false, X, s(Y), 0) → if_out_ggga(false, X, s(Y), 0)
if_in_ggga(true, X, s(Y), s(Z)) → U5_ggga(X, Y, Z, minus_in_gga(X, Y, U))
minus_in_gga(X, 0, X) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y), Z) → U2_gga(X, Y, Z, minus_in_gga(X, Y, Z))
U2_gga(X, Y, Z, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U5_ggga(X, Y, Z, minus_out_gga(X, Y, U)) → U6_ggga(X, Y, Z, div_in_gga(U, s(Y), Z))
U6_ggga(X, Y, Z, div_out_gga(U, s(Y), Z)) → if_out_ggga(true, X, s(Y), s(Z))
U4_gga(X, Y, Z, if_out_ggga(B, X, s(Y), Z)) → div_out_gga(X, s(Y), Z)
U3_GGA(X, Y, Z, le_out_gga(s(Y), X, B)) → IF_IN_GGGA(B, X, s(Y), Z)
IF_IN_GGGA(true, X, s(Y), s(Z)) → U5_GGGA(X, Y, Z, minus_in_gga(X, Y, U))
U5_GGGA(X, Y, Z, minus_out_gga(X, Y, U)) → DIV_IN_GGA(U, s(Y), Z)
DIV_IN_GGA(X, s(Y), Z) → U3_GGA(X, Y, Z, le_in_gga(s(Y), X, B))
minus_in_gga(X, 0, X) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y), Z) → U2_gga(X, Y, Z, minus_in_gga(X, Y, Z))
le_in_gga(s(X), 0, false) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y), B) → U1_gga(X, Y, B, le_in_gga(X, Y, B))
U2_gga(X, Y, Z, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U1_gga(X, Y, B, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
le_in_gga(0, Y, true) → le_out_gga(0, Y, true)
U3_GGA(X, Y, le_out_gga(s(Y), X, B)) → IF_IN_GGGA(B, X, s(Y))
IF_IN_GGGA(true, X, s(Y)) → U5_GGGA(X, Y, minus_in_gga(X, Y))
U5_GGGA(X, Y, minus_out_gga(X, Y, U)) → DIV_IN_GGA(U, s(Y))
DIV_IN_GGA(X, s(Y)) → U3_GGA(X, Y, le_in_gga(s(Y), X))
minus_in_gga(X, 0) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y)) → U2_gga(X, Y, minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y)) → U1_gga(X, Y, le_in_gga(X, Y))
U2_gga(X, Y, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U1_gga(X, Y, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
le_in_gga(0, Y) → le_out_gga(0, Y, true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0, x1, x2)
U1_gga(x0, x1, x2)
IF_IN_GGGA(true, x0, s(0)) → U5_GGGA(x0, 0, minus_out_gga(x0, 0, x0))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x0), s(x1), U2_gga(x0, x1, minus_in_gga(x0, x1)))
U3_GGA(X, Y, le_out_gga(s(Y), X, B)) → IF_IN_GGGA(B, X, s(Y))
U5_GGGA(X, Y, minus_out_gga(X, Y, U)) → DIV_IN_GGA(U, s(Y))
DIV_IN_GGA(X, s(Y)) → U3_GGA(X, Y, le_in_gga(s(Y), X))
IF_IN_GGGA(true, x0, s(0)) → U5_GGGA(x0, 0, minus_out_gga(x0, 0, x0))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x0), s(x1), U2_gga(x0, x1, minus_in_gga(x0, x1)))
minus_in_gga(X, 0) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y)) → U2_gga(X, Y, minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y)) → U1_gga(X, Y, le_in_gga(X, Y))
U2_gga(X, Y, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U1_gga(X, Y, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
le_in_gga(0, Y) → le_out_gga(0, Y, true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0, x1, x2)
U1_gga(x0, x1, x2)
DIV_IN_GGA(0, s(x0)) → U3_GGA(0, x0, le_out_gga(s(x0), 0, false))
DIV_IN_GGA(s(x1), s(x0)) → U3_GGA(s(x1), x0, U1_gga(x0, x1, le_in_gga(x0, x1)))
U3_GGA(X, Y, le_out_gga(s(Y), X, B)) → IF_IN_GGGA(B, X, s(Y))
U5_GGGA(X, Y, minus_out_gga(X, Y, U)) → DIV_IN_GGA(U, s(Y))
IF_IN_GGGA(true, x0, s(0)) → U5_GGGA(x0, 0, minus_out_gga(x0, 0, x0))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x0), s(x1), U2_gga(x0, x1, minus_in_gga(x0, x1)))
DIV_IN_GGA(0, s(x0)) → U3_GGA(0, x0, le_out_gga(s(x0), 0, false))
DIV_IN_GGA(s(x1), s(x0)) → U3_GGA(s(x1), x0, U1_gga(x0, x1, le_in_gga(x0, x1)))
minus_in_gga(X, 0) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y)) → U2_gga(X, Y, minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y)) → U1_gga(X, Y, le_in_gga(X, Y))
U2_gga(X, Y, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U1_gga(X, Y, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
le_in_gga(0, Y) → le_out_gga(0, Y, true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0, x1, x2)
U1_gga(x0, x1, x2)
U3_GGA(0, z0, le_out_gga(s(z0), 0, false)) → IF_IN_GGGA(false, 0, s(z0))
U3_GGA(s(z0), z1, le_out_gga(s(z1), s(z0), x2)) → IF_IN_GGGA(x2, s(z0), s(z1))
U5_GGGA(X, Y, minus_out_gga(X, Y, U)) → DIV_IN_GGA(U, s(Y))
IF_IN_GGGA(true, x0, s(0)) → U5_GGGA(x0, 0, minus_out_gga(x0, 0, x0))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x0), s(x1), U2_gga(x0, x1, minus_in_gga(x0, x1)))
DIV_IN_GGA(0, s(x0)) → U3_GGA(0, x0, le_out_gga(s(x0), 0, false))
DIV_IN_GGA(s(x1), s(x0)) → U3_GGA(s(x1), x0, U1_gga(x0, x1, le_in_gga(x0, x1)))
U3_GGA(0, z0, le_out_gga(s(z0), 0, false)) → IF_IN_GGGA(false, 0, s(z0))
U3_GGA(s(z0), z1, le_out_gga(s(z1), s(z0), x2)) → IF_IN_GGGA(x2, s(z0), s(z1))
minus_in_gga(X, 0) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y)) → U2_gga(X, Y, minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y)) → U1_gga(X, Y, le_in_gga(X, Y))
U2_gga(X, Y, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U1_gga(X, Y, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
le_in_gga(0, Y) → le_out_gga(0, Y, true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0, x1, x2)
U1_gga(x0, x1, x2)
DIV_IN_GGA(s(x1), s(x0)) → U3_GGA(s(x1), x0, U1_gga(x0, x1, le_in_gga(x0, x1)))
U3_GGA(s(z0), z1, le_out_gga(s(z1), s(z0), x2)) → IF_IN_GGGA(x2, s(z0), s(z1))
IF_IN_GGGA(true, x0, s(0)) → U5_GGGA(x0, 0, minus_out_gga(x0, 0, x0))
U5_GGGA(X, Y, minus_out_gga(X, Y, U)) → DIV_IN_GGA(U, s(Y))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x0), s(x1), U2_gga(x0, x1, minus_in_gga(x0, x1)))
minus_in_gga(X, 0) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y)) → U2_gga(X, Y, minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y)) → U1_gga(X, Y, le_in_gga(X, Y))
U2_gga(X, Y, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U1_gga(X, Y, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
le_in_gga(0, Y) → le_out_gga(0, Y, true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0, x1, x2)
U1_gga(x0, x1, x2)
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(s(z0), 0, minus_out_gga(s(z0), 0, s(z0)))
DIV_IN_GGA(s(x1), s(x0)) → U3_GGA(s(x1), x0, U1_gga(x0, x1, le_in_gga(x0, x1)))
U3_GGA(s(z0), z1, le_out_gga(s(z1), s(z0), x2)) → IF_IN_GGGA(x2, s(z0), s(z1))
U5_GGGA(X, Y, minus_out_gga(X, Y, U)) → DIV_IN_GGA(U, s(Y))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x0), s(x1), U2_gga(x0, x1, minus_in_gga(x0, x1)))
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(s(z0), 0, minus_out_gga(s(z0), 0, s(z0)))
minus_in_gga(X, 0) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y)) → U2_gga(X, Y, minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y)) → U1_gga(X, Y, le_in_gga(X, Y))
U2_gga(X, Y, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U1_gga(X, Y, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
le_in_gga(0, Y) → le_out_gga(0, Y, true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0, x1, x2)
U1_gga(x0, x1, x2)
U5_GGGA(s(z0), s(z1), minus_out_gga(s(z0), s(z1), x2)) → DIV_IN_GGA(x2, s(s(z1)))
U5_GGGA(s(z0), 0, minus_out_gga(s(z0), 0, s(z0))) → DIV_IN_GGA(s(z0), s(0))
DIV_IN_GGA(s(x1), s(x0)) → U3_GGA(s(x1), x0, U1_gga(x0, x1, le_in_gga(x0, x1)))
U3_GGA(s(z0), z1, le_out_gga(s(z1), s(z0), x2)) → IF_IN_GGGA(x2, s(z0), s(z1))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x0), s(x1), U2_gga(x0, x1, minus_in_gga(x0, x1)))
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(s(z0), 0, minus_out_gga(s(z0), 0, s(z0)))
U5_GGGA(s(z0), s(z1), minus_out_gga(s(z0), s(z1), x2)) → DIV_IN_GGA(x2, s(s(z1)))
U5_GGGA(s(z0), 0, minus_out_gga(s(z0), 0, s(z0))) → DIV_IN_GGA(s(z0), s(0))
minus_in_gga(X, 0) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y)) → U2_gga(X, Y, minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y)) → U1_gga(X, Y, le_in_gga(X, Y))
U2_gga(X, Y, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U1_gga(X, Y, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
le_in_gga(0, Y) → le_out_gga(0, Y, true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0, x1, x2)
U1_gga(x0, x1, x2)
DIV_IN_GGA(s(x0), s(s(z1))) → U3_GGA(s(x0), s(z1), U1_gga(s(z1), x0, le_in_gga(s(z1), x0)))
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, U1_gga(0, z0, le_in_gga(0, z0)))
U3_GGA(s(z0), z1, le_out_gga(s(z1), s(z0), x2)) → IF_IN_GGGA(x2, s(z0), s(z1))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x0), s(x1), U2_gga(x0, x1, minus_in_gga(x0, x1)))
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(s(z0), 0, minus_out_gga(s(z0), 0, s(z0)))
U5_GGGA(s(z0), s(z1), minus_out_gga(s(z0), s(z1), x2)) → DIV_IN_GGA(x2, s(s(z1)))
U5_GGGA(s(z0), 0, minus_out_gga(s(z0), 0, s(z0))) → DIV_IN_GGA(s(z0), s(0))
DIV_IN_GGA(s(x0), s(s(z1))) → U3_GGA(s(x0), s(z1), U1_gga(s(z1), x0, le_in_gga(s(z1), x0)))
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, U1_gga(0, z0, le_in_gga(0, z0)))
minus_in_gga(X, 0) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y)) → U2_gga(X, Y, minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y)) → U1_gga(X, Y, le_in_gga(X, Y))
U2_gga(X, Y, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U1_gga(X, Y, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
le_in_gga(0, Y) → le_out_gga(0, Y, true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0, x1, x2)
U1_gga(x0, x1, x2)
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, U1_gga(0, z0, le_out_gga(0, z0, true)))
U3_GGA(s(z0), z1, le_out_gga(s(z1), s(z0), x2)) → IF_IN_GGGA(x2, s(z0), s(z1))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x0), s(x1), U2_gga(x0, x1, minus_in_gga(x0, x1)))
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(s(z0), 0, minus_out_gga(s(z0), 0, s(z0)))
U5_GGGA(s(z0), s(z1), minus_out_gga(s(z0), s(z1), x2)) → DIV_IN_GGA(x2, s(s(z1)))
U5_GGGA(s(z0), 0, minus_out_gga(s(z0), 0, s(z0))) → DIV_IN_GGA(s(z0), s(0))
DIV_IN_GGA(s(x0), s(s(z1))) → U3_GGA(s(x0), s(z1), U1_gga(s(z1), x0, le_in_gga(s(z1), x0)))
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, U1_gga(0, z0, le_out_gga(0, z0, true)))
minus_in_gga(X, 0) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y)) → U2_gga(X, Y, minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y)) → U1_gga(X, Y, le_in_gga(X, Y))
U2_gga(X, Y, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U1_gga(X, Y, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
le_in_gga(0, Y) → le_out_gga(0, Y, true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0, x1, x2)
U1_gga(x0, x1, x2)
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, le_out_gga(s(0), s(z0), true))
U3_GGA(s(z0), z1, le_out_gga(s(z1), s(z0), x2)) → IF_IN_GGGA(x2, s(z0), s(z1))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x0), s(x1), U2_gga(x0, x1, minus_in_gga(x0, x1)))
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(s(z0), 0, minus_out_gga(s(z0), 0, s(z0)))
U5_GGGA(s(z0), s(z1), minus_out_gga(s(z0), s(z1), x2)) → DIV_IN_GGA(x2, s(s(z1)))
U5_GGGA(s(z0), 0, minus_out_gga(s(z0), 0, s(z0))) → DIV_IN_GGA(s(z0), s(0))
DIV_IN_GGA(s(x0), s(s(z1))) → U3_GGA(s(x0), s(z1), U1_gga(s(z1), x0, le_in_gga(s(z1), x0)))
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, le_out_gga(s(0), s(z0), true))
minus_in_gga(X, 0) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y)) → U2_gga(X, Y, minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y)) → U1_gga(X, Y, le_in_gga(X, Y))
U2_gga(X, Y, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U1_gga(X, Y, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
le_in_gga(0, Y) → le_out_gga(0, Y, true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0, x1, x2)
U1_gga(x0, x1, x2)
U3_GGA(s(z0), s(z1), le_out_gga(s(s(z1)), s(z0), x2)) → IF_IN_GGGA(x2, s(z0), s(s(z1)))
U3_GGA(s(z0), 0, le_out_gga(s(0), s(z0), true)) → IF_IN_GGGA(true, s(z0), s(0))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x0), s(x1), U2_gga(x0, x1, minus_in_gga(x0, x1)))
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(s(z0), 0, minus_out_gga(s(z0), 0, s(z0)))
U5_GGGA(s(z0), s(z1), minus_out_gga(s(z0), s(z1), x2)) → DIV_IN_GGA(x2, s(s(z1)))
U5_GGGA(s(z0), 0, minus_out_gga(s(z0), 0, s(z0))) → DIV_IN_GGA(s(z0), s(0))
DIV_IN_GGA(s(x0), s(s(z1))) → U3_GGA(s(x0), s(z1), U1_gga(s(z1), x0, le_in_gga(s(z1), x0)))
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, le_out_gga(s(0), s(z0), true))
U3_GGA(s(z0), s(z1), le_out_gga(s(s(z1)), s(z0), x2)) → IF_IN_GGGA(x2, s(z0), s(s(z1)))
U3_GGA(s(z0), 0, le_out_gga(s(0), s(z0), true)) → IF_IN_GGGA(true, s(z0), s(0))
minus_in_gga(X, 0) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y)) → U2_gga(X, Y, minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y)) → U1_gga(X, Y, le_in_gga(X, Y))
U2_gga(X, Y, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U1_gga(X, Y, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
le_in_gga(0, Y) → le_out_gga(0, Y, true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0, x1, x2)
U1_gga(x0, x1, x2)
U5_GGGA(s(z0), 0, minus_out_gga(s(z0), 0, s(z0))) → DIV_IN_GGA(s(z0), s(0))
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, le_out_gga(s(0), s(z0), true))
U3_GGA(s(z0), 0, le_out_gga(s(0), s(z0), true)) → IF_IN_GGGA(true, s(z0), s(0))
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(s(z0), 0, minus_out_gga(s(z0), 0, s(z0)))
minus_in_gga(X, 0) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y)) → U2_gga(X, Y, minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y)) → U1_gga(X, Y, le_in_gga(X, Y))
U2_gga(X, Y, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U1_gga(X, Y, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
le_in_gga(0, Y) → le_out_gga(0, Y, true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0, x1, x2)
U1_gga(x0, x1, x2)
U5_GGGA(s(z0), 0, minus_out_gga(s(z0), 0, s(z0))) → DIV_IN_GGA(s(z0), s(0))
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, le_out_gga(s(0), s(z0), true))
U3_GGA(s(z0), 0, le_out_gga(s(0), s(z0), true)) → IF_IN_GGGA(true, s(z0), s(0))
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(s(z0), 0, minus_out_gga(s(z0), 0, s(z0)))
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0, x1, x2)
U1_gga(x0, x1, x2)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0, x1, x2)
U1_gga(x0, x1, x2)
U5_GGGA(s(z0), 0, minus_out_gga(s(z0), 0, s(z0))) → DIV_IN_GGA(s(z0), s(0))
DIV_IN_GGA(s(z0), s(0)) → U3_GGA(s(z0), 0, le_out_gga(s(0), s(z0), true))
U3_GGA(s(z0), 0, le_out_gga(s(0), s(z0), true)) → IF_IN_GGGA(true, s(z0), s(0))
IF_IN_GGGA(true, s(z0), s(0)) → U5_GGGA(s(z0), 0, minus_out_gga(s(z0), 0, s(z0)))
U5_GGGA(s(z0), s(z1), minus_out_gga(s(z0), s(z1), x2)) → DIV_IN_GGA(x2, s(s(z1)))
DIV_IN_GGA(s(x0), s(s(z1))) → U3_GGA(s(x0), s(z1), U1_gga(s(z1), x0, le_in_gga(s(z1), x0)))
U3_GGA(s(z0), s(z1), le_out_gga(s(s(z1)), s(z0), x2)) → IF_IN_GGGA(x2, s(z0), s(s(z1)))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x0), s(x1), U2_gga(x0, x1, minus_in_gga(x0, x1)))
minus_in_gga(X, 0) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y)) → U2_gga(X, Y, minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y)) → U1_gga(X, Y, le_in_gga(X, Y))
U2_gga(X, Y, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U1_gga(X, Y, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
le_in_gga(0, Y) → le_out_gga(0, Y, true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0, x1, x2)
U1_gga(x0, x1, x2)
U5_GGGA(s(x0), s(x1), minus_out_gga(s(x0), s(x1), s(y_0))) → DIV_IN_GGA(s(y_0), s(s(x1)))
DIV_IN_GGA(s(x0), s(s(z1))) → U3_GGA(s(x0), s(z1), U1_gga(s(z1), x0, le_in_gga(s(z1), x0)))
U3_GGA(s(z0), s(z1), le_out_gga(s(s(z1)), s(z0), x2)) → IF_IN_GGGA(x2, s(z0), s(s(z1)))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x0), s(x1), U2_gga(x0, x1, minus_in_gga(x0, x1)))
U5_GGGA(s(x0), s(x1), minus_out_gga(s(x0), s(x1), s(y_0))) → DIV_IN_GGA(s(y_0), s(s(x1)))
minus_in_gga(X, 0) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y)) → U2_gga(X, Y, minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y)) → U1_gga(X, Y, le_in_gga(X, Y))
U2_gga(X, Y, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U1_gga(X, Y, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
le_in_gga(0, Y) → le_out_gga(0, Y, true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0, x1, x2)
U1_gga(x0, x1, x2)
U3_GGA(s(x0), s(x1), le_out_gga(s(s(x1)), s(x0), true)) → IF_IN_GGGA(true, s(x0), s(s(x1)))
DIV_IN_GGA(s(x0), s(s(z1))) → U3_GGA(s(x0), s(z1), U1_gga(s(z1), x0, le_in_gga(s(z1), x0)))
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x0), s(x1), U2_gga(x0, x1, minus_in_gga(x0, x1)))
U5_GGGA(s(x0), s(x1), minus_out_gga(s(x0), s(x1), s(y_0))) → DIV_IN_GGA(s(y_0), s(s(x1)))
U3_GGA(s(x0), s(x1), le_out_gga(s(s(x1)), s(x0), true)) → IF_IN_GGGA(true, s(x0), s(s(x1)))
minus_in_gga(X, 0) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y)) → U2_gga(X, Y, minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y)) → U1_gga(X, Y, le_in_gga(X, Y))
U2_gga(X, Y, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U1_gga(X, Y, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
le_in_gga(0, Y) → le_out_gga(0, Y, true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0, x1, x2)
U1_gga(x0, x1, x2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
IF_IN_GGGA(true, s(x0), s(s(x1))) → U5_GGGA(s(x0), s(x1), U2_gga(x0, x1, minus_in_gga(x0, x1)))
POL(0) = 0
POL(DIV_IN_GGA(x1, x2)) = x1
POL(IF_IN_GGGA(x1, x2, x3)) = x2
POL(U1_gga(x1, x2, x3)) = 0
POL(U2_gga(x1, x2, x3)) = x3
POL(U3_GGA(x1, x2, x3)) = x1
POL(U5_GGGA(x1, x2, x3)) = x3
POL(false) = 0
POL(le_in_gga(x1, x2)) = 0
POL(le_out_gga(x1, x2, x3)) = 0
POL(minus_in_gga(x1, x2)) = x1
POL(minus_out_gga(x1, x2, x3)) = x3
POL(s(x1)) = 1 + x1
POL(true) = 0
minus_in_gga(X, 0) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y)) → U2_gga(X, Y, minus_in_gga(X, Y))
U2_gga(X, Y, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
DIV_IN_GGA(s(x0), s(s(z1))) → U3_GGA(s(x0), s(z1), U1_gga(s(z1), x0, le_in_gga(s(z1), x0)))
U5_GGGA(s(x0), s(x1), minus_out_gga(s(x0), s(x1), s(y_0))) → DIV_IN_GGA(s(y_0), s(s(x1)))
U3_GGA(s(x0), s(x1), le_out_gga(s(s(x1)), s(x0), true)) → IF_IN_GGGA(true, s(x0), s(s(x1)))
minus_in_gga(X, 0) → minus_out_gga(X, 0, X)
minus_in_gga(s(X), s(Y)) → U2_gga(X, Y, minus_in_gga(X, Y))
le_in_gga(s(X), 0) → le_out_gga(s(X), 0, false)
le_in_gga(s(X), s(Y)) → U1_gga(X, Y, le_in_gga(X, Y))
U2_gga(X, Y, minus_out_gga(X, Y, Z)) → minus_out_gga(s(X), s(Y), Z)
U1_gga(X, Y, le_out_gga(X, Y, B)) → le_out_gga(s(X), s(Y), B)
le_in_gga(0, Y) → le_out_gga(0, Y, true)
minus_in_gga(x0, x1)
le_in_gga(x0, x1)
U2_gga(x0, x1, x2)
U1_gga(x0, x1, x2)