Term Rewriting System R:
[x]
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
bits(0) -> 0
bits(s(x)) -> s(bits(half(s(x))))
Termination of R to be shown.
TRS
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
bits(0) -> 0
where the Polynomial interpretation:
POL(0) | = 0 |
POL(bits(x1)) | = 1 + x1 |
POL(s(x1)) | = x1 |
POL(half(x1)) | = x1 |
was used.
Not all Rules of R can be deleted, so we still have to regard a part of R.
TRS
↳RRRPolo
→TRS2
↳Dependency Pair Analysis
R contains the following Dependency Pairs:
HALF(s(s(x))) -> HALF(x)
BITS(s(x)) -> BITS(half(s(x)))
BITS(s(x)) -> HALF(s(x))
Furthermore, R contains two SCCs.
TRS
↳RRRPolo
→TRS2
↳DPs
→DP Problem 1
↳Non-Overlappingness Check
→DP Problem 2
↳NOC
Dependency Pair:
HALF(s(s(x))) -> HALF(x)
Rules:
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
bits(s(x)) -> s(bits(half(s(x))))
R does not overlap into P. Moreover, R is locally confluent (all critical pairs are trivially joinable).Hence we can switch to innermost.
The transformation is resulting in one subcycle:
TRS
↳RRRPolo
→TRS2
↳DPs
→DP Problem 1
↳NOC
...
→DP Problem 3
↳Usable Rules (Innermost)
→DP Problem 2
↳NOC
Dependency Pair:
HALF(s(s(x))) -> HALF(x)
Rules:
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
bits(s(x)) -> s(bits(half(s(x))))
Strategy:
innermost
As we are in the innermost case, we can delete all 4 non-usable-rules.
TRS
↳RRRPolo
→TRS2
↳DPs
→DP Problem 1
↳NOC
...
→DP Problem 4
↳Modular Removal of Rules
→DP Problem 2
↳NOC
Dependency Pair:
HALF(s(s(x))) -> HALF(x)
Rule:
none
Strategy:
innermost
We have the following set of usable rules:
none
To remove rules and DPs from this DP problem we used the following monotonic and CE-compatible order: Polynomial ordering.
Polynomial interpretation:
POL(HALF(x1)) | = x1 |
POL(s(x1)) | = x1 |
We have the following set D of usable symbols: {HALF}
The following Dependency Pairs can be deleted as they contain symbols in their lhs which do not occur in D:
HALF(s(s(x))) -> HALF(x)
No Rules can be deleted.
After the removal, there are no SCCs in the dependency graph which results in no DP problems which have to be solved.
TRS
↳RRRPolo
→TRS2
↳DPs
→DP Problem 1
↳NOC
→DP Problem 2
↳Non-Overlappingness Check
Dependency Pair:
BITS(s(x)) -> BITS(half(s(x)))
Rules:
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
bits(s(x)) -> s(bits(half(s(x))))
R does not overlap into P. Moreover, R is locally confluent (all critical pairs are trivially joinable).Hence we can switch to innermost.
The transformation is resulting in one subcycle:
TRS
↳RRRPolo
→TRS2
↳DPs
→DP Problem 1
↳NOC
→DP Problem 2
↳NOC
...
→DP Problem 5
↳Usable Rules (Innermost)
Dependency Pair:
BITS(s(x)) -> BITS(half(s(x)))
Rules:
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
bits(s(x)) -> s(bits(half(s(x))))
Strategy:
innermost
As we are in the innermost case, we can delete all 1 non-usable-rules.
TRS
↳RRRPolo
→TRS2
↳DPs
→DP Problem 1
↳NOC
→DP Problem 2
↳NOC
...
→DP Problem 6
↳Modular Removal of Rules
Dependency Pair:
BITS(s(x)) -> BITS(half(s(x)))
Rules:
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
Strategy:
innermost
We have the following set of usable rules:
half(0) -> 0
half(s(0)) -> 0
half(s(s(x))) -> s(half(x))
To remove rules and DPs from this DP problem we used the following monotonic and CE-compatible order: Polynomial ordering.
Polynomial interpretation:
POL(BITS(x1)) | = x1 |
POL(0) | = 1 |
POL(s(x1)) | = 2·x1 |
POL(half(x1)) | = x1 |
We have the following set D of usable symbols: {BITS, 0, s, half}
No Dependency Pairs can be deleted.
The following rules can be deleted as the lhs is strictly greater than the corresponding rhs:
half(s(0)) -> 0
The result of this processor delivers one new DP problem.
TRS
↳RRRPolo
→TRS2
↳DPs
→DP Problem 1
↳NOC
→DP Problem 2
↳NOC
...
→DP Problem 7
↳Modular Removal of Rules
Dependency Pair:
BITS(s(x)) -> BITS(half(s(x)))
Rules:
half(0) -> 0
half(s(s(x))) -> s(half(x))
Strategy:
innermost
We have the following set of usable rules:
half(0) -> 0
half(s(s(x))) -> s(half(x))
To remove rules and DPs from this DP problem we used the following monotonic and CE-compatible order: Polynomial ordering.
Polynomial interpretation:
POL(BITS(x1)) | = 1 + x1 |
POL(0) | = 0 |
POL(s(x1)) | = 1 + x1 |
POL(half(x1)) | = x1 |
We have the following set D of usable symbols: {BITS, 0, s, half}
No Dependency Pairs can be deleted.
The following rules can be deleted as the lhs is strictly greater than the corresponding rhs:
half(s(s(x))) -> s(half(x))
The result of this processor delivers one new DP problem.
TRS
↳RRRPolo
→TRS2
↳DPs
→DP Problem 1
↳NOC
→DP Problem 2
↳NOC
...
→DP Problem 8
↳Modular Removal of Rules
Dependency Pair:
BITS(s(x)) -> BITS(half(s(x)))
Rule:
half(0) -> 0
Strategy:
innermost
We have the following set of usable rules:
none
To remove rules and DPs from this DP problem we used the following monotonic and CE-compatible order: Polynomial ordering.
Polynomial interpretation:
POL(BITS(x1)) | = x1 |
POL(s(x1)) | = x1 |
POL(half(x1)) | = x1 |
We have the following set D of usable symbols: {BITS, s, half}
No Dependency Pairs can be deleted.
1 non usable rules have been deleted.
The result of this processor delivers one new DP problem.
TRS
↳RRRPolo
→TRS2
↳DPs
→DP Problem 1
↳NOC
→DP Problem 2
↳NOC
...
→DP Problem 9
↳Dependency Graph
Dependency Pair:
BITS(s(x)) -> BITS(half(s(x)))
Rule:
none
Strategy:
innermost
Using the Dependency Graph resulted in no new DP problems.
Termination of R successfully shown.
Duration:
0:01 minutes