0 Prolog
↳1 CutEliminatorProof (⇐)
↳2 Prolog
↳3 PrologToPiTRSProof (⇐)
↳4 PiTRS
↳5 DependencyPairsProof (⇔)
↳6 PiDP
↳7 DependencyGraphProof (⇔)
↳8 PiDP
↳9 UsableRulesProof (⇔)
↳10 PiDP
↳11 PiDPToQDPProof (⇐)
↳12 QDP
↳13 QDPOrderProof (⇔)
↳14 QDP
↳15 DependencyGraphProof (⇔)
↳16 QDP
↳17 UsableRulesProof (⇔)
↳18 QDP
↳19 QReductionProof (⇔)
↳20 QDP
↳21 Instantiation (⇔)
↳22 QDP
↳23 Rewriting (⇔)
↳24 QDP
↳25 UsableRulesProof (⇔)
↳26 QDP
↳27 QReductionProof (⇔)
↳28 QDP
↳29 Rewriting (⇔)
↳30 QDP
↳31 UsableRulesProof (⇔)
↳32 QDP
↳33 QReductionProof (⇔)
↳34 QDP
↳35 Instantiation (⇔)
↳36 QDP
↳37 Instantiation (⇔)
↳38 QDP
↳39 DependencyGraphProof (⇔)
↳40 TRUE
↳41 PrologToPiTRSProof (⇐)
↳42 PiTRS
↳43 DependencyPairsProof (⇔)
↳44 PiDP
↳45 DependencyGraphProof (⇔)
↳46 PiDP
↳47 UsableRulesProof (⇔)
↳48 PiDP
↳49 PiDPToQDPProof (⇐)
↳50 QDP
↳51 QDPOrderProof (⇔)
↳52 QDP
↳53 DependencyGraphProof (⇔)
↳54 QDP
↳55 UsableRulesProof (⇔)
↳56 QDP
↳57 QReductionProof (⇔)
↳58 QDP
div_in_gga(X, Y, Z) → U1_gga(X, Y, Z, quot_in_ggga(X, Y, Y, Z))
quot_in_ggga(0, s(Y), s(Z), R) → U2_ggga(Y, Z, R, eq_in_ag(R, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U2_ggga(Y, Z, R, eq_out_ag(R, 0)) → quot_out_ggga(0, s(Y), s(Z), R)
quot_in_ggga(X, 0, Z, U) → U3_ggga(X, Z, U, eq_in_ga(Z, s(X1)))
eq_in_ga(X, X) → eq_out_ga(X, X)
U3_ggga(X, Z, U, eq_out_ga(Z, s(X1))) → U4_ggga(X, Z, U, p_in_aa(U, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U4_ggga(X, Z, U, p_out_aa(U, P)) → U5_ggga(X, Z, U, quot_in_ggga(X, Z, Z, P))
quot_in_ggga(s(X), Y, Z, U) → U6_ggga(X, Y, Z, U, p_in_ga(Y, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ggga(X, Y, Z, U, p_out_ga(Y, P)) → U7_ggga(X, Y, Z, U, quot_in_ggga(X, P, Z, U))
U7_ggga(X, Y, Z, U, quot_out_ggga(X, P, Z, U)) → quot_out_ggga(s(X), Y, Z, U)
U5_ggga(X, Z, U, quot_out_ggga(X, Z, Z, P)) → quot_out_ggga(X, 0, Z, U)
U1_gga(X, Y, Z, quot_out_ggga(X, Y, Y, Z)) → div_out_gga(X, Y, Z)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
div_in_gga(X, Y, Z) → U1_gga(X, Y, Z, quot_in_ggga(X, Y, Y, Z))
quot_in_ggga(0, s(Y), s(Z), R) → U2_ggga(Y, Z, R, eq_in_ag(R, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U2_ggga(Y, Z, R, eq_out_ag(R, 0)) → quot_out_ggga(0, s(Y), s(Z), R)
quot_in_ggga(X, 0, Z, U) → U3_ggga(X, Z, U, eq_in_ga(Z, s(X1)))
eq_in_ga(X, X) → eq_out_ga(X, X)
U3_ggga(X, Z, U, eq_out_ga(Z, s(X1))) → U4_ggga(X, Z, U, p_in_aa(U, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U4_ggga(X, Z, U, p_out_aa(U, P)) → U5_ggga(X, Z, U, quot_in_ggga(X, Z, Z, P))
quot_in_ggga(s(X), Y, Z, U) → U6_ggga(X, Y, Z, U, p_in_ga(Y, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ggga(X, Y, Z, U, p_out_ga(Y, P)) → U7_ggga(X, Y, Z, U, quot_in_ggga(X, P, Z, U))
U7_ggga(X, Y, Z, U, quot_out_ggga(X, P, Z, U)) → quot_out_ggga(s(X), Y, Z, U)
U5_ggga(X, Z, U, quot_out_ggga(X, Z, Z, P)) → quot_out_ggga(X, 0, Z, U)
U1_gga(X, Y, Z, quot_out_ggga(X, Y, Y, Z)) → div_out_gga(X, Y, Z)
DIV_IN_GGA(X, Y, Z) → U1_GGA(X, Y, Z, quot_in_ggga(X, Y, Y, Z))
DIV_IN_GGA(X, Y, Z) → QUOT_IN_GGGA(X, Y, Y, Z)
QUOT_IN_GGGA(0, s(Y), s(Z), R) → U2_GGGA(Y, Z, R, eq_in_ag(R, 0))
QUOT_IN_GGGA(0, s(Y), s(Z), R) → EQ_IN_AG(R, 0)
QUOT_IN_GGGA(X, 0, Z, U) → U3_GGGA(X, Z, U, eq_in_ga(Z, s(X1)))
QUOT_IN_GGGA(X, 0, Z, U) → EQ_IN_GA(Z, s(X1))
U3_GGGA(X, Z, U, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, U, p_in_aa(U, P))
U3_GGGA(X, Z, U, eq_out_ga(Z, s(X1))) → P_IN_AA(U, P)
U4_GGGA(X, Z, U, p_out_aa(U, P)) → U5_GGGA(X, Z, U, quot_in_ggga(X, Z, Z, P))
U4_GGGA(X, Z, U, p_out_aa(U, P)) → QUOT_IN_GGGA(X, Z, Z, P)
QUOT_IN_GGGA(s(X), Y, Z, U) → U6_GGGA(X, Y, Z, U, p_in_ga(Y, P))
QUOT_IN_GGGA(s(X), Y, Z, U) → P_IN_GA(Y, P)
U6_GGGA(X, Y, Z, U, p_out_ga(Y, P)) → U7_GGGA(X, Y, Z, U, quot_in_ggga(X, P, Z, U))
U6_GGGA(X, Y, Z, U, p_out_ga(Y, P)) → QUOT_IN_GGGA(X, P, Z, U)
div_in_gga(X, Y, Z) → U1_gga(X, Y, Z, quot_in_ggga(X, Y, Y, Z))
quot_in_ggga(0, s(Y), s(Z), R) → U2_ggga(Y, Z, R, eq_in_ag(R, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U2_ggga(Y, Z, R, eq_out_ag(R, 0)) → quot_out_ggga(0, s(Y), s(Z), R)
quot_in_ggga(X, 0, Z, U) → U3_ggga(X, Z, U, eq_in_ga(Z, s(X1)))
eq_in_ga(X, X) → eq_out_ga(X, X)
U3_ggga(X, Z, U, eq_out_ga(Z, s(X1))) → U4_ggga(X, Z, U, p_in_aa(U, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U4_ggga(X, Z, U, p_out_aa(U, P)) → U5_ggga(X, Z, U, quot_in_ggga(X, Z, Z, P))
quot_in_ggga(s(X), Y, Z, U) → U6_ggga(X, Y, Z, U, p_in_ga(Y, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ggga(X, Y, Z, U, p_out_ga(Y, P)) → U7_ggga(X, Y, Z, U, quot_in_ggga(X, P, Z, U))
U7_ggga(X, Y, Z, U, quot_out_ggga(X, P, Z, U)) → quot_out_ggga(s(X), Y, Z, U)
U5_ggga(X, Z, U, quot_out_ggga(X, Z, Z, P)) → quot_out_ggga(X, 0, Z, U)
U1_gga(X, Y, Z, quot_out_ggga(X, Y, Y, Z)) → div_out_gga(X, Y, Z)
DIV_IN_GGA(X, Y, Z) → U1_GGA(X, Y, Z, quot_in_ggga(X, Y, Y, Z))
DIV_IN_GGA(X, Y, Z) → QUOT_IN_GGGA(X, Y, Y, Z)
QUOT_IN_GGGA(0, s(Y), s(Z), R) → U2_GGGA(Y, Z, R, eq_in_ag(R, 0))
QUOT_IN_GGGA(0, s(Y), s(Z), R) → EQ_IN_AG(R, 0)
QUOT_IN_GGGA(X, 0, Z, U) → U3_GGGA(X, Z, U, eq_in_ga(Z, s(X1)))
QUOT_IN_GGGA(X, 0, Z, U) → EQ_IN_GA(Z, s(X1))
U3_GGGA(X, Z, U, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, U, p_in_aa(U, P))
U3_GGGA(X, Z, U, eq_out_ga(Z, s(X1))) → P_IN_AA(U, P)
U4_GGGA(X, Z, U, p_out_aa(U, P)) → U5_GGGA(X, Z, U, quot_in_ggga(X, Z, Z, P))
U4_GGGA(X, Z, U, p_out_aa(U, P)) → QUOT_IN_GGGA(X, Z, Z, P)
QUOT_IN_GGGA(s(X), Y, Z, U) → U6_GGGA(X, Y, Z, U, p_in_ga(Y, P))
QUOT_IN_GGGA(s(X), Y, Z, U) → P_IN_GA(Y, P)
U6_GGGA(X, Y, Z, U, p_out_ga(Y, P)) → U7_GGGA(X, Y, Z, U, quot_in_ggga(X, P, Z, U))
U6_GGGA(X, Y, Z, U, p_out_ga(Y, P)) → QUOT_IN_GGGA(X, P, Z, U)
div_in_gga(X, Y, Z) → U1_gga(X, Y, Z, quot_in_ggga(X, Y, Y, Z))
quot_in_ggga(0, s(Y), s(Z), R) → U2_ggga(Y, Z, R, eq_in_ag(R, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U2_ggga(Y, Z, R, eq_out_ag(R, 0)) → quot_out_ggga(0, s(Y), s(Z), R)
quot_in_ggga(X, 0, Z, U) → U3_ggga(X, Z, U, eq_in_ga(Z, s(X1)))
eq_in_ga(X, X) → eq_out_ga(X, X)
U3_ggga(X, Z, U, eq_out_ga(Z, s(X1))) → U4_ggga(X, Z, U, p_in_aa(U, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U4_ggga(X, Z, U, p_out_aa(U, P)) → U5_ggga(X, Z, U, quot_in_ggga(X, Z, Z, P))
quot_in_ggga(s(X), Y, Z, U) → U6_ggga(X, Y, Z, U, p_in_ga(Y, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ggga(X, Y, Z, U, p_out_ga(Y, P)) → U7_ggga(X, Y, Z, U, quot_in_ggga(X, P, Z, U))
U7_ggga(X, Y, Z, U, quot_out_ggga(X, P, Z, U)) → quot_out_ggga(s(X), Y, Z, U)
U5_ggga(X, Z, U, quot_out_ggga(X, Z, Z, P)) → quot_out_ggga(X, 0, Z, U)
U1_gga(X, Y, Z, quot_out_ggga(X, Y, Y, Z)) → div_out_gga(X, Y, Z)
QUOT_IN_GGGA(X, 0, Z, U) → U3_GGGA(X, Z, U, eq_in_ga(Z, s(X1)))
U3_GGGA(X, Z, U, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, U, p_in_aa(U, P))
U4_GGGA(X, Z, U, p_out_aa(U, P)) → QUOT_IN_GGGA(X, Z, Z, P)
QUOT_IN_GGGA(s(X), Y, Z, U) → U6_GGGA(X, Y, Z, U, p_in_ga(Y, P))
U6_GGGA(X, Y, Z, U, p_out_ga(Y, P)) → QUOT_IN_GGGA(X, P, Z, U)
div_in_gga(X, Y, Z) → U1_gga(X, Y, Z, quot_in_ggga(X, Y, Y, Z))
quot_in_ggga(0, s(Y), s(Z), R) → U2_ggga(Y, Z, R, eq_in_ag(R, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U2_ggga(Y, Z, R, eq_out_ag(R, 0)) → quot_out_ggga(0, s(Y), s(Z), R)
quot_in_ggga(X, 0, Z, U) → U3_ggga(X, Z, U, eq_in_ga(Z, s(X1)))
eq_in_ga(X, X) → eq_out_ga(X, X)
U3_ggga(X, Z, U, eq_out_ga(Z, s(X1))) → U4_ggga(X, Z, U, p_in_aa(U, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U4_ggga(X, Z, U, p_out_aa(U, P)) → U5_ggga(X, Z, U, quot_in_ggga(X, Z, Z, P))
quot_in_ggga(s(X), Y, Z, U) → U6_ggga(X, Y, Z, U, p_in_ga(Y, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ggga(X, Y, Z, U, p_out_ga(Y, P)) → U7_ggga(X, Y, Z, U, quot_in_ggga(X, P, Z, U))
U7_ggga(X, Y, Z, U, quot_out_ggga(X, P, Z, U)) → quot_out_ggga(s(X), Y, Z, U)
U5_ggga(X, Z, U, quot_out_ggga(X, Z, Z, P)) → quot_out_ggga(X, 0, Z, U)
U1_gga(X, Y, Z, quot_out_ggga(X, Y, Y, Z)) → div_out_gga(X, Y, Z)
QUOT_IN_GGGA(X, 0, Z, U) → U3_GGGA(X, Z, U, eq_in_ga(Z, s(X1)))
U3_GGGA(X, Z, U, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, U, p_in_aa(U, P))
U4_GGGA(X, Z, U, p_out_aa(U, P)) → QUOT_IN_GGGA(X, Z, Z, P)
QUOT_IN_GGGA(s(X), Y, Z, U) → U6_GGGA(X, Y, Z, U, p_in_ga(Y, P))
U6_GGGA(X, Y, Z, U, p_out_ga(Y, P)) → QUOT_IN_GGGA(X, P, Z, U)
eq_in_ga(X, X) → eq_out_ga(X, X)
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
QUOT_IN_GGGA(X, 0, Z) → U3_GGGA(X, Z, eq_in_ga(Z))
U3_GGGA(X, Z, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, p_in_aa)
U4_GGGA(X, Z, p_out_aa) → QUOT_IN_GGGA(X, Z, Z)
QUOT_IN_GGGA(s(X), Y, Z) → U6_GGGA(X, Y, Z, p_in_ga(Y))
U6_GGGA(X, Y, Z, p_out_ga(Y, P)) → QUOT_IN_GGGA(X, P, Z)
eq_in_ga(X) → eq_out_ga(X, X)
p_in_aa → p_out_aa
p_in_ga(0) → p_out_ga(0, 0)
p_in_ga(s(X)) → p_out_ga(s(X), X)
eq_in_ga(x0)
p_in_aa
p_in_ga(x0)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
QUOT_IN_GGGA(s(X), Y, Z) → U6_GGGA(X, Y, Z, p_in_ga(Y))
POL(0) = 0
POL(QUOT_IN_GGGA(x1, x2, x3)) = x1
POL(U3_GGGA(x1, x2, x3)) = x1
POL(U4_GGGA(x1, x2, x3)) = x1
POL(U6_GGGA(x1, x2, x3, x4)) = x1
POL(eq_in_ga(x1)) = 0
POL(eq_out_ga(x1, x2)) = 0
POL(p_in_aa) = 0
POL(p_in_ga(x1)) = 0
POL(p_out_aa) = 0
POL(p_out_ga(x1, x2)) = 0
POL(s(x1)) = 1 + x1
QUOT_IN_GGGA(X, 0, Z) → U3_GGGA(X, Z, eq_in_ga(Z))
U3_GGGA(X, Z, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, p_in_aa)
U4_GGGA(X, Z, p_out_aa) → QUOT_IN_GGGA(X, Z, Z)
U6_GGGA(X, Y, Z, p_out_ga(Y, P)) → QUOT_IN_GGGA(X, P, Z)
eq_in_ga(X) → eq_out_ga(X, X)
p_in_aa → p_out_aa
p_in_ga(0) → p_out_ga(0, 0)
p_in_ga(s(X)) → p_out_ga(s(X), X)
eq_in_ga(x0)
p_in_aa
p_in_ga(x0)
U3_GGGA(X, Z, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, p_in_aa)
U4_GGGA(X, Z, p_out_aa) → QUOT_IN_GGGA(X, Z, Z)
QUOT_IN_GGGA(X, 0, Z) → U3_GGGA(X, Z, eq_in_ga(Z))
eq_in_ga(X) → eq_out_ga(X, X)
p_in_aa → p_out_aa
p_in_ga(0) → p_out_ga(0, 0)
p_in_ga(s(X)) → p_out_ga(s(X), X)
eq_in_ga(x0)
p_in_aa
p_in_ga(x0)
U3_GGGA(X, Z, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, p_in_aa)
U4_GGGA(X, Z, p_out_aa) → QUOT_IN_GGGA(X, Z, Z)
QUOT_IN_GGGA(X, 0, Z) → U3_GGGA(X, Z, eq_in_ga(Z))
eq_in_ga(X) → eq_out_ga(X, X)
p_in_aa → p_out_aa
eq_in_ga(x0)
p_in_aa
p_in_ga(x0)
p_in_ga(x0)
U3_GGGA(X, Z, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, p_in_aa)
U4_GGGA(X, Z, p_out_aa) → QUOT_IN_GGGA(X, Z, Z)
QUOT_IN_GGGA(X, 0, Z) → U3_GGGA(X, Z, eq_in_ga(Z))
eq_in_ga(X) → eq_out_ga(X, X)
p_in_aa → p_out_aa
eq_in_ga(x0)
p_in_aa
QUOT_IN_GGGA(z0, 0, 0) → U3_GGGA(z0, 0, eq_in_ga(0))
U3_GGGA(X, Z, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, p_in_aa)
U4_GGGA(X, Z, p_out_aa) → QUOT_IN_GGGA(X, Z, Z)
QUOT_IN_GGGA(z0, 0, 0) → U3_GGGA(z0, 0, eq_in_ga(0))
eq_in_ga(X) → eq_out_ga(X, X)
p_in_aa → p_out_aa
eq_in_ga(x0)
p_in_aa
U3_GGGA(X, Z, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, p_out_aa)
U4_GGGA(X, Z, p_out_aa) → QUOT_IN_GGGA(X, Z, Z)
QUOT_IN_GGGA(X, 0, Z) → U3_GGGA(X, Z, eq_in_ga(Z))
U3_GGGA(X, Z, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, p_out_aa)
eq_in_ga(X) → eq_out_ga(X, X)
p_in_aa → p_out_aa
eq_in_ga(x0)
p_in_aa
U4_GGGA(X, Z, p_out_aa) → QUOT_IN_GGGA(X, Z, Z)
QUOT_IN_GGGA(X, 0, Z) → U3_GGGA(X, Z, eq_in_ga(Z))
U3_GGGA(X, Z, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, p_out_aa)
eq_in_ga(X) → eq_out_ga(X, X)
eq_in_ga(x0)
p_in_aa
p_in_aa
U4_GGGA(X, Z, p_out_aa) → QUOT_IN_GGGA(X, Z, Z)
QUOT_IN_GGGA(X, 0, Z) → U3_GGGA(X, Z, eq_in_ga(Z))
U3_GGGA(X, Z, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, p_out_aa)
eq_in_ga(X) → eq_out_ga(X, X)
eq_in_ga(x0)
QUOT_IN_GGGA(X, 0, Z) → U3_GGGA(X, Z, eq_out_ga(Z, Z))
U4_GGGA(X, Z, p_out_aa) → QUOT_IN_GGGA(X, Z, Z)
U3_GGGA(X, Z, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, p_out_aa)
QUOT_IN_GGGA(X, 0, Z) → U3_GGGA(X, Z, eq_out_ga(Z, Z))
eq_in_ga(X) → eq_out_ga(X, X)
eq_in_ga(x0)
U4_GGGA(X, Z, p_out_aa) → QUOT_IN_GGGA(X, Z, Z)
U3_GGGA(X, Z, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, p_out_aa)
QUOT_IN_GGGA(X, 0, Z) → U3_GGGA(X, Z, eq_out_ga(Z, Z))
eq_in_ga(x0)
eq_in_ga(x0)
U4_GGGA(X, Z, p_out_aa) → QUOT_IN_GGGA(X, Z, Z)
U3_GGGA(X, Z, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, p_out_aa)
QUOT_IN_GGGA(X, 0, Z) → U3_GGGA(X, Z, eq_out_ga(Z, Z))
U3_GGGA(z0, s(x2), eq_out_ga(s(x2), s(x2))) → U4_GGGA(z0, s(x2), p_out_aa)
U4_GGGA(X, Z, p_out_aa) → QUOT_IN_GGGA(X, Z, Z)
QUOT_IN_GGGA(X, 0, Z) → U3_GGGA(X, Z, eq_out_ga(Z, Z))
U3_GGGA(z0, s(x2), eq_out_ga(s(x2), s(x2))) → U4_GGGA(z0, s(x2), p_out_aa)
U4_GGGA(z0, s(z1), p_out_aa) → QUOT_IN_GGGA(z0, s(z1), s(z1))
QUOT_IN_GGGA(X, 0, Z) → U3_GGGA(X, Z, eq_out_ga(Z, Z))
U3_GGGA(z0, s(x2), eq_out_ga(s(x2), s(x2))) → U4_GGGA(z0, s(x2), p_out_aa)
U4_GGGA(z0, s(z1), p_out_aa) → QUOT_IN_GGGA(z0, s(z1), s(z1))
div_in_gga(X, Y, Z) → U1_gga(X, Y, Z, quot_in_ggga(X, Y, Y, Z))
quot_in_ggga(0, s(Y), s(Z), R) → U2_ggga(Y, Z, R, eq_in_ag(R, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U2_ggga(Y, Z, R, eq_out_ag(R, 0)) → quot_out_ggga(0, s(Y), s(Z), R)
quot_in_ggga(X, 0, Z, U) → U3_ggga(X, Z, U, eq_in_ga(Z, s(X1)))
eq_in_ga(X, X) → eq_out_ga(X, X)
U3_ggga(X, Z, U, eq_out_ga(Z, s(X1))) → U4_ggga(X, Z, U, p_in_aa(U, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U4_ggga(X, Z, U, p_out_aa(U, P)) → U5_ggga(X, Z, U, quot_in_ggga(X, Z, Z, P))
quot_in_ggga(s(X), Y, Z, U) → U6_ggga(X, Y, Z, U, p_in_ga(Y, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ggga(X, Y, Z, U, p_out_ga(Y, P)) → U7_ggga(X, Y, Z, U, quot_in_ggga(X, P, Z, U))
U7_ggga(X, Y, Z, U, quot_out_ggga(X, P, Z, U)) → quot_out_ggga(s(X), Y, Z, U)
U5_ggga(X, Z, U, quot_out_ggga(X, Z, Z, P)) → quot_out_ggga(X, 0, Z, U)
U1_gga(X, Y, Z, quot_out_ggga(X, Y, Y, Z)) → div_out_gga(X, Y, Z)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
div_in_gga(X, Y, Z) → U1_gga(X, Y, Z, quot_in_ggga(X, Y, Y, Z))
quot_in_ggga(0, s(Y), s(Z), R) → U2_ggga(Y, Z, R, eq_in_ag(R, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U2_ggga(Y, Z, R, eq_out_ag(R, 0)) → quot_out_ggga(0, s(Y), s(Z), R)
quot_in_ggga(X, 0, Z, U) → U3_ggga(X, Z, U, eq_in_ga(Z, s(X1)))
eq_in_ga(X, X) → eq_out_ga(X, X)
U3_ggga(X, Z, U, eq_out_ga(Z, s(X1))) → U4_ggga(X, Z, U, p_in_aa(U, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U4_ggga(X, Z, U, p_out_aa(U, P)) → U5_ggga(X, Z, U, quot_in_ggga(X, Z, Z, P))
quot_in_ggga(s(X), Y, Z, U) → U6_ggga(X, Y, Z, U, p_in_ga(Y, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ggga(X, Y, Z, U, p_out_ga(Y, P)) → U7_ggga(X, Y, Z, U, quot_in_ggga(X, P, Z, U))
U7_ggga(X, Y, Z, U, quot_out_ggga(X, P, Z, U)) → quot_out_ggga(s(X), Y, Z, U)
U5_ggga(X, Z, U, quot_out_ggga(X, Z, Z, P)) → quot_out_ggga(X, 0, Z, U)
U1_gga(X, Y, Z, quot_out_ggga(X, Y, Y, Z)) → div_out_gga(X, Y, Z)
DIV_IN_GGA(X, Y, Z) → U1_GGA(X, Y, Z, quot_in_ggga(X, Y, Y, Z))
DIV_IN_GGA(X, Y, Z) → QUOT_IN_GGGA(X, Y, Y, Z)
QUOT_IN_GGGA(0, s(Y), s(Z), R) → U2_GGGA(Y, Z, R, eq_in_ag(R, 0))
QUOT_IN_GGGA(0, s(Y), s(Z), R) → EQ_IN_AG(R, 0)
QUOT_IN_GGGA(X, 0, Z, U) → U3_GGGA(X, Z, U, eq_in_ga(Z, s(X1)))
QUOT_IN_GGGA(X, 0, Z, U) → EQ_IN_GA(Z, s(X1))
U3_GGGA(X, Z, U, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, U, p_in_aa(U, P))
U3_GGGA(X, Z, U, eq_out_ga(Z, s(X1))) → P_IN_AA(U, P)
U4_GGGA(X, Z, U, p_out_aa(U, P)) → U5_GGGA(X, Z, U, quot_in_ggga(X, Z, Z, P))
U4_GGGA(X, Z, U, p_out_aa(U, P)) → QUOT_IN_GGGA(X, Z, Z, P)
QUOT_IN_GGGA(s(X), Y, Z, U) → U6_GGGA(X, Y, Z, U, p_in_ga(Y, P))
QUOT_IN_GGGA(s(X), Y, Z, U) → P_IN_GA(Y, P)
U6_GGGA(X, Y, Z, U, p_out_ga(Y, P)) → U7_GGGA(X, Y, Z, U, quot_in_ggga(X, P, Z, U))
U6_GGGA(X, Y, Z, U, p_out_ga(Y, P)) → QUOT_IN_GGGA(X, P, Z, U)
div_in_gga(X, Y, Z) → U1_gga(X, Y, Z, quot_in_ggga(X, Y, Y, Z))
quot_in_ggga(0, s(Y), s(Z), R) → U2_ggga(Y, Z, R, eq_in_ag(R, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U2_ggga(Y, Z, R, eq_out_ag(R, 0)) → quot_out_ggga(0, s(Y), s(Z), R)
quot_in_ggga(X, 0, Z, U) → U3_ggga(X, Z, U, eq_in_ga(Z, s(X1)))
eq_in_ga(X, X) → eq_out_ga(X, X)
U3_ggga(X, Z, U, eq_out_ga(Z, s(X1))) → U4_ggga(X, Z, U, p_in_aa(U, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U4_ggga(X, Z, U, p_out_aa(U, P)) → U5_ggga(X, Z, U, quot_in_ggga(X, Z, Z, P))
quot_in_ggga(s(X), Y, Z, U) → U6_ggga(X, Y, Z, U, p_in_ga(Y, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ggga(X, Y, Z, U, p_out_ga(Y, P)) → U7_ggga(X, Y, Z, U, quot_in_ggga(X, P, Z, U))
U7_ggga(X, Y, Z, U, quot_out_ggga(X, P, Z, U)) → quot_out_ggga(s(X), Y, Z, U)
U5_ggga(X, Z, U, quot_out_ggga(X, Z, Z, P)) → quot_out_ggga(X, 0, Z, U)
U1_gga(X, Y, Z, quot_out_ggga(X, Y, Y, Z)) → div_out_gga(X, Y, Z)
DIV_IN_GGA(X, Y, Z) → U1_GGA(X, Y, Z, quot_in_ggga(X, Y, Y, Z))
DIV_IN_GGA(X, Y, Z) → QUOT_IN_GGGA(X, Y, Y, Z)
QUOT_IN_GGGA(0, s(Y), s(Z), R) → U2_GGGA(Y, Z, R, eq_in_ag(R, 0))
QUOT_IN_GGGA(0, s(Y), s(Z), R) → EQ_IN_AG(R, 0)
QUOT_IN_GGGA(X, 0, Z, U) → U3_GGGA(X, Z, U, eq_in_ga(Z, s(X1)))
QUOT_IN_GGGA(X, 0, Z, U) → EQ_IN_GA(Z, s(X1))
U3_GGGA(X, Z, U, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, U, p_in_aa(U, P))
U3_GGGA(X, Z, U, eq_out_ga(Z, s(X1))) → P_IN_AA(U, P)
U4_GGGA(X, Z, U, p_out_aa(U, P)) → U5_GGGA(X, Z, U, quot_in_ggga(X, Z, Z, P))
U4_GGGA(X, Z, U, p_out_aa(U, P)) → QUOT_IN_GGGA(X, Z, Z, P)
QUOT_IN_GGGA(s(X), Y, Z, U) → U6_GGGA(X, Y, Z, U, p_in_ga(Y, P))
QUOT_IN_GGGA(s(X), Y, Z, U) → P_IN_GA(Y, P)
U6_GGGA(X, Y, Z, U, p_out_ga(Y, P)) → U7_GGGA(X, Y, Z, U, quot_in_ggga(X, P, Z, U))
U6_GGGA(X, Y, Z, U, p_out_ga(Y, P)) → QUOT_IN_GGGA(X, P, Z, U)
div_in_gga(X, Y, Z) → U1_gga(X, Y, Z, quot_in_ggga(X, Y, Y, Z))
quot_in_ggga(0, s(Y), s(Z), R) → U2_ggga(Y, Z, R, eq_in_ag(R, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U2_ggga(Y, Z, R, eq_out_ag(R, 0)) → quot_out_ggga(0, s(Y), s(Z), R)
quot_in_ggga(X, 0, Z, U) → U3_ggga(X, Z, U, eq_in_ga(Z, s(X1)))
eq_in_ga(X, X) → eq_out_ga(X, X)
U3_ggga(X, Z, U, eq_out_ga(Z, s(X1))) → U4_ggga(X, Z, U, p_in_aa(U, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U4_ggga(X, Z, U, p_out_aa(U, P)) → U5_ggga(X, Z, U, quot_in_ggga(X, Z, Z, P))
quot_in_ggga(s(X), Y, Z, U) → U6_ggga(X, Y, Z, U, p_in_ga(Y, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ggga(X, Y, Z, U, p_out_ga(Y, P)) → U7_ggga(X, Y, Z, U, quot_in_ggga(X, P, Z, U))
U7_ggga(X, Y, Z, U, quot_out_ggga(X, P, Z, U)) → quot_out_ggga(s(X), Y, Z, U)
U5_ggga(X, Z, U, quot_out_ggga(X, Z, Z, P)) → quot_out_ggga(X, 0, Z, U)
U1_gga(X, Y, Z, quot_out_ggga(X, Y, Y, Z)) → div_out_gga(X, Y, Z)
QUOT_IN_GGGA(X, 0, Z, U) → U3_GGGA(X, Z, U, eq_in_ga(Z, s(X1)))
U3_GGGA(X, Z, U, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, U, p_in_aa(U, P))
U4_GGGA(X, Z, U, p_out_aa(U, P)) → QUOT_IN_GGGA(X, Z, Z, P)
QUOT_IN_GGGA(s(X), Y, Z, U) → U6_GGGA(X, Y, Z, U, p_in_ga(Y, P))
U6_GGGA(X, Y, Z, U, p_out_ga(Y, P)) → QUOT_IN_GGGA(X, P, Z, U)
div_in_gga(X, Y, Z) → U1_gga(X, Y, Z, quot_in_ggga(X, Y, Y, Z))
quot_in_ggga(0, s(Y), s(Z), R) → U2_ggga(Y, Z, R, eq_in_ag(R, 0))
eq_in_ag(X, X) → eq_out_ag(X, X)
U2_ggga(Y, Z, R, eq_out_ag(R, 0)) → quot_out_ggga(0, s(Y), s(Z), R)
quot_in_ggga(X, 0, Z, U) → U3_ggga(X, Z, U, eq_in_ga(Z, s(X1)))
eq_in_ga(X, X) → eq_out_ga(X, X)
U3_ggga(X, Z, U, eq_out_ga(Z, s(X1))) → U4_ggga(X, Z, U, p_in_aa(U, P))
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
U4_ggga(X, Z, U, p_out_aa(U, P)) → U5_ggga(X, Z, U, quot_in_ggga(X, Z, Z, P))
quot_in_ggga(s(X), Y, Z, U) → U6_ggga(X, Y, Z, U, p_in_ga(Y, P))
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
U6_ggga(X, Y, Z, U, p_out_ga(Y, P)) → U7_ggga(X, Y, Z, U, quot_in_ggga(X, P, Z, U))
U7_ggga(X, Y, Z, U, quot_out_ggga(X, P, Z, U)) → quot_out_ggga(s(X), Y, Z, U)
U5_ggga(X, Z, U, quot_out_ggga(X, Z, Z, P)) → quot_out_ggga(X, 0, Z, U)
U1_gga(X, Y, Z, quot_out_ggga(X, Y, Y, Z)) → div_out_gga(X, Y, Z)
QUOT_IN_GGGA(X, 0, Z, U) → U3_GGGA(X, Z, U, eq_in_ga(Z, s(X1)))
U3_GGGA(X, Z, U, eq_out_ga(Z, s(X1))) → U4_GGGA(X, Z, U, p_in_aa(U, P))
U4_GGGA(X, Z, U, p_out_aa(U, P)) → QUOT_IN_GGGA(X, Z, Z, P)
QUOT_IN_GGGA(s(X), Y, Z, U) → U6_GGGA(X, Y, Z, U, p_in_ga(Y, P))
U6_GGGA(X, Y, Z, U, p_out_ga(Y, P)) → QUOT_IN_GGGA(X, P, Z, U)
eq_in_ga(X, X) → eq_out_ga(X, X)
p_in_aa(0, 0) → p_out_aa(0, 0)
p_in_aa(s(X), X) → p_out_aa(s(X), X)
p_in_ga(0, 0) → p_out_ga(0, 0)
p_in_ga(s(X), X) → p_out_ga(s(X), X)
QUOT_IN_GGGA(X, 0, Z) → U3_GGGA(X, Z, eq_in_ga(Z))
U3_GGGA(X, Z, eq_out_ga(s(X1))) → U4_GGGA(X, Z, p_in_aa)
U4_GGGA(X, Z, p_out_aa) → QUOT_IN_GGGA(X, Z, Z)
QUOT_IN_GGGA(s(X), Y, Z) → U6_GGGA(X, Z, p_in_ga(Y))
U6_GGGA(X, Z, p_out_ga(P)) → QUOT_IN_GGGA(X, P, Z)
eq_in_ga(X) → eq_out_ga(X)
p_in_aa → p_out_aa
p_in_ga(0) → p_out_ga(0)
p_in_ga(s(X)) → p_out_ga(X)
eq_in_ga(x0)
p_in_aa
p_in_ga(x0)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
QUOT_IN_GGGA(s(X), Y, Z) → U6_GGGA(X, Z, p_in_ga(Y))
POL(0) = 0
POL(QUOT_IN_GGGA(x1, x2, x3)) = x1
POL(U3_GGGA(x1, x2, x3)) = x1
POL(U4_GGGA(x1, x2, x3)) = x1
POL(U6_GGGA(x1, x2, x3)) = x1
POL(eq_in_ga(x1)) = 0
POL(eq_out_ga(x1)) = 0
POL(p_in_aa) = 0
POL(p_in_ga(x1)) = 0
POL(p_out_aa) = 0
POL(p_out_ga(x1)) = 0
POL(s(x1)) = 1 + x1
QUOT_IN_GGGA(X, 0, Z) → U3_GGGA(X, Z, eq_in_ga(Z))
U3_GGGA(X, Z, eq_out_ga(s(X1))) → U4_GGGA(X, Z, p_in_aa)
U4_GGGA(X, Z, p_out_aa) → QUOT_IN_GGGA(X, Z, Z)
U6_GGGA(X, Z, p_out_ga(P)) → QUOT_IN_GGGA(X, P, Z)
eq_in_ga(X) → eq_out_ga(X)
p_in_aa → p_out_aa
p_in_ga(0) → p_out_ga(0)
p_in_ga(s(X)) → p_out_ga(X)
eq_in_ga(x0)
p_in_aa
p_in_ga(x0)
U3_GGGA(X, Z, eq_out_ga(s(X1))) → U4_GGGA(X, Z, p_in_aa)
U4_GGGA(X, Z, p_out_aa) → QUOT_IN_GGGA(X, Z, Z)
QUOT_IN_GGGA(X, 0, Z) → U3_GGGA(X, Z, eq_in_ga(Z))
eq_in_ga(X) → eq_out_ga(X)
p_in_aa → p_out_aa
p_in_ga(0) → p_out_ga(0)
p_in_ga(s(X)) → p_out_ga(X)
eq_in_ga(x0)
p_in_aa
p_in_ga(x0)
U3_GGGA(X, Z, eq_out_ga(s(X1))) → U4_GGGA(X, Z, p_in_aa)
U4_GGGA(X, Z, p_out_aa) → QUOT_IN_GGGA(X, Z, Z)
QUOT_IN_GGGA(X, 0, Z) → U3_GGGA(X, Z, eq_in_ga(Z))
eq_in_ga(X) → eq_out_ga(X)
p_in_aa → p_out_aa
eq_in_ga(x0)
p_in_aa
p_in_ga(x0)
p_in_ga(x0)
U3_GGGA(X, Z, eq_out_ga(s(X1))) → U4_GGGA(X, Z, p_in_aa)
U4_GGGA(X, Z, p_out_aa) → QUOT_IN_GGGA(X, Z, Z)
QUOT_IN_GGGA(X, 0, Z) → U3_GGGA(X, Z, eq_in_ga(Z))
eq_in_ga(X) → eq_out_ga(X)
p_in_aa → p_out_aa
eq_in_ga(x0)
p_in_aa