YES
The TRS could be proven terminating. The proof took 897 ms.
The following DP Processors were used
Problem 1 was processed with processor DependencyGraph (102ms).
| Problem 2 was processed with processor PolynomialLinearRange4 (163ms).
| | Problem 4 was processed with processor PolynomialLinearRange4 (81ms).
| Problem 3 was processed with processor PolynomialLinearRange4 (175ms).
| | Problem 5 was processed with processor DependencyGraph (0ms).
Problem 1: DependencyGraph
Dependency Pair Problem
Dependency Pairs
U31#(tt, N) | → | T(N) | | U42#(tt, M, N) | → | plus#(N, M) |
isNat#(s(V1)) | → | U21#(isNat(V1)) | | U42#(tt, M, N) | → | T(N) |
plus#(N, 0) | → | isNat#(N) | | isNat#(plus(V1, V2)) | → | U11#(isNat(V1), V2) |
isNat#(s(V1)) | → | isNat#(V1) | | plus#(N, s(M)) | → | U41#(isNat(M), M, N) |
plus#(N, 0) | → | U31#(isNat(N), N) | | isNat#(plus(V1, V2)) | → | isNat#(V1) |
plus#(N, s(M)) | → | isNat#(M) | | U11#(tt, V2) | → | isNat#(V2) |
U11#(tt, V2) | → | U12#(isNat(V2)) | | U41#(tt, M, N) | → | U42#(isNat(N), M, N) |
U42#(tt, M, N) | → | T(M) | | U41#(tt, M, N) | → | isNat#(N) |
Rewrite Rules
U11(tt, V2) | → | U12(isNat(V2)) | | U12(tt) | → | tt |
U21(tt) | → | tt | | U31(tt, N) | → | N |
U41(tt, M, N) | → | U42(isNat(N), M, N) | | U42(tt, M, N) | → | s(plus(N, M)) |
isNat(0) | → | tt | | isNat(plus(V1, V2)) | → | U11(isNat(V1), V2) |
isNat(s(V1)) | → | U21(isNat(V1)) | | plus(N, 0) | → | U31(isNat(N), N) |
plus(N, s(M)) | → | U41(isNat(M), M, N) |
Original Signature
Termination of terms over the following signature is verified: isNat, plus, 0, U42, s, tt, U41, U11, U12, U31, U21
Strategy
Context-sensitive strategy:
μ(isNat) = μ(T) = μ(0) = μ(tt) = μ(isNat#) = ∅
μ(U11#) = μ(U12#) = μ(U31#) = μ(U21#) = μ(U42#) = μ(U41#) = μ(U42) = μ(s) = μ(U41) = μ(U11) = μ(U12) = μ(U31) = μ(U21) = {1}
μ(plus) = μ(plus#) = {1, 2}
The following SCCs where found
U42#(tt, M, N) → plus#(N, M) | U41#(tt, M, N) → U42#(isNat(N), M, N) |
plus#(N, s(M)) → U41#(isNat(M), M, N) |
isNat#(plus(V1, V2)) → U11#(isNat(V1), V2) | isNat#(s(V1)) → isNat#(V1) |
isNat#(plus(V1, V2)) → isNat#(V1) | U11#(tt, V2) → isNat#(V2) |
Problem 2: PolynomialLinearRange4
Dependency Pair Problem
Dependency Pairs
isNat#(plus(V1, V2)) | → | U11#(isNat(V1), V2) | | isNat#(s(V1)) | → | isNat#(V1) |
isNat#(plus(V1, V2)) | → | isNat#(V1) | | U11#(tt, V2) | → | isNat#(V2) |
Rewrite Rules
U11(tt, V2) | → | U12(isNat(V2)) | | U12(tt) | → | tt |
U21(tt) | → | tt | | U31(tt, N) | → | N |
U41(tt, M, N) | → | U42(isNat(N), M, N) | | U42(tt, M, N) | → | s(plus(N, M)) |
isNat(0) | → | tt | | isNat(plus(V1, V2)) | → | U11(isNat(V1), V2) |
isNat(s(V1)) | → | U21(isNat(V1)) | | plus(N, 0) | → | U31(isNat(N), N) |
plus(N, s(M)) | → | U41(isNat(M), M, N) |
Original Signature
Termination of terms over the following signature is verified: isNat, plus, 0, U42, s, tt, U41, U11, U12, U31, U21
Strategy
Context-sensitive strategy:
μ(isNat) = μ(T) = μ(0) = μ(tt) = μ(isNat#) = ∅
μ(U11#) = μ(U12#) = μ(U31#) = μ(U21#) = μ(U42#) = μ(U41#) = μ(U42) = μ(s) = μ(U41) = μ(U11) = μ(U12) = μ(U31) = μ(U21) = {1}
μ(plus) = μ(plus#) = {1, 2}
Polynomial Interpretation
- 0: 2
- U11(x,y): y + x + 1
- U11#(x,y): 2y + 1
- U12(x): 2
- U21(x): x
- U31(x,y): 0
- U41(x,y,z): 0
- U42(x,y,z): 0
- isNat(x): x
- isNat#(x): 2x
- plus(x,y): y + 2x + 1
- s(x): x
- tt: 2
Standard Usable rules
U11(tt, V2) | → | U12(isNat(V2)) | | isNat(0) | → | tt |
U21(tt) | → | tt | | U12(tt) | → | tt |
isNat(plus(V1, V2)) | → | U11(isNat(V1), V2) | | isNat(s(V1)) | → | U21(isNat(V1)) |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
isNat#(plus(V1, V2)) | → | U11#(isNat(V1), V2) | | isNat#(plus(V1, V2)) | → | isNat#(V1) |
U11#(tt, V2) | → | isNat#(V2) |
Problem 4: PolynomialLinearRange4
Dependency Pair Problem
Dependency Pairs
isNat#(s(V1)) | → | isNat#(V1) |
Rewrite Rules
U11(tt, V2) | → | U12(isNat(V2)) | | U12(tt) | → | tt |
U21(tt) | → | tt | | U31(tt, N) | → | N |
U41(tt, M, N) | → | U42(isNat(N), M, N) | | U42(tt, M, N) | → | s(plus(N, M)) |
isNat(0) | → | tt | | isNat(plus(V1, V2)) | → | U11(isNat(V1), V2) |
isNat(s(V1)) | → | U21(isNat(V1)) | | plus(N, 0) | → | U31(isNat(N), N) |
plus(N, s(M)) | → | U41(isNat(M), M, N) |
Original Signature
Termination of terms over the following signature is verified: isNat, plus, 0, s, U42, U41, tt, U11, U12, U31, U21
Strategy
Context-sensitive strategy:
μ(isNat) = μ(T) = μ(0) = μ(tt) = μ(isNat#) = ∅
μ(U11#) = μ(U12#) = μ(U31#) = μ(U21#) = μ(U42#) = μ(U41#) = μ(U42) = μ(s) = μ(U41) = μ(U11) = μ(U12) = μ(U31) = μ(U21) = {1}
μ(plus) = μ(plus#) = {1, 2}
Polynomial Interpretation
- 0: 0
- U11(x,y): 0
- U12(x): 0
- U21(x): 0
- U31(x,y): 0
- U41(x,y,z): 0
- U42(x,y,z): 0
- isNat(x): 0
- isNat#(x): x
- plus(x,y): 0
- s(x): x + 2
- 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:
isNat#(s(V1)) | → | isNat#(V1) |
Problem 3: PolynomialLinearRange4
Dependency Pair Problem
Dependency Pairs
U42#(tt, M, N) | → | plus#(N, M) | | U41#(tt, M, N) | → | U42#(isNat(N), M, N) |
plus#(N, s(M)) | → | U41#(isNat(M), M, N) |
Rewrite Rules
U11(tt, V2) | → | U12(isNat(V2)) | | U12(tt) | → | tt |
U21(tt) | → | tt | | U31(tt, N) | → | N |
U41(tt, M, N) | → | U42(isNat(N), M, N) | | U42(tt, M, N) | → | s(plus(N, M)) |
isNat(0) | → | tt | | isNat(plus(V1, V2)) | → | U11(isNat(V1), V2) |
isNat(s(V1)) | → | U21(isNat(V1)) | | plus(N, 0) | → | U31(isNat(N), N) |
plus(N, s(M)) | → | U41(isNat(M), M, N) |
Original Signature
Termination of terms over the following signature is verified: isNat, plus, 0, U42, s, tt, U41, U11, U12, U31, U21
Strategy
Context-sensitive strategy:
μ(isNat) = μ(T) = μ(0) = μ(tt) = μ(isNat#) = ∅
μ(U11#) = μ(U12#) = μ(U31#) = μ(U21#) = μ(U42#) = μ(U41#) = μ(U42) = μ(s) = μ(U41) = μ(U11) = μ(U12) = μ(U31) = μ(U21) = {1}
μ(plus) = μ(plus#) = {1, 2}
Polynomial Interpretation
- 0: 1
- U11(x,y): 1
- U12(x): 0
- U21(x): 1
- U31(x,y): y + 1
- U41(x,y,z): z + y + 3
- U41#(x,y,z): y + 2x + 1
- U42(x,y,z): z + y + 3
- U42#(x,y,z): y + 1
- isNat(x): 1
- plus(x,y): y + x
- plus#(x,y): y
- s(x): x + 3
- tt: 0
Standard Usable rules
U11(tt, V2) | → | U12(isNat(V2)) | | U31(tt, N) | → | N |
isNat(0) | → | tt | | U42(tt, M, N) | → | s(plus(N, M)) |
U21(tt) | → | tt | | U12(tt) | → | tt |
U41(tt, M, N) | → | U42(isNat(N), M, N) | | plus(N, s(M)) | → | U41(isNat(M), M, N) |
isNat(plus(V1, V2)) | → | U11(isNat(V1), V2) | | isNat(s(V1)) | → | U21(isNat(V1)) |
plus(N, 0) | → | U31(isNat(N), N) |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
U42#(tt, M, N) | → | plus#(N, M) |
Problem 5: DependencyGraph
Dependency Pair Problem
Dependency Pairs
U41#(tt, M, N) | → | U42#(isNat(N), M, N) | | plus#(N, s(M)) | → | U41#(isNat(M), M, N) |
Rewrite Rules
U11(tt, V2) | → | U12(isNat(V2)) | | U12(tt) | → | tt |
U21(tt) | → | tt | | U31(tt, N) | → | N |
U41(tt, M, N) | → | U42(isNat(N), M, N) | | U42(tt, M, N) | → | s(plus(N, M)) |
isNat(0) | → | tt | | isNat(plus(V1, V2)) | → | U11(isNat(V1), V2) |
isNat(s(V1)) | → | U21(isNat(V1)) | | plus(N, 0) | → | U31(isNat(N), N) |
plus(N, s(M)) | → | U41(isNat(M), M, N) |
Original Signature
Termination of terms over the following signature is verified: isNat, plus, 0, s, U42, U41, tt, U11, U12, U31, U21
Strategy
Context-sensitive strategy:
μ(isNat) = μ(T) = μ(0) = μ(tt) = μ(isNat#) = ∅
μ(U11#) = μ(U12#) = μ(U31#) = μ(U21#) = μ(U42#) = μ(U41#) = μ(U42) = μ(s) = μ(U41) = μ(U11) = μ(U12) = μ(U31) = μ(U21) = {1}
μ(plus) = μ(plus#) = {1, 2}
There are no SCCs!