YES
The TRS could be proven terminating. The proof took 892 ms.
The following DP Processors were used
Problem 1 was processed with processor DependencyGraph (79ms).
| Problem 2 was processed with processor PolynomialLinearRange4 (199ms).
| | Problem 4 was processed with processor DependencyGraph (16ms).
| | | Problem 6 was processed with processor PolynomialLinearRange4 (64ms).
| Problem 3 was processed with processor PolynomialLinearRange4 (208ms).
| | Problem 5 was processed with processor DependencyGraph (1ms).
Problem 1: DependencyGraph
Dependency Pair Problem
Dependency Pairs
U21#(tt, M, N) | → | T(N) | | and#(tt, X) | → | T(X) |
T(isNat(N)) | → | isNat#(N) | | isNat#(s(V1)) | → | isNat#(V1) |
plus#(N, 0) | → | isNat#(N) | | U11#(tt, N) | → | T(N) |
isNat#(plus(V1, V2)) | → | isNat#(V1) | | T(isNat(x_1)) | → | T(x_1) |
isNat#(plus(V1, V2)) | → | and#(isNat(V1), isNat(V2)) | | plus#(N, s(M)) | → | U21#(and(isNat(M), isNat(N)), M, N) |
T(isNat(V2)) | → | isNat#(V2) | | plus#(N, s(M)) | → | isNat#(M) |
plus#(N, s(M)) | → | and#(isNat(M), isNat(N)) | | plus#(N, 0) | → | U11#(isNat(N), N) |
U21#(tt, M, N) | → | T(M) | | U21#(tt, M, N) | → | plus#(N, M) |
Rewrite Rules
U11(tt, N) | → | N | | U21(tt, M, N) | → | s(plus(N, M)) |
and(tt, X) | → | X | | isNat(0) | → | tt |
isNat(plus(V1, V2)) | → | and(isNat(V1), isNat(V2)) | | isNat(s(V1)) | → | isNat(V1) |
plus(N, 0) | → | U11(isNat(N), N) | | plus(N, s(M)) | → | U21(and(isNat(M), isNat(N)), M, N) |
Original Signature
Termination of terms over the following signature is verified: isNat, plus, 0, s, tt, U11, U21, and
Strategy
Context-sensitive strategy:
μ(isNat) = μ(T) = μ(0) = μ(tt) = μ(isNat#) = ∅
μ(U11#) = μ(U21#) = μ(and#) = μ(and) = μ(s) = μ(U11) = μ(U21) = {1}
μ(plus) = μ(plus#) = {1, 2}
The following SCCs where found
U21#(tt, M, N) → plus#(N, M) | plus#(N, s(M)) → U21#(and(isNat(M), isNat(N)), M, N) |
and#(tt, X) → T(X) | T(isNat(N)) → isNat#(N) |
isNat#(s(V1)) → isNat#(V1) | isNat#(plus(V1, V2)) → isNat#(V1) |
isNat#(plus(V1, V2)) → and#(isNat(V1), isNat(V2)) | T(isNat(x_1)) → T(x_1) |
T(isNat(V2)) → isNat#(V2) |
Problem 2: PolynomialLinearRange4
Dependency Pair Problem
Dependency Pairs
and#(tt, X) | → | T(X) | | T(isNat(N)) | → | isNat#(N) |
isNat#(s(V1)) | → | isNat#(V1) | | isNat#(plus(V1, V2)) | → | isNat#(V1) |
isNat#(plus(V1, V2)) | → | and#(isNat(V1), isNat(V2)) | | T(isNat(x_1)) | → | T(x_1) |
T(isNat(V2)) | → | isNat#(V2) |
Rewrite Rules
U11(tt, N) | → | N | | U21(tt, M, N) | → | s(plus(N, M)) |
and(tt, X) | → | X | | isNat(0) | → | tt |
isNat(plus(V1, V2)) | → | and(isNat(V1), isNat(V2)) | | isNat(s(V1)) | → | isNat(V1) |
plus(N, 0) | → | U11(isNat(N), N) | | plus(N, s(M)) | → | U21(and(isNat(M), isNat(N)), M, N) |
Original Signature
Termination of terms over the following signature is verified: isNat, plus, 0, s, tt, U11, U21, and
Strategy
Context-sensitive strategy:
μ(isNat) = μ(T) = μ(0) = μ(tt) = μ(isNat#) = ∅
μ(U11#) = μ(U21#) = μ(and#) = μ(and) = μ(s) = μ(U11) = μ(U21) = {1}
μ(plus) = μ(plus#) = {1, 2}
Polynomial Interpretation
- 0: 0
- T(x): 2x
- U11(x,y): y + 1
- U21(x,y,z): z + y + 2
- and(x,y): y + x + 1
- and#(x,y): 2y
- isNat(x): x
- isNat#(x): 2x
- plus(x,y): y + x + 1
- s(x): x + 1
- tt: 0
Standard Usable rules
isNat(s(V1)) | → | isNat(V1) | | isNat(0) | → | tt |
plus(N, s(M)) | → | U21(and(isNat(M), isNat(N)), M, N) | | U11(tt, N) | → | N |
and(tt, X) | → | X | | isNat(plus(V1, V2)) | → | and(isNat(V1), isNat(V2)) |
plus(N, 0) | → | U11(isNat(N), N) | | U21(tt, M, N) | → | s(plus(N, M)) |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
isNat#(s(V1)) | → | isNat#(V1) | | isNat#(plus(V1, V2)) | → | isNat#(V1) |
isNat#(plus(V1, V2)) | → | and#(isNat(V1), isNat(V2)) |
Problem 4: DependencyGraph
Dependency Pair Problem
Dependency Pairs
and#(tt, X) | → | T(X) | | T(isNat(N)) | → | isNat#(N) |
T(isNat(x_1)) | → | T(x_1) | | T(isNat(V2)) | → | isNat#(V2) |
Rewrite Rules
U11(tt, N) | → | N | | U21(tt, M, N) | → | s(plus(N, M)) |
and(tt, X) | → | X | | isNat(0) | → | tt |
isNat(plus(V1, V2)) | → | and(isNat(V1), isNat(V2)) | | isNat(s(V1)) | → | isNat(V1) |
plus(N, 0) | → | U11(isNat(N), N) | | plus(N, s(M)) | → | U21(and(isNat(M), isNat(N)), M, N) |
Original Signature
Termination of terms over the following signature is verified: isNat, plus, 0, s, tt, U11, U21, and
Strategy
Context-sensitive strategy:
μ(isNat) = μ(T) = μ(0) = μ(tt) = μ(isNat#) = ∅
μ(U11#) = μ(U21#) = μ(and#) = μ(and) = μ(s) = μ(U11) = μ(U21) = {1}
μ(plus) = μ(plus#) = {1, 2}
The following SCCs where found
Problem 6: PolynomialLinearRange4
Dependency Pair Problem
Dependency Pairs
Rewrite Rules
U11(tt, N) | → | N | | U21(tt, M, N) | → | s(plus(N, M)) |
and(tt, X) | → | X | | isNat(0) | → | tt |
isNat(plus(V1, V2)) | → | and(isNat(V1), isNat(V2)) | | isNat(s(V1)) | → | isNat(V1) |
plus(N, 0) | → | U11(isNat(N), N) | | plus(N, s(M)) | → | U21(and(isNat(M), isNat(N)), M, N) |
Original Signature
Termination of terms over the following signature is verified: isNat, plus, 0, s, tt, U11, U21, and
Strategy
Context-sensitive strategy:
μ(isNat) = μ(T) = μ(0) = μ(tt) = μ(isNat#) = ∅
μ(U11#) = μ(U21#) = μ(and#) = μ(and) = μ(s) = μ(U11) = μ(U21) = {1}
μ(plus) = μ(plus#) = {1, 2}
Polynomial Interpretation
- 0: 0
- T(x): x
- U11(x,y): 0
- U21(x,y,z): 0
- and(x,y): 0
- isNat(x): x + 2
- plus(x,y): 0
- s(x): 0
- tt: 0
There are no usable rules
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
Problem 3: PolynomialLinearRange4
Dependency Pair Problem
Dependency Pairs
U21#(tt, M, N) | → | plus#(N, M) | | plus#(N, s(M)) | → | U21#(and(isNat(M), isNat(N)), M, N) |
Rewrite Rules
U11(tt, N) | → | N | | U21(tt, M, N) | → | s(plus(N, M)) |
and(tt, X) | → | X | | isNat(0) | → | tt |
isNat(plus(V1, V2)) | → | and(isNat(V1), isNat(V2)) | | isNat(s(V1)) | → | isNat(V1) |
plus(N, 0) | → | U11(isNat(N), N) | | plus(N, s(M)) | → | U21(and(isNat(M), isNat(N)), M, N) |
Original Signature
Termination of terms over the following signature is verified: isNat, plus, 0, s, tt, U11, U21, and
Strategy
Context-sensitive strategy:
μ(isNat) = μ(T) = μ(0) = μ(tt) = μ(isNat#) = ∅
μ(U11#) = μ(U21#) = μ(and#) = μ(and) = μ(s) = μ(U11) = μ(U21) = {1}
μ(plus) = μ(plus#) = {1, 2}
Polynomial Interpretation
- 0: 1
- U11(x,y): y + 1
- U21(x,y,z): z + y + 1
- U21#(x,y,z): 2y + x + 1
- and(x,y): y
- isNat(x): 1
- plus(x,y): y + x
- plus#(x,y): 2y
- s(x): x + 1
- tt: 1
Standard Usable rules
isNat(s(V1)) | → | isNat(V1) | | isNat(0) | → | tt |
plus(N, s(M)) | → | U21(and(isNat(M), isNat(N)), M, N) | | U11(tt, N) | → | N |
and(tt, X) | → | X | | isNat(plus(V1, V2)) | → | and(isNat(V1), isNat(V2)) |
plus(N, 0) | → | U11(isNat(N), N) | | U21(tt, M, N) | → | s(plus(N, M)) |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
U21#(tt, M, N) | → | plus#(N, M) |
Problem 5: DependencyGraph
Dependency Pair Problem
Dependency Pairs
plus#(N, s(M)) | → | U21#(and(isNat(M), isNat(N)), M, N) |
Rewrite Rules
U11(tt, N) | → | N | | U21(tt, M, N) | → | s(plus(N, M)) |
and(tt, X) | → | X | | isNat(0) | → | tt |
isNat(plus(V1, V2)) | → | and(isNat(V1), isNat(V2)) | | isNat(s(V1)) | → | isNat(V1) |
plus(N, 0) | → | U11(isNat(N), N) | | plus(N, s(M)) | → | U21(and(isNat(M), isNat(N)), M, N) |
Original Signature
Termination of terms over the following signature is verified: isNat, plus, 0, s, tt, U11, U21, and
Strategy
Context-sensitive strategy:
μ(isNat) = μ(T) = μ(0) = μ(tt) = μ(isNat#) = ∅
μ(U11#) = μ(U21#) = μ(and#) = μ(and) = μ(s) = μ(U11) = μ(U21) = {1}
μ(plus) = μ(plus#) = {1, 2}
There are no SCCs!