YES
The TRS could be proven terminating. The proof took 10321 ms.
The following DP Processors were used
Problem 1 was processed with processor DependencyGraph (346ms).
| Problem 2 was processed with processor PolynomialLinearRange4iUR (3612ms).
| | Problem 8 was processed with processor PolynomialLinearRange4iUR (2127ms).
| | | Problem 9 was processed with processor PolynomialLinearRange4iUR (1662ms).
| | | | Problem 10 was processed with processor PolynomialLinearRange4iUR (1540ms).
| | | | | Problem 11 was processed with processor PolynomialLinearRange4iUR (753ms).
| | | | | | Problem 12 was processed with processor DependencyGraph (1ms).
| Problem 3 was processed with processor SubtermCriterion (1ms).
| | Problem 6 was processed with processor SubtermCriterion (1ms).
| Problem 4 was processed with processor SubtermCriterion (21ms).
| Problem 5 was processed with processor SubtermCriterion (45ms).
| | Problem 7 was processed with processor SubtermCriterion (1ms).
Problem 1: DependencyGraph
Dependency Pair Problem
Dependency Pairs
| and#(active(X1), X2) | → | and#(X1, X2) | | and#(X1, active(X2)) | → | and#(X1, X2) |
| mark#(tt) | → | active#(tt) | | mark#(s(X)) | → | s#(mark(X)) |
| mark#(plus(X1, X2)) | → | mark#(X2) | | plus#(X1, mark(X2)) | → | plus#(X1, X2) |
| mark#(and(X1, X2)) | → | active#(and(mark(X1), X2)) | | mark#(s(X)) | → | mark#(X) |
| and#(X1, mark(X2)) | → | and#(X1, X2) | | active#(plus(N, s(M))) | → | plus#(N, M) |
| mark#(0) | → | active#(0) | | mark#(plus(X1, X2)) | → | active#(plus(mark(X1), mark(X2))) |
| mark#(s(X)) | → | active#(s(mark(X))) | | mark#(and(X1, X2)) | → | and#(mark(X1), X2) |
| active#(plus(N, 0)) | → | mark#(N) | | mark#(plus(X1, X2)) | → | plus#(mark(X1), mark(X2)) |
| active#(and(tt, X)) | → | mark#(X) | | and#(mark(X1), X2) | → | and#(X1, X2) |
| mark#(plus(X1, X2)) | → | mark#(X1) | | s#(mark(X)) | → | s#(X) |
| mark#(and(X1, X2)) | → | mark#(X1) | | active#(plus(N, s(M))) | → | s#(plus(N, M)) |
| active#(plus(N, s(M))) | → | mark#(s(plus(N, M))) | | plus#(X1, active(X2)) | → | plus#(X1, X2) |
| s#(active(X)) | → | s#(X) | | plus#(mark(X1), X2) | → | plus#(X1, X2) |
| plus#(active(X1), X2) | → | plus#(X1, X2) |
Rewrite Rules
| active(and(tt, X)) | → | mark(X) | | active(plus(N, 0)) | → | mark(N) |
| active(plus(N, s(M))) | → | mark(s(plus(N, M))) | | mark(and(X1, X2)) | → | active(and(mark(X1), X2)) |
| mark(tt) | → | active(tt) | | mark(plus(X1, X2)) | → | active(plus(mark(X1), mark(X2))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(mark(X))) |
| and(mark(X1), X2) | → | and(X1, X2) | | and(X1, mark(X2)) | → | and(X1, X2) |
| and(active(X1), X2) | → | and(X1, X2) | | and(X1, active(X2)) | → | and(X1, X2) |
| plus(mark(X1), X2) | → | plus(X1, X2) | | plus(X1, mark(X2)) | → | plus(X1, X2) |
| plus(active(X1), X2) | → | plus(X1, X2) | | plus(X1, active(X2)) | → | plus(X1, X2) |
| s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
Original Signature
Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and
Strategy
The following SCCs where found
| s#(mark(X)) → s#(X) | s#(active(X)) → s#(X) |
| and#(active(X1), X2) → and#(X1, X2) | and#(X1, active(X2)) → and#(X1, X2) |
| and#(mark(X1), X2) → and#(X1, X2) | and#(X1, mark(X2)) → and#(X1, X2) |
| mark#(and(X1, X2)) → mark#(X1) | mark#(plus(X1, X2)) → active#(plus(mark(X1), mark(X2))) |
| mark#(s(X)) → active#(s(mark(X))) | mark#(plus(X1, X2)) → mark#(X2) |
| active#(plus(N, 0)) → mark#(N) | active#(plus(N, s(M))) → mark#(s(plus(N, M))) |
| mark#(and(X1, X2)) → active#(and(mark(X1), X2)) | mark#(s(X)) → mark#(X) |
| active#(and(tt, X)) → mark#(X) | mark#(plus(X1, X2)) → mark#(X1) |
| plus#(X1, active(X2)) → plus#(X1, X2) | plus#(X1, mark(X2)) → plus#(X1, X2) |
| plus#(mark(X1), X2) → plus#(X1, X2) | plus#(active(X1), X2) → plus#(X1, X2) |
Problem 2: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
| mark#(and(X1, X2)) | → | mark#(X1) | | mark#(plus(X1, X2)) | → | active#(plus(mark(X1), mark(X2))) |
| mark#(s(X)) | → | active#(s(mark(X))) | | mark#(plus(X1, X2)) | → | mark#(X2) |
| active#(plus(N, 0)) | → | mark#(N) | | active#(plus(N, s(M))) | → | mark#(s(plus(N, M))) |
| mark#(and(X1, X2)) | → | active#(and(mark(X1), X2)) | | mark#(s(X)) | → | mark#(X) |
| active#(and(tt, X)) | → | mark#(X) | | mark#(plus(X1, X2)) | → | mark#(X1) |
Rewrite Rules
| active(and(tt, X)) | → | mark(X) | | active(plus(N, 0)) | → | mark(N) |
| active(plus(N, s(M))) | → | mark(s(plus(N, M))) | | mark(and(X1, X2)) | → | active(and(mark(X1), X2)) |
| mark(tt) | → | active(tt) | | mark(plus(X1, X2)) | → | active(plus(mark(X1), mark(X2))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(mark(X))) |
| and(mark(X1), X2) | → | and(X1, X2) | | and(X1, mark(X2)) | → | and(X1, X2) |
| and(active(X1), X2) | → | and(X1, X2) | | and(X1, active(X2)) | → | and(X1, X2) |
| plus(mark(X1), X2) | → | plus(X1, X2) | | plus(X1, mark(X2)) | → | plus(X1, X2) |
| plus(active(X1), X2) | → | plus(X1, X2) | | plus(X1, active(X2)) | → | plus(X1, X2) |
| s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
Original Signature
Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and
Strategy
Polynomial Interpretation
- 0: 2
- active(x): 0
- active#(x): 2x
- and(x,y): 1
- mark(x): 3
- mark#(x): 2
- plus(x,y): 1
- s(x): 0
- tt: 3
Improved Usable rules
| and(X1, mark(X2)) | → | and(X1, X2) | | plus(active(X1), X2) | → | plus(X1, X2) |
| and(mark(X1), X2) | → | and(X1, X2) | | plus(mark(X1), X2) | → | plus(X1, X2) |
| plus(X1, mark(X2)) | → | plus(X1, X2) | | s(mark(X)) | → | s(X) |
| and(X1, active(X2)) | → | and(X1, X2) | | and(active(X1), X2) | → | and(X1, X2) |
| s(active(X)) | → | s(X) | | plus(X1, active(X2)) | → | plus(X1, X2) |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
| mark#(s(X)) | → | active#(s(mark(X))) |
Problem 8: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
| mark#(and(X1, X2)) | → | mark#(X1) | | mark#(plus(X1, X2)) | → | active#(plus(mark(X1), mark(X2))) |
| mark#(plus(X1, X2)) | → | mark#(X2) | | active#(plus(N, s(M))) | → | mark#(s(plus(N, M))) |
| active#(plus(N, 0)) | → | mark#(N) | | mark#(and(X1, X2)) | → | active#(and(mark(X1), X2)) |
| mark#(s(X)) | → | mark#(X) | | active#(and(tt, X)) | → | mark#(X) |
| mark#(plus(X1, X2)) | → | mark#(X1) |
Rewrite Rules
| active(and(tt, X)) | → | mark(X) | | active(plus(N, 0)) | → | mark(N) |
| active(plus(N, s(M))) | → | mark(s(plus(N, M))) | | mark(and(X1, X2)) | → | active(and(mark(X1), X2)) |
| mark(tt) | → | active(tt) | | mark(plus(X1, X2)) | → | active(plus(mark(X1), mark(X2))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(mark(X))) |
| and(mark(X1), X2) | → | and(X1, X2) | | and(X1, mark(X2)) | → | and(X1, X2) |
| and(active(X1), X2) | → | and(X1, X2) | | and(X1, active(X2)) | → | and(X1, X2) |
| plus(mark(X1), X2) | → | plus(X1, X2) | | plus(X1, mark(X2)) | → | plus(X1, X2) |
| plus(active(X1), X2) | → | plus(X1, X2) | | plus(X1, active(X2)) | → | plus(X1, X2) |
| s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
Original Signature
Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and
Strategy
Polynomial Interpretation
- 0: 0
- active(x): x
- active#(x): x
- and(x,y): y + x + 2
- mark(x): x
- mark#(x): x
- plus(x,y): 2y + 2x + 2
- s(x): x
- tt: 0
Improved Usable rules
| plus(X1, mark(X2)) | → | plus(X1, X2) | | mark(s(X)) | → | active(s(mark(X))) |
| mark(plus(X1, X2)) | → | active(plus(mark(X1), mark(X2))) | | mark(tt) | → | active(tt) |
| active(plus(N, s(M))) | → | mark(s(plus(N, M))) | | and(active(X1), X2) | → | and(X1, X2) |
| active(and(tt, X)) | → | mark(X) | | and(X1, mark(X2)) | → | and(X1, X2) |
| and(mark(X1), X2) | → | and(X1, X2) | | plus(active(X1), X2) | → | plus(X1, X2) |
| plus(mark(X1), X2) | → | plus(X1, X2) | | mark(and(X1, X2)) | → | active(and(mark(X1), X2)) |
| active(plus(N, 0)) | → | mark(N) | | s(mark(X)) | → | s(X) |
| and(X1, active(X2)) | → | and(X1, X2) | | mark(0) | → | active(0) |
| s(active(X)) | → | s(X) | | plus(X1, active(X2)) | → | plus(X1, X2) |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
| mark#(and(X1, X2)) | → | mark#(X1) | | mark#(plus(X1, X2)) | → | mark#(X2) |
| active#(plus(N, 0)) | → | mark#(N) | | active#(and(tt, X)) | → | mark#(X) |
| mark#(plus(X1, X2)) | → | mark#(X1) |
Problem 9: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
| mark#(plus(X1, X2)) | → | active#(plus(mark(X1), mark(X2))) | | active#(plus(N, s(M))) | → | mark#(s(plus(N, M))) |
| mark#(and(X1, X2)) | → | active#(and(mark(X1), X2)) | | mark#(s(X)) | → | mark#(X) |
Rewrite Rules
| active(and(tt, X)) | → | mark(X) | | active(plus(N, 0)) | → | mark(N) |
| active(plus(N, s(M))) | → | mark(s(plus(N, M))) | | mark(and(X1, X2)) | → | active(and(mark(X1), X2)) |
| mark(tt) | → | active(tt) | | mark(plus(X1, X2)) | → | active(plus(mark(X1), mark(X2))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(mark(X))) |
| and(mark(X1), X2) | → | and(X1, X2) | | and(X1, mark(X2)) | → | and(X1, X2) |
| and(active(X1), X2) | → | and(X1, X2) | | and(X1, active(X2)) | → | and(X1, X2) |
| plus(mark(X1), X2) | → | plus(X1, X2) | | plus(X1, mark(X2)) | → | plus(X1, X2) |
| plus(active(X1), X2) | → | plus(X1, X2) | | plus(X1, active(X2)) | → | plus(X1, X2) |
| s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
Original Signature
Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and
Strategy
Polynomial Interpretation
- 0: 0
- active(x): x
- active#(x): x
- and(x,y): y
- mark(x): x
- mark#(x): x
- plus(x,y): y + 2x + 1
- s(x): x + 1
- tt: 0
Improved Usable rules
| plus(X1, mark(X2)) | → | plus(X1, X2) | | mark(s(X)) | → | active(s(mark(X))) |
| mark(plus(X1, X2)) | → | active(plus(mark(X1), mark(X2))) | | mark(tt) | → | active(tt) |
| active(plus(N, s(M))) | → | mark(s(plus(N, M))) | | and(active(X1), X2) | → | and(X1, X2) |
| active(and(tt, X)) | → | mark(X) | | and(X1, mark(X2)) | → | and(X1, X2) |
| and(mark(X1), X2) | → | and(X1, X2) | | plus(active(X1), X2) | → | plus(X1, X2) |
| plus(mark(X1), X2) | → | plus(X1, X2) | | mark(and(X1, X2)) | → | active(and(mark(X1), X2)) |
| active(plus(N, 0)) | → | mark(N) | | s(mark(X)) | → | s(X) |
| and(X1, active(X2)) | → | and(X1, X2) | | mark(0) | → | active(0) |
| s(active(X)) | → | s(X) | | plus(X1, active(X2)) | → | plus(X1, X2) |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
Problem 10: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
| mark#(plus(X1, X2)) | → | active#(plus(mark(X1), mark(X2))) | | active#(plus(N, s(M))) | → | mark#(s(plus(N, M))) |
| mark#(and(X1, X2)) | → | active#(and(mark(X1), X2)) |
Rewrite Rules
| active(and(tt, X)) | → | mark(X) | | active(plus(N, 0)) | → | mark(N) |
| active(plus(N, s(M))) | → | mark(s(plus(N, M))) | | mark(and(X1, X2)) | → | active(and(mark(X1), X2)) |
| mark(tt) | → | active(tt) | | mark(plus(X1, X2)) | → | active(plus(mark(X1), mark(X2))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(mark(X))) |
| and(mark(X1), X2) | → | and(X1, X2) | | and(X1, mark(X2)) | → | and(X1, X2) |
| and(active(X1), X2) | → | and(X1, X2) | | and(X1, active(X2)) | → | and(X1, X2) |
| plus(mark(X1), X2) | → | plus(X1, X2) | | plus(X1, mark(X2)) | → | plus(X1, X2) |
| plus(active(X1), X2) | → | plus(X1, X2) | | plus(X1, active(X2)) | → | plus(X1, X2) |
| s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
Original Signature
Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and
Strategy
Polynomial Interpretation
- 0: 3
- active(x): 0
- active#(x): 0
- and(x,y): y + x
- mark(x): 2
- mark#(x): 2x
- plus(x,y): 1
- s(x): 0
- tt: 0
Improved Usable rules
| s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
| mark#(plus(X1, X2)) | → | active#(plus(mark(X1), mark(X2))) |
Problem 11: PolynomialLinearRange4iUR
Dependency Pair Problem
Dependency Pairs
| active#(plus(N, s(M))) | → | mark#(s(plus(N, M))) | | mark#(and(X1, X2)) | → | active#(and(mark(X1), X2)) |
Rewrite Rules
| active(and(tt, X)) | → | mark(X) | | active(plus(N, 0)) | → | mark(N) |
| active(plus(N, s(M))) | → | mark(s(plus(N, M))) | | mark(and(X1, X2)) | → | active(and(mark(X1), X2)) |
| mark(tt) | → | active(tt) | | mark(plus(X1, X2)) | → | active(plus(mark(X1), mark(X2))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(mark(X))) |
| and(mark(X1), X2) | → | and(X1, X2) | | and(X1, mark(X2)) | → | and(X1, X2) |
| and(active(X1), X2) | → | and(X1, X2) | | and(X1, active(X2)) | → | and(X1, X2) |
| plus(mark(X1), X2) | → | plus(X1, X2) | | plus(X1, mark(X2)) | → | plus(X1, X2) |
| plus(active(X1), X2) | → | plus(X1, X2) | | plus(X1, active(X2)) | → | plus(X1, X2) |
| s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
Original Signature
Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and
Strategy
Polynomial Interpretation
- 0: 3
- active(x): 0
- active#(x): x
- and(x,y): 2
- mark(x): 0
- mark#(x): x
- plus(x,y): 1
- s(x): 0
- tt: 1
Improved Usable rules
| and(X1, mark(X2)) | → | and(X1, X2) | | and(mark(X1), X2) | → | and(X1, X2) |
| s(mark(X)) | → | s(X) | | and(X1, active(X2)) | → | and(X1, X2) |
| and(active(X1), X2) | → | and(X1, X2) | | s(active(X)) | → | s(X) |
The following dependency pairs are strictly oriented by an ordering on the given polynomial interpretation, thus they are removed:
| active#(plus(N, s(M))) | → | mark#(s(plus(N, M))) |
Problem 12: DependencyGraph
Dependency Pair Problem
Dependency Pairs
| mark#(and(X1, X2)) | → | active#(and(mark(X1), X2)) |
Rewrite Rules
| active(and(tt, X)) | → | mark(X) | | active(plus(N, 0)) | → | mark(N) |
| active(plus(N, s(M))) | → | mark(s(plus(N, M))) | | mark(and(X1, X2)) | → | active(and(mark(X1), X2)) |
| mark(tt) | → | active(tt) | | mark(plus(X1, X2)) | → | active(plus(mark(X1), mark(X2))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(mark(X))) |
| and(mark(X1), X2) | → | and(X1, X2) | | and(X1, mark(X2)) | → | and(X1, X2) |
| and(active(X1), X2) | → | and(X1, X2) | | and(X1, active(X2)) | → | and(X1, X2) |
| plus(mark(X1), X2) | → | plus(X1, X2) | | plus(X1, mark(X2)) | → | plus(X1, X2) |
| plus(active(X1), X2) | → | plus(X1, X2) | | plus(X1, active(X2)) | → | plus(X1, X2) |
| s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
Original Signature
Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and
Strategy
There are no SCCs!
Problem 3: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| and#(active(X1), X2) | → | and#(X1, X2) | | and#(X1, active(X2)) | → | and#(X1, X2) |
| and#(mark(X1), X2) | → | and#(X1, X2) | | and#(X1, mark(X2)) | → | and#(X1, X2) |
Rewrite Rules
| active(and(tt, X)) | → | mark(X) | | active(plus(N, 0)) | → | mark(N) |
| active(plus(N, s(M))) | → | mark(s(plus(N, M))) | | mark(and(X1, X2)) | → | active(and(mark(X1), X2)) |
| mark(tt) | → | active(tt) | | mark(plus(X1, X2)) | → | active(plus(mark(X1), mark(X2))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(mark(X))) |
| and(mark(X1), X2) | → | and(X1, X2) | | and(X1, mark(X2)) | → | and(X1, X2) |
| and(active(X1), X2) | → | and(X1, X2) | | and(X1, active(X2)) | → | and(X1, X2) |
| plus(mark(X1), X2) | → | plus(X1, X2) | | plus(X1, mark(X2)) | → | plus(X1, X2) |
| plus(active(X1), X2) | → | plus(X1, X2) | | plus(X1, active(X2)) | → | plus(X1, X2) |
| s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
Original Signature
Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| and#(active(X1), X2) | → | and#(X1, X2) | | and#(mark(X1), X2) | → | and#(X1, X2) |
Problem 6: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| and#(X1, active(X2)) | → | and#(X1, X2) | | and#(X1, mark(X2)) | → | and#(X1, X2) |
Rewrite Rules
| active(and(tt, X)) | → | mark(X) | | active(plus(N, 0)) | → | mark(N) |
| active(plus(N, s(M))) | → | mark(s(plus(N, M))) | | mark(and(X1, X2)) | → | active(and(mark(X1), X2)) |
| mark(tt) | → | active(tt) | | mark(plus(X1, X2)) | → | active(plus(mark(X1), mark(X2))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(mark(X))) |
| and(mark(X1), X2) | → | and(X1, X2) | | and(X1, mark(X2)) | → | and(X1, X2) |
| and(active(X1), X2) | → | and(X1, X2) | | and(X1, active(X2)) | → | and(X1, X2) |
| plus(mark(X1), X2) | → | plus(X1, X2) | | plus(X1, mark(X2)) | → | plus(X1, X2) |
| plus(active(X1), X2) | → | plus(X1, X2) | | plus(X1, active(X2)) | → | plus(X1, X2) |
| s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
Original Signature
Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| and#(X1, active(X2)) | → | and#(X1, X2) | | and#(X1, mark(X2)) | → | and#(X1, X2) |
Problem 4: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| s#(mark(X)) | → | s#(X) | | s#(active(X)) | → | s#(X) |
Rewrite Rules
| active(and(tt, X)) | → | mark(X) | | active(plus(N, 0)) | → | mark(N) |
| active(plus(N, s(M))) | → | mark(s(plus(N, M))) | | mark(and(X1, X2)) | → | active(and(mark(X1), X2)) |
| mark(tt) | → | active(tt) | | mark(plus(X1, X2)) | → | active(plus(mark(X1), mark(X2))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(mark(X))) |
| and(mark(X1), X2) | → | and(X1, X2) | | and(X1, mark(X2)) | → | and(X1, X2) |
| and(active(X1), X2) | → | and(X1, X2) | | and(X1, active(X2)) | → | and(X1, X2) |
| plus(mark(X1), X2) | → | plus(X1, X2) | | plus(X1, mark(X2)) | → | plus(X1, X2) |
| plus(active(X1), X2) | → | plus(X1, X2) | | plus(X1, active(X2)) | → | plus(X1, X2) |
| s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
Original Signature
Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| s#(mark(X)) | → | s#(X) | | s#(active(X)) | → | s#(X) |
Problem 5: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| plus#(X1, active(X2)) | → | plus#(X1, X2) | | plus#(X1, mark(X2)) | → | plus#(X1, X2) |
| plus#(mark(X1), X2) | → | plus#(X1, X2) | | plus#(active(X1), X2) | → | plus#(X1, X2) |
Rewrite Rules
| active(and(tt, X)) | → | mark(X) | | active(plus(N, 0)) | → | mark(N) |
| active(plus(N, s(M))) | → | mark(s(plus(N, M))) | | mark(and(X1, X2)) | → | active(and(mark(X1), X2)) |
| mark(tt) | → | active(tt) | | mark(plus(X1, X2)) | → | active(plus(mark(X1), mark(X2))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(mark(X))) |
| and(mark(X1), X2) | → | and(X1, X2) | | and(X1, mark(X2)) | → | and(X1, X2) |
| and(active(X1), X2) | → | and(X1, X2) | | and(X1, active(X2)) | → | and(X1, X2) |
| plus(mark(X1), X2) | → | plus(X1, X2) | | plus(X1, mark(X2)) | → | plus(X1, X2) |
| plus(active(X1), X2) | → | plus(X1, X2) | | plus(X1, active(X2)) | → | plus(X1, X2) |
| s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
Original Signature
Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| plus#(mark(X1), X2) | → | plus#(X1, X2) | | plus#(active(X1), X2) | → | plus#(X1, X2) |
Problem 7: SubtermCriterion
Dependency Pair Problem
Dependency Pairs
| plus#(X1, mark(X2)) | → | plus#(X1, X2) | | plus#(X1, active(X2)) | → | plus#(X1, X2) |
Rewrite Rules
| active(and(tt, X)) | → | mark(X) | | active(plus(N, 0)) | → | mark(N) |
| active(plus(N, s(M))) | → | mark(s(plus(N, M))) | | mark(and(X1, X2)) | → | active(and(mark(X1), X2)) |
| mark(tt) | → | active(tt) | | mark(plus(X1, X2)) | → | active(plus(mark(X1), mark(X2))) |
| mark(0) | → | active(0) | | mark(s(X)) | → | active(s(mark(X))) |
| and(mark(X1), X2) | → | and(X1, X2) | | and(X1, mark(X2)) | → | and(X1, X2) |
| and(active(X1), X2) | → | and(X1, X2) | | and(X1, active(X2)) | → | and(X1, X2) |
| plus(mark(X1), X2) | → | plus(X1, X2) | | plus(X1, mark(X2)) | → | plus(X1, X2) |
| plus(active(X1), X2) | → | plus(X1, X2) | | plus(X1, active(X2)) | → | plus(X1, X2) |
| s(mark(X)) | → | s(X) | | s(active(X)) | → | s(X) |
Original Signature
Termination of terms over the following signature is verified: plus, 0, s, tt, active, mark, and
Strategy
Projection
The following projection was used:
Thus, the following dependency pairs are removed:
| plus#(X1, active(X2)) | → | plus#(X1, X2) | | plus#(X1, mark(X2)) | → | plus#(X1, X2) |