YES

The TRS could be proven terminating. The proof took 1351 ms.

The following DP Processors were used


Problem 1 was processed with processor DependencyGraph (83ms).
 | – Problem 2 was processed with processor PolynomialLinearRange4iUR (1019ms).
 |    | – Problem 3 was processed with processor DependencyGraph (7ms).
 |    |    | – Problem 4 was processed with processor PolynomialLinearRange4iUR (47ms).
 |    |    |    | – Problem 5 was processed with processor PolynomialLinearRange4iUR (30ms).

Problem 1: DependencyGraph



Dependency Pair Problem

Dependency Pairs

u31#(dout(DX), X, Y) → din#(der(Y))din#(der(times(X, Y))) → din#(der(X))
u41#(dout(DX), X) → din#(der(DX))din#(der(der(X))) → u41#(din(der(X)), X)
din#(der(plus(X, Y))) → u21#(din(der(X)), X, Y)u21#(dout(DX), X, Y) → din#(der(Y))
u21#(dout(DX), X, Y) → u22#(din(der(Y)), X, Y, DX)u31#(dout(DX), X, Y) → u32#(din(der(Y)), X, Y, DX)
u41#(dout(DX), X) → u42#(din(der(DX)), X, DX)din#(der(plus(X, Y))) → din#(der(X))
din#(der(times(X, Y))) → u31#(din(der(X)), X, Y)din#(der(der(X))) → din#(der(X))

Rewrite Rules

din(der(plus(X, Y))) → u21(din(der(X)), X, Y)u21(dout(DX), X, Y) → u22(din(der(Y)), X, Y, DX)
u22(dout(DY), X, Y, DX) → dout(plus(DX, DY))din(der(times(X, Y))) → u31(din(der(X)), X, Y)
u31(dout(DX), X, Y) → u32(din(der(Y)), X, Y, DX)u32(dout(DY), X, Y, DX) → dout(plus(times(X, DY), times(Y, DX)))
din(der(der(X))) → u41(din(der(X)), X)u41(dout(DX), X) → u42(din(der(DX)), X, DX)
u42(dout(DDX), X, DX) → dout(DDX)

Original Signature

Termination of terms over the following signature is verified: din, plus, der, u22, u21, times, u41, u42, u31, u32, dout

Strategy


The following SCCs where found

u31#(dout(DX), X, Y) → din#(der(Y))din#(der(times(X, Y))) → din#(der(X))
u41#(dout(DX), X) → din#(der(DX))din#(der(der(X))) → u41#(din(der(X)), X)
din#(der(plus(X, Y))) → u21#(din(der(X)), X, Y)u21#(dout(DX), X, Y) → din#(der(Y))
din#(der(times(X, Y))) → u31#(din(der(X)), X, Y)din#(der(plus(X, Y))) → din#(der(X))
din#(der(der(X))) → din#(der(X))

Problem 2: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

u31#(dout(DX), X, Y) → din#(der(Y))din#(der(times(X, Y))) → din#(der(X))
u41#(dout(DX), X) → din#(der(DX))din#(der(der(X))) → u41#(din(der(X)), X)
din#(der(plus(X, Y))) → u21#(din(der(X)), X, Y)u21#(dout(DX), X, Y) → din#(der(Y))
din#(der(times(X, Y))) → u31#(din(der(X)), X, Y)din#(der(plus(X, Y))) → din#(der(X))
din#(der(der(X))) → din#(der(X))

Rewrite Rules

din(der(plus(X, Y))) → u21(din(der(X)), X, Y)u21(dout(DX), X, Y) → u22(din(der(Y)), X, Y, DX)
u22(dout(DY), X, Y, DX) → dout(plus(DX, DY))din(der(times(X, Y))) → u31(din(der(X)), X, Y)
u31(dout(DX), X, Y) → u32(din(der(Y)), X, Y, DX)u32(dout(DY), X, Y, DX) → dout(plus(times(X, DY), times(Y, DX)))
din(der(der(X))) → u41(din(der(X)), X)u41(dout(DX), X) → u42(din(der(DX)), X, DX)
u42(dout(DDX), X, DX) → dout(DDX)

Original Signature

Termination of terms over the following signature is verified: din, plus, der, u22, u21, times, u41, u42, u31, u32, dout

Strategy


Polynomial Interpretation

Improved Usable rules

u21(dout(DX), X, Y) → u22(din(der(Y)), X, Y, DX)u41(dout(DX), X) → u42(din(der(DX)), X, DX)
u32(dout(DY), X, Y, DX) → dout(plus(times(X, DY), times(Y, DX)))u31(dout(DX), X, Y) → u32(din(der(Y)), X, Y, DX)
din(der(plus(X, Y))) → u21(din(der(X)), X, Y)din(der(der(X))) → u41(din(der(X)), X)
u22(dout(DY), X, Y, DX) → dout(plus(DX, DY))din(der(times(X, Y))) → u31(din(der(X)), X, Y)
u42(dout(DDX), X, DX) → dout(DDX)

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

u31#(dout(DX), X, Y) → din#(der(Y))din#(der(der(X))) → u41#(din(der(X)), X)
din#(der(plus(X, Y))) → u21#(din(der(X)), X, Y)

Problem 3: DependencyGraph



Dependency Pair Problem

Dependency Pairs

u41#(dout(DX), X) → din#(der(DX))din#(der(times(X, Y))) → din#(der(X))
u21#(dout(DX), X, Y) → din#(der(Y))din#(der(plus(X, Y))) → din#(der(X))
din#(der(times(X, Y))) → u31#(din(der(X)), X, Y)din#(der(der(X))) → din#(der(X))

Rewrite Rules

din(der(plus(X, Y))) → u21(din(der(X)), X, Y)u21(dout(DX), X, Y) → u22(din(der(Y)), X, Y, DX)
u22(dout(DY), X, Y, DX) → dout(plus(DX, DY))din(der(times(X, Y))) → u31(din(der(X)), X, Y)
u31(dout(DX), X, Y) → u32(din(der(Y)), X, Y, DX)u32(dout(DY), X, Y, DX) → dout(plus(times(X, DY), times(Y, DX)))
din(der(der(X))) → u41(din(der(X)), X)u41(dout(DX), X) → u42(din(der(DX)), X, DX)
u42(dout(DDX), X, DX) → dout(DDX)

Original Signature

Termination of terms over the following signature is verified: der, plus, din, u22, u21, times, u41, u42, u31, u32, dout

Strategy


The following SCCs where found

din#(der(times(X, Y))) → din#(der(X))din#(der(plus(X, Y))) → din#(der(X))
din#(der(der(X))) → din#(der(X))

Problem 4: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

din#(der(times(X, Y))) → din#(der(X))din#(der(plus(X, Y))) → din#(der(X))
din#(der(der(X))) → din#(der(X))

Rewrite Rules

din(der(plus(X, Y))) → u21(din(der(X)), X, Y)u21(dout(DX), X, Y) → u22(din(der(Y)), X, Y, DX)
u22(dout(DY), X, Y, DX) → dout(plus(DX, DY))din(der(times(X, Y))) → u31(din(der(X)), X, Y)
u31(dout(DX), X, Y) → u32(din(der(Y)), X, Y, DX)u32(dout(DY), X, Y, DX) → dout(plus(times(X, DY), times(Y, DX)))
din(der(der(X))) → u41(din(der(X)), X)u41(dout(DX), X) → u42(din(der(DX)), X, DX)
u42(dout(DDX), X, DX) → dout(DDX)

Original Signature

Termination of terms over the following signature is verified: der, plus, din, u22, u21, times, u41, u42, u31, u32, dout

Strategy


Polynomial Interpretation

There are no usable rules

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

din#(der(plus(X, Y))) → din#(der(X))din#(der(der(X))) → din#(der(X))

Problem 5: PolynomialLinearRange4iUR



Dependency Pair Problem

Dependency Pairs

din#(der(times(X, Y))) → din#(der(X))

Rewrite Rules

din(der(plus(X, Y))) → u21(din(der(X)), X, Y)u21(dout(DX), X, Y) → u22(din(der(Y)), X, Y, DX)
u22(dout(DY), X, Y, DX) → dout(plus(DX, DY))din(der(times(X, Y))) → u31(din(der(X)), X, Y)
u31(dout(DX), X, Y) → u32(din(der(Y)), X, Y, DX)u32(dout(DY), X, Y, DX) → dout(plus(times(X, DY), times(Y, DX)))
din(der(der(X))) → u41(din(der(X)), X)u41(dout(DX), X) → u42(din(der(DX)), X, DX)
u42(dout(DDX), X, DX) → dout(DDX)

Original Signature

Termination of terms over the following signature is verified: din, plus, der, u22, u21, times, u41, u42, u31, u32, dout

Strategy


Polynomial Interpretation

There are no usable rules

The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:

din#(der(times(X, Y))) → din#(der(X))