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 PiDPToQDPProof (⇐)
↳16 QDP
↳17 QDPOrderProof (⇔)
↳18 QDP
↳19 QDPSizeChangeProof (⇔)
↳20 TRUE
↳21 PrologToPiTRSProof (⇐)
↳22 PiTRS
↳23 DependencyPairsProof (⇔)
↳24 PiDP
↳25 DependencyGraphProof (⇔)
↳26 AND
↳27 PiDP
↳28 UsableRulesProof (⇔)
↳29 PiDP
↳30 PiDPToQDPProof (⇔)
↳31 QDP
↳32 QDPSizeChangeProof (⇔)
↳33 TRUE
↳34 PiDP
↳35 PiDPToQDPProof (⇐)
↳36 QDP
↳37 QDPOrderProof (⇔)
↳38 QDP
d_in_gga(X, X, 1) → d_out_gga(X, X, 1)
d_in_gga(T, X1, 0) → U1_gga(T, X1, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X1, isnumber_out_g(T)) → d_out_gga(T, X1, 0)
d_in_gga(times(U, V), X, +(times(B, U), times(A, V))) → U2_gga(U, V, X, B, A, d_in_gga(U, X, A))
d_in_gga(div(U, V), X, W) → U4_gga(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
d_in_gga(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_gga(U, V, X, W, isnumber_in_g(V))
U5_gga(U, V, X, W, isnumber_out_g(V)) → U6_gga(U, V, X, W, d_in_gga(U, X, W))
U6_gga(U, V, X, W, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, W, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, B, A, d_out_gga(U, X, A)) → U3_gga(U, V, X, B, A, d_in_gga(V, X, B))
U3_gga(U, V, X, B, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
d_in_gga(X, X, 1) → d_out_gga(X, X, 1)
d_in_gga(T, X1, 0) → U1_gga(T, X1, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X1, isnumber_out_g(T)) → d_out_gga(T, X1, 0)
d_in_gga(times(U, V), X, +(times(B, U), times(A, V))) → U2_gga(U, V, X, B, A, d_in_gga(U, X, A))
d_in_gga(div(U, V), X, W) → U4_gga(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
d_in_gga(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_gga(U, V, X, W, isnumber_in_g(V))
U5_gga(U, V, X, W, isnumber_out_g(V)) → U6_gga(U, V, X, W, d_in_gga(U, X, W))
U6_gga(U, V, X, W, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, W, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, B, A, d_out_gga(U, X, A)) → U3_gga(U, V, X, B, A, d_in_gga(V, X, B))
U3_gga(U, V, X, B, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
D_IN_GGA(T, X1, 0) → U1_GGA(T, X1, isnumber_in_g(T))
D_IN_GGA(T, X1, 0) → ISNUMBER_IN_G(T)
ISNUMBER_IN_G(s(X)) → U7_G(X, isnumber_in_g(X))
ISNUMBER_IN_G(s(X)) → ISNUMBER_IN_G(X)
ISNUMBER_IN_G(p(X)) → U8_G(X, isnumber_in_g(X))
ISNUMBER_IN_G(p(X)) → ISNUMBER_IN_G(X)
D_IN_GGA(times(U, V), X, +(times(B, U), times(A, V))) → U2_GGA(U, V, X, B, A, d_in_gga(U, X, A))
D_IN_GGA(times(U, V), X, +(times(B, U), times(A, V))) → D_IN_GGA(U, X, A)
D_IN_GGA(div(U, V), X, W) → U4_GGA(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
D_IN_GGA(div(U, V), X, W) → D_IN_GGA(times(U, power(V, p(0))), X, W)
D_IN_GGA(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_GGA(U, V, X, W, isnumber_in_g(V))
D_IN_GGA(power(U, V), X, times(V, times(W, power(U, p(V))))) → ISNUMBER_IN_G(V)
U5_GGA(U, V, X, W, isnumber_out_g(V)) → U6_GGA(U, V, X, W, d_in_gga(U, X, W))
U5_GGA(U, V, X, W, isnumber_out_g(V)) → D_IN_GGA(U, X, W)
U2_GGA(U, V, X, B, A, d_out_gga(U, X, A)) → U3_GGA(U, V, X, B, A, d_in_gga(V, X, B))
U2_GGA(U, V, X, B, A, d_out_gga(U, X, A)) → D_IN_GGA(V, X, B)
d_in_gga(X, X, 1) → d_out_gga(X, X, 1)
d_in_gga(T, X1, 0) → U1_gga(T, X1, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X1, isnumber_out_g(T)) → d_out_gga(T, X1, 0)
d_in_gga(times(U, V), X, +(times(B, U), times(A, V))) → U2_gga(U, V, X, B, A, d_in_gga(U, X, A))
d_in_gga(div(U, V), X, W) → U4_gga(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
d_in_gga(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_gga(U, V, X, W, isnumber_in_g(V))
U5_gga(U, V, X, W, isnumber_out_g(V)) → U6_gga(U, V, X, W, d_in_gga(U, X, W))
U6_gga(U, V, X, W, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, W, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, B, A, d_out_gga(U, X, A)) → U3_gga(U, V, X, B, A, d_in_gga(V, X, B))
U3_gga(U, V, X, B, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
D_IN_GGA(T, X1, 0) → U1_GGA(T, X1, isnumber_in_g(T))
D_IN_GGA(T, X1, 0) → ISNUMBER_IN_G(T)
ISNUMBER_IN_G(s(X)) → U7_G(X, isnumber_in_g(X))
ISNUMBER_IN_G(s(X)) → ISNUMBER_IN_G(X)
ISNUMBER_IN_G(p(X)) → U8_G(X, isnumber_in_g(X))
ISNUMBER_IN_G(p(X)) → ISNUMBER_IN_G(X)
D_IN_GGA(times(U, V), X, +(times(B, U), times(A, V))) → U2_GGA(U, V, X, B, A, d_in_gga(U, X, A))
D_IN_GGA(times(U, V), X, +(times(B, U), times(A, V))) → D_IN_GGA(U, X, A)
D_IN_GGA(div(U, V), X, W) → U4_GGA(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
D_IN_GGA(div(U, V), X, W) → D_IN_GGA(times(U, power(V, p(0))), X, W)
D_IN_GGA(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_GGA(U, V, X, W, isnumber_in_g(V))
D_IN_GGA(power(U, V), X, times(V, times(W, power(U, p(V))))) → ISNUMBER_IN_G(V)
U5_GGA(U, V, X, W, isnumber_out_g(V)) → U6_GGA(U, V, X, W, d_in_gga(U, X, W))
U5_GGA(U, V, X, W, isnumber_out_g(V)) → D_IN_GGA(U, X, W)
U2_GGA(U, V, X, B, A, d_out_gga(U, X, A)) → U3_GGA(U, V, X, B, A, d_in_gga(V, X, B))
U2_GGA(U, V, X, B, A, d_out_gga(U, X, A)) → D_IN_GGA(V, X, B)
d_in_gga(X, X, 1) → d_out_gga(X, X, 1)
d_in_gga(T, X1, 0) → U1_gga(T, X1, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X1, isnumber_out_g(T)) → d_out_gga(T, X1, 0)
d_in_gga(times(U, V), X, +(times(B, U), times(A, V))) → U2_gga(U, V, X, B, A, d_in_gga(U, X, A))
d_in_gga(div(U, V), X, W) → U4_gga(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
d_in_gga(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_gga(U, V, X, W, isnumber_in_g(V))
U5_gga(U, V, X, W, isnumber_out_g(V)) → U6_gga(U, V, X, W, d_in_gga(U, X, W))
U6_gga(U, V, X, W, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, W, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, B, A, d_out_gga(U, X, A)) → U3_gga(U, V, X, B, A, d_in_gga(V, X, B))
U3_gga(U, V, X, B, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
ISNUMBER_IN_G(p(X)) → ISNUMBER_IN_G(X)
ISNUMBER_IN_G(s(X)) → ISNUMBER_IN_G(X)
d_in_gga(X, X, 1) → d_out_gga(X, X, 1)
d_in_gga(T, X1, 0) → U1_gga(T, X1, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X1, isnumber_out_g(T)) → d_out_gga(T, X1, 0)
d_in_gga(times(U, V), X, +(times(B, U), times(A, V))) → U2_gga(U, V, X, B, A, d_in_gga(U, X, A))
d_in_gga(div(U, V), X, W) → U4_gga(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
d_in_gga(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_gga(U, V, X, W, isnumber_in_g(V))
U5_gga(U, V, X, W, isnumber_out_g(V)) → U6_gga(U, V, X, W, d_in_gga(U, X, W))
U6_gga(U, V, X, W, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, W, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, B, A, d_out_gga(U, X, A)) → U3_gga(U, V, X, B, A, d_in_gga(V, X, B))
U3_gga(U, V, X, B, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
ISNUMBER_IN_G(p(X)) → ISNUMBER_IN_G(X)
ISNUMBER_IN_G(s(X)) → ISNUMBER_IN_G(X)
ISNUMBER_IN_G(p(X)) → ISNUMBER_IN_G(X)
ISNUMBER_IN_G(s(X)) → ISNUMBER_IN_G(X)
From the DPs we obtained the following set of size-change graphs:
D_IN_GGA(times(U, V), X, +(times(B, U), times(A, V))) → U2_GGA(U, V, X, B, A, d_in_gga(U, X, A))
U2_GGA(U, V, X, B, A, d_out_gga(U, X, A)) → D_IN_GGA(V, X, B)
D_IN_GGA(times(U, V), X, +(times(B, U), times(A, V))) → D_IN_GGA(U, X, A)
D_IN_GGA(div(U, V), X, W) → D_IN_GGA(times(U, power(V, p(0))), X, W)
D_IN_GGA(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_GGA(U, V, X, W, isnumber_in_g(V))
U5_GGA(U, V, X, W, isnumber_out_g(V)) → D_IN_GGA(U, X, W)
d_in_gga(X, X, 1) → d_out_gga(X, X, 1)
d_in_gga(T, X1, 0) → U1_gga(T, X1, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X1, isnumber_out_g(T)) → d_out_gga(T, X1, 0)
d_in_gga(times(U, V), X, +(times(B, U), times(A, V))) → U2_gga(U, V, X, B, A, d_in_gga(U, X, A))
d_in_gga(div(U, V), X, W) → U4_gga(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
d_in_gga(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_gga(U, V, X, W, isnumber_in_g(V))
U5_gga(U, V, X, W, isnumber_out_g(V)) → U6_gga(U, V, X, W, d_in_gga(U, X, W))
U6_gga(U, V, X, W, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, W, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, B, A, d_out_gga(U, X, A)) → U3_gga(U, V, X, B, A, d_in_gga(V, X, B))
U3_gga(U, V, X, B, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
D_IN_GGA(times(U, V), X) → U2_GGA(U, V, X, d_in_gga(U, X))
U2_GGA(U, V, X, d_out_gga(A)) → D_IN_GGA(V, X)
D_IN_GGA(times(U, V), X) → D_IN_GGA(U, X)
D_IN_GGA(div(U, V), X) → D_IN_GGA(times(U, power(V, p(0))), X)
D_IN_GGA(power(U, V), X) → U5_GGA(U, V, X, isnumber_in_g(V))
U5_GGA(U, V, X, isnumber_out_g) → D_IN_GGA(U, X)
d_in_gga(X, X) → d_out_gga(1)
d_in_gga(T, X1) → U1_gga(isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g
isnumber_in_g(s(X)) → U7_g(isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(isnumber_in_g(X))
U8_g(isnumber_out_g) → isnumber_out_g
U7_g(isnumber_out_g) → isnumber_out_g
U1_gga(isnumber_out_g) → d_out_gga(0)
d_in_gga(times(U, V), X) → U2_gga(U, V, X, d_in_gga(U, X))
d_in_gga(div(U, V), X) → U4_gga(d_in_gga(times(U, power(V, p(0))), X))
d_in_gga(power(U, V), X) → U5_gga(U, V, X, isnumber_in_g(V))
U5_gga(U, V, X, isnumber_out_g) → U6_gga(U, V, d_in_gga(U, X))
U6_gga(U, V, d_out_gga(W)) → d_out_gga(times(V, times(W, power(U, p(V)))))
U4_gga(d_out_gga(W)) → d_out_gga(W)
U2_gga(U, V, X, d_out_gga(A)) → U3_gga(U, V, A, d_in_gga(V, X))
U3_gga(U, V, A, d_out_gga(B)) → d_out_gga(+(times(B, U), times(A, V)))
d_in_gga(x0, x1)
isnumber_in_g(x0)
U8_g(x0)
U7_g(x0)
U1_gga(x0)
U5_gga(x0, x1, x2, x3)
U6_gga(x0, x1, x2)
U4_gga(x0)
U2_gga(x0, x1, x2, x3)
U3_gga(x0, x1, x2, x3)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
D_IN_GGA(div(U, V), X) → D_IN_GGA(times(U, power(V, p(0))), X)
POL(+(x1, x2)) = 0
POL(0) = 0
POL(1) = 0
POL(D_IN_GGA(x1, x2)) = x1
POL(U1_gga(x1)) = 0
POL(U2_GGA(x1, x2, x3, x4)) = x1 + x2
POL(U2_gga(x1, x2, x3, x4)) = 0
POL(U3_gga(x1, x2, x3, x4)) = 0
POL(U4_gga(x1)) = 0
POL(U5_GGA(x1, x2, x3, x4)) = x1
POL(U5_gga(x1, x2, x3, x4)) = 0
POL(U6_gga(x1, x2, x3)) = 0
POL(U7_g(x1)) = 0
POL(U8_g(x1)) = 0
POL(d_in_gga(x1, x2)) = 0
POL(d_out_gga(x1)) = 0
POL(div(x1, x2)) = 1 + x1 + x2
POL(isnumber_in_g(x1)) = 0
POL(isnumber_out_g) = 0
POL(p(x1)) = 0
POL(power(x1, x2)) = x1
POL(s(x1)) = 0
POL(times(x1, x2)) = x1 + x2
D_IN_GGA(times(U, V), X) → U2_GGA(U, V, X, d_in_gga(U, X))
U2_GGA(U, V, X, d_out_gga(A)) → D_IN_GGA(V, X)
D_IN_GGA(times(U, V), X) → D_IN_GGA(U, X)
D_IN_GGA(power(U, V), X) → U5_GGA(U, V, X, isnumber_in_g(V))
U5_GGA(U, V, X, isnumber_out_g) → D_IN_GGA(U, X)
d_in_gga(X, X) → d_out_gga(1)
d_in_gga(T, X1) → U1_gga(isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g
isnumber_in_g(s(X)) → U7_g(isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(isnumber_in_g(X))
U8_g(isnumber_out_g) → isnumber_out_g
U7_g(isnumber_out_g) → isnumber_out_g
U1_gga(isnumber_out_g) → d_out_gga(0)
d_in_gga(times(U, V), X) → U2_gga(U, V, X, d_in_gga(U, X))
d_in_gga(div(U, V), X) → U4_gga(d_in_gga(times(U, power(V, p(0))), X))
d_in_gga(power(U, V), X) → U5_gga(U, V, X, isnumber_in_g(V))
U5_gga(U, V, X, isnumber_out_g) → U6_gga(U, V, d_in_gga(U, X))
U6_gga(U, V, d_out_gga(W)) → d_out_gga(times(V, times(W, power(U, p(V)))))
U4_gga(d_out_gga(W)) → d_out_gga(W)
U2_gga(U, V, X, d_out_gga(A)) → U3_gga(U, V, A, d_in_gga(V, X))
U3_gga(U, V, A, d_out_gga(B)) → d_out_gga(+(times(B, U), times(A, V)))
d_in_gga(x0, x1)
isnumber_in_g(x0)
U8_g(x0)
U7_g(x0)
U1_gga(x0)
U5_gga(x0, x1, x2, x3)
U6_gga(x0, x1, x2)
U4_gga(x0)
U2_gga(x0, x1, x2, x3)
U3_gga(x0, x1, x2, x3)
From the DPs we obtained the following set of size-change graphs:
d_in_gga(X, X, 1) → d_out_gga(X, X, 1)
d_in_gga(T, X1, 0) → U1_gga(T, X1, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X1, isnumber_out_g(T)) → d_out_gga(T, X1, 0)
d_in_gga(times(U, V), X, +(times(B, U), times(A, V))) → U2_gga(U, V, X, B, A, d_in_gga(U, X, A))
d_in_gga(div(U, V), X, W) → U4_gga(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
d_in_gga(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_gga(U, V, X, W, isnumber_in_g(V))
U5_gga(U, V, X, W, isnumber_out_g(V)) → U6_gga(U, V, X, W, d_in_gga(U, X, W))
U6_gga(U, V, X, W, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, W, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, B, A, d_out_gga(U, X, A)) → U3_gga(U, V, X, B, A, d_in_gga(V, X, B))
U3_gga(U, V, X, B, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
d_in_gga(X, X, 1) → d_out_gga(X, X, 1)
d_in_gga(T, X1, 0) → U1_gga(T, X1, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X1, isnumber_out_g(T)) → d_out_gga(T, X1, 0)
d_in_gga(times(U, V), X, +(times(B, U), times(A, V))) → U2_gga(U, V, X, B, A, d_in_gga(U, X, A))
d_in_gga(div(U, V), X, W) → U4_gga(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
d_in_gga(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_gga(U, V, X, W, isnumber_in_g(V))
U5_gga(U, V, X, W, isnumber_out_g(V)) → U6_gga(U, V, X, W, d_in_gga(U, X, W))
U6_gga(U, V, X, W, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, W, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, B, A, d_out_gga(U, X, A)) → U3_gga(U, V, X, B, A, d_in_gga(V, X, B))
U3_gga(U, V, X, B, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
D_IN_GGA(T, X1, 0) → U1_GGA(T, X1, isnumber_in_g(T))
D_IN_GGA(T, X1, 0) → ISNUMBER_IN_G(T)
ISNUMBER_IN_G(s(X)) → U7_G(X, isnumber_in_g(X))
ISNUMBER_IN_G(s(X)) → ISNUMBER_IN_G(X)
ISNUMBER_IN_G(p(X)) → U8_G(X, isnumber_in_g(X))
ISNUMBER_IN_G(p(X)) → ISNUMBER_IN_G(X)
D_IN_GGA(times(U, V), X, +(times(B, U), times(A, V))) → U2_GGA(U, V, X, B, A, d_in_gga(U, X, A))
D_IN_GGA(times(U, V), X, +(times(B, U), times(A, V))) → D_IN_GGA(U, X, A)
D_IN_GGA(div(U, V), X, W) → U4_GGA(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
D_IN_GGA(div(U, V), X, W) → D_IN_GGA(times(U, power(V, p(0))), X, W)
D_IN_GGA(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_GGA(U, V, X, W, isnumber_in_g(V))
D_IN_GGA(power(U, V), X, times(V, times(W, power(U, p(V))))) → ISNUMBER_IN_G(V)
U5_GGA(U, V, X, W, isnumber_out_g(V)) → U6_GGA(U, V, X, W, d_in_gga(U, X, W))
U5_GGA(U, V, X, W, isnumber_out_g(V)) → D_IN_GGA(U, X, W)
U2_GGA(U, V, X, B, A, d_out_gga(U, X, A)) → U3_GGA(U, V, X, B, A, d_in_gga(V, X, B))
U2_GGA(U, V, X, B, A, d_out_gga(U, X, A)) → D_IN_GGA(V, X, B)
d_in_gga(X, X, 1) → d_out_gga(X, X, 1)
d_in_gga(T, X1, 0) → U1_gga(T, X1, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X1, isnumber_out_g(T)) → d_out_gga(T, X1, 0)
d_in_gga(times(U, V), X, +(times(B, U), times(A, V))) → U2_gga(U, V, X, B, A, d_in_gga(U, X, A))
d_in_gga(div(U, V), X, W) → U4_gga(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
d_in_gga(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_gga(U, V, X, W, isnumber_in_g(V))
U5_gga(U, V, X, W, isnumber_out_g(V)) → U6_gga(U, V, X, W, d_in_gga(U, X, W))
U6_gga(U, V, X, W, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, W, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, B, A, d_out_gga(U, X, A)) → U3_gga(U, V, X, B, A, d_in_gga(V, X, B))
U3_gga(U, V, X, B, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
D_IN_GGA(T, X1, 0) → U1_GGA(T, X1, isnumber_in_g(T))
D_IN_GGA(T, X1, 0) → ISNUMBER_IN_G(T)
ISNUMBER_IN_G(s(X)) → U7_G(X, isnumber_in_g(X))
ISNUMBER_IN_G(s(X)) → ISNUMBER_IN_G(X)
ISNUMBER_IN_G(p(X)) → U8_G(X, isnumber_in_g(X))
ISNUMBER_IN_G(p(X)) → ISNUMBER_IN_G(X)
D_IN_GGA(times(U, V), X, +(times(B, U), times(A, V))) → U2_GGA(U, V, X, B, A, d_in_gga(U, X, A))
D_IN_GGA(times(U, V), X, +(times(B, U), times(A, V))) → D_IN_GGA(U, X, A)
D_IN_GGA(div(U, V), X, W) → U4_GGA(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
D_IN_GGA(div(U, V), X, W) → D_IN_GGA(times(U, power(V, p(0))), X, W)
D_IN_GGA(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_GGA(U, V, X, W, isnumber_in_g(V))
D_IN_GGA(power(U, V), X, times(V, times(W, power(U, p(V))))) → ISNUMBER_IN_G(V)
U5_GGA(U, V, X, W, isnumber_out_g(V)) → U6_GGA(U, V, X, W, d_in_gga(U, X, W))
U5_GGA(U, V, X, W, isnumber_out_g(V)) → D_IN_GGA(U, X, W)
U2_GGA(U, V, X, B, A, d_out_gga(U, X, A)) → U3_GGA(U, V, X, B, A, d_in_gga(V, X, B))
U2_GGA(U, V, X, B, A, d_out_gga(U, X, A)) → D_IN_GGA(V, X, B)
d_in_gga(X, X, 1) → d_out_gga(X, X, 1)
d_in_gga(T, X1, 0) → U1_gga(T, X1, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X1, isnumber_out_g(T)) → d_out_gga(T, X1, 0)
d_in_gga(times(U, V), X, +(times(B, U), times(A, V))) → U2_gga(U, V, X, B, A, d_in_gga(U, X, A))
d_in_gga(div(U, V), X, W) → U4_gga(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
d_in_gga(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_gga(U, V, X, W, isnumber_in_g(V))
U5_gga(U, V, X, W, isnumber_out_g(V)) → U6_gga(U, V, X, W, d_in_gga(U, X, W))
U6_gga(U, V, X, W, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, W, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, B, A, d_out_gga(U, X, A)) → U3_gga(U, V, X, B, A, d_in_gga(V, X, B))
U3_gga(U, V, X, B, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
ISNUMBER_IN_G(p(X)) → ISNUMBER_IN_G(X)
ISNUMBER_IN_G(s(X)) → ISNUMBER_IN_G(X)
d_in_gga(X, X, 1) → d_out_gga(X, X, 1)
d_in_gga(T, X1, 0) → U1_gga(T, X1, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X1, isnumber_out_g(T)) → d_out_gga(T, X1, 0)
d_in_gga(times(U, V), X, +(times(B, U), times(A, V))) → U2_gga(U, V, X, B, A, d_in_gga(U, X, A))
d_in_gga(div(U, V), X, W) → U4_gga(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
d_in_gga(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_gga(U, V, X, W, isnumber_in_g(V))
U5_gga(U, V, X, W, isnumber_out_g(V)) → U6_gga(U, V, X, W, d_in_gga(U, X, W))
U6_gga(U, V, X, W, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, W, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, B, A, d_out_gga(U, X, A)) → U3_gga(U, V, X, B, A, d_in_gga(V, X, B))
U3_gga(U, V, X, B, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
ISNUMBER_IN_G(p(X)) → ISNUMBER_IN_G(X)
ISNUMBER_IN_G(s(X)) → ISNUMBER_IN_G(X)
ISNUMBER_IN_G(p(X)) → ISNUMBER_IN_G(X)
ISNUMBER_IN_G(s(X)) → ISNUMBER_IN_G(X)
From the DPs we obtained the following set of size-change graphs:
D_IN_GGA(times(U, V), X, +(times(B, U), times(A, V))) → U2_GGA(U, V, X, B, A, d_in_gga(U, X, A))
U2_GGA(U, V, X, B, A, d_out_gga(U, X, A)) → D_IN_GGA(V, X, B)
D_IN_GGA(times(U, V), X, +(times(B, U), times(A, V))) → D_IN_GGA(U, X, A)
D_IN_GGA(div(U, V), X, W) → D_IN_GGA(times(U, power(V, p(0))), X, W)
D_IN_GGA(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_GGA(U, V, X, W, isnumber_in_g(V))
U5_GGA(U, V, X, W, isnumber_out_g(V)) → D_IN_GGA(U, X, W)
d_in_gga(X, X, 1) → d_out_gga(X, X, 1)
d_in_gga(T, X1, 0) → U1_gga(T, X1, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X1, isnumber_out_g(T)) → d_out_gga(T, X1, 0)
d_in_gga(times(U, V), X, +(times(B, U), times(A, V))) → U2_gga(U, V, X, B, A, d_in_gga(U, X, A))
d_in_gga(div(U, V), X, W) → U4_gga(U, V, X, W, d_in_gga(times(U, power(V, p(0))), X, W))
d_in_gga(power(U, V), X, times(V, times(W, power(U, p(V))))) → U5_gga(U, V, X, W, isnumber_in_g(V))
U5_gga(U, V, X, W, isnumber_out_g(V)) → U6_gga(U, V, X, W, d_in_gga(U, X, W))
U6_gga(U, V, X, W, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, W, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, B, A, d_out_gga(U, X, A)) → U3_gga(U, V, X, B, A, d_in_gga(V, X, B))
U3_gga(U, V, X, B, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
D_IN_GGA(times(U, V), X) → U2_GGA(U, V, X, d_in_gga(U, X))
U2_GGA(U, V, X, d_out_gga(U, X, A)) → D_IN_GGA(V, X)
D_IN_GGA(times(U, V), X) → D_IN_GGA(U, X)
D_IN_GGA(div(U, V), X) → D_IN_GGA(times(U, power(V, p(0))), X)
D_IN_GGA(power(U, V), X) → U5_GGA(U, V, X, isnumber_in_g(V))
U5_GGA(U, V, X, isnumber_out_g(V)) → D_IN_GGA(U, X)
d_in_gga(X, X) → d_out_gga(X, X, 1)
d_in_gga(T, X1) → U1_gga(T, X1, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X1, isnumber_out_g(T)) → d_out_gga(T, X1, 0)
d_in_gga(times(U, V), X) → U2_gga(U, V, X, d_in_gga(U, X))
d_in_gga(div(U, V), X) → U4_gga(U, V, X, d_in_gga(times(U, power(V, p(0))), X))
d_in_gga(power(U, V), X) → U5_gga(U, V, X, isnumber_in_g(V))
U5_gga(U, V, X, isnumber_out_g(V)) → U6_gga(U, V, X, d_in_gga(U, X))
U6_gga(U, V, X, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, d_out_gga(U, X, A)) → U3_gga(U, V, X, A, d_in_gga(V, X))
U3_gga(U, V, X, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
d_in_gga(x0, x1)
isnumber_in_g(x0)
U8_g(x0, x1)
U7_g(x0, x1)
U1_gga(x0, x1, x2)
U5_gga(x0, x1, x2, x3)
U6_gga(x0, x1, x2, x3)
U4_gga(x0, x1, x2, x3)
U2_gga(x0, x1, x2, x3)
U3_gga(x0, x1, x2, x3, x4)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
D_IN_GGA(times(U, V), X) → U2_GGA(U, V, X, d_in_gga(U, X))
D_IN_GGA(times(U, V), X) → D_IN_GGA(U, X)
POL(+(x1, x2)) = 0
POL(0) = 0
POL(1) = 0
POL(D_IN_GGA(x1, x2)) = x1
POL(U1_gga(x1, x2, x3)) = 0
POL(U2_GGA(x1, x2, x3, x4)) = x2
POL(U2_gga(x1, x2, x3, x4)) = 0
POL(U3_gga(x1, x2, x3, x4, x5)) = 0
POL(U4_gga(x1, x2, x3, x4)) = 0
POL(U5_GGA(x1, x2, x3, x4)) = x1
POL(U5_gga(x1, x2, x3, x4)) = 0
POL(U6_gga(x1, x2, x3, x4)) = 0
POL(U7_g(x1, x2)) = 0
POL(U8_g(x1, x2)) = 0
POL(d_in_gga(x1, x2)) = 0
POL(d_out_gga(x1, x2, x3)) = 0
POL(div(x1, x2)) = 1 + x1 + x2
POL(isnumber_in_g(x1)) = 0
POL(isnumber_out_g(x1)) = 0
POL(p(x1)) = 0
POL(power(x1, x2)) = x1
POL(s(x1)) = 0
POL(times(x1, x2)) = 1 + x1 + x2
U2_GGA(U, V, X, d_out_gga(U, X, A)) → D_IN_GGA(V, X)
D_IN_GGA(div(U, V), X) → D_IN_GGA(times(U, power(V, p(0))), X)
D_IN_GGA(power(U, V), X) → U5_GGA(U, V, X, isnumber_in_g(V))
U5_GGA(U, V, X, isnumber_out_g(V)) → D_IN_GGA(U, X)
d_in_gga(X, X) → d_out_gga(X, X, 1)
d_in_gga(T, X1) → U1_gga(T, X1, isnumber_in_g(T))
isnumber_in_g(0) → isnumber_out_g(0)
isnumber_in_g(s(X)) → U7_g(X, isnumber_in_g(X))
isnumber_in_g(p(X)) → U8_g(X, isnumber_in_g(X))
U8_g(X, isnumber_out_g(X)) → isnumber_out_g(p(X))
U7_g(X, isnumber_out_g(X)) → isnumber_out_g(s(X))
U1_gga(T, X1, isnumber_out_g(T)) → d_out_gga(T, X1, 0)
d_in_gga(times(U, V), X) → U2_gga(U, V, X, d_in_gga(U, X))
d_in_gga(div(U, V), X) → U4_gga(U, V, X, d_in_gga(times(U, power(V, p(0))), X))
d_in_gga(power(U, V), X) → U5_gga(U, V, X, isnumber_in_g(V))
U5_gga(U, V, X, isnumber_out_g(V)) → U6_gga(U, V, X, d_in_gga(U, X))
U6_gga(U, V, X, d_out_gga(U, X, W)) → d_out_gga(power(U, V), X, times(V, times(W, power(U, p(V)))))
U4_gga(U, V, X, d_out_gga(times(U, power(V, p(0))), X, W)) → d_out_gga(div(U, V), X, W)
U2_gga(U, V, X, d_out_gga(U, X, A)) → U3_gga(U, V, X, A, d_in_gga(V, X))
U3_gga(U, V, X, A, d_out_gga(V, X, B)) → d_out_gga(times(U, V), X, +(times(B, U), times(A, V)))
d_in_gga(x0, x1)
isnumber_in_g(x0)
U8_g(x0, x1)
U7_g(x0, x1)
U1_gga(x0, x1, x2)
U5_gga(x0, x1, x2, x3)
U6_gga(x0, x1, x2, x3)
U4_gga(x0, x1, x2, x3)
U2_gga(x0, x1, x2, x3)
U3_gga(x0, x1, x2, x3, x4)