Term Rewriting System R:
[x, y, z]
app(app(., 1), x) -> x
app(app(., x), 1) -> x
app(app(., app(i, x)), x) -> 1
app(app(., x), app(i, x)) -> 1
app(app(., app(i, y)), app(app(., y), z)) -> z
app(app(., y), app(app(., app(i, y)), z)) -> z
app(app(., app(app(., x), y)), z) -> app(app(., x), app(app(., y), z))
app(i, 1) -> 1
app(i, app(i, x)) -> x
app(i, app(app(., x), y)) -> app(app(., app(i, y)), app(i, x))
Termination of R to be shown.
R
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
app(app(., 1), x) -> x
app(app(., x), 1) -> x
app(app(., app(i, x)), x) -> 1
app(app(., x), app(i, x)) -> 1
app(app(., app(i, y)), app(app(., y), z)) -> z
app(app(., y), app(app(., app(i, y)), z)) -> z
where the Polynomial interpretation:
POL(i) | = 0 |
POL(1) | = 0 |
POL(.) | = 1 |
POL(app(x1, x2)) | = x1 + x2 |
was used.
Not all Rules of R can be deleted, so we still have to regard a part of R.
R
↳RRRPolo
→TRS2
↳Dependency Pair Analysis
R contains the following Dependency Pairs:
APP(app(., app(app(., x), y)), z) -> APP(app(., x), app(app(., y), z))
APP(app(., app(app(., x), y)), z) -> APP(app(., y), z)
APP(app(., app(app(., x), y)), z) -> APP(., y)
APP(i, app(app(., x), y)) -> APP(app(., app(i, y)), app(i, x))
APP(i, app(app(., x), y)) -> APP(., app(i, y))
APP(i, app(app(., x), y)) -> APP(i, y)
APP(i, app(app(., x), y)) -> APP(i, x)
Furthermore, R contains two SCCs.
R
↳RRRPolo
→TRS2
↳DPs
→DP Problem 1
↳Size-Change Principle
→DP Problem 2
↳SCP
Dependency Pairs:
APP(app(., app(app(., x), y)), z) -> APP(app(., y), z)
APP(app(., app(app(., x), y)), z) -> APP(app(., x), app(app(., y), z))
Rules:
app(app(., app(app(., x), y)), z) -> app(app(., x), app(app(., y), z))
app(i, app(app(., x), y)) -> app(app(., app(i, y)), app(i, x))
app(i, app(i, x)) -> x
app(i, 1) -> 1
The original DP problem is in applicative form. Its DPs and usable rules are the following.
APP(app(., app(app(., x), y)), z) -> APP(app(., y), z)
APP(app(., app(app(., x), y)), z) -> APP(app(., x), app(app(., y), z))
app(app(., app(app(., x), y)), z) -> app(app(., x), app(app(., y), z))
It is proper and hence, it can be A-transformed which results in the DP problem
.'(.(x, y), z) -> .'(y, z)
.'(.(x, y), z) -> .'(x, .(y, z))
.(.(x, y), z) -> .(x, .(y, z))
We number the DPs as follows:
- .'(.(x, y), z) -> .'(y, z)
- .'(.(x, y), z) -> .'(x, .(y, z))
and get the following Size-Change Graph(s):
which lead(s) to this/these maximal multigraph(s):
DP: empty set
Oriented Rules: none
We used the order Homeomorphic Embedding Order with Non-Strict Precedence.
trivial
We obtain no new DP problems.
R
↳RRRPolo
→TRS2
↳DPs
→DP Problem 1
↳SCP
→DP Problem 2
↳Size-Change Principle
Dependency Pairs:
APP(i, app(app(., x), y)) -> APP(i, x)
APP(i, app(app(., x), y)) -> APP(i, y)
Rules:
app(app(., app(app(., x), y)), z) -> app(app(., x), app(app(., y), z))
app(i, app(app(., x), y)) -> app(app(., app(i, y)), app(i, x))
app(i, app(i, x)) -> x
app(i, 1) -> 1
The original DP problem is in applicative form. Its DPs and usable rules are the following.
APP(i, app(app(., x), y)) -> APP(i, x)
APP(i, app(app(., x), y)) -> APP(i, y)
none
It is proper and hence, it can be A-transformed which results in the DP problem
I(.(x, y)) -> I(x)
I(.(x, y)) -> I(y)
none
We number the DPs as follows:
- I(.(x, y)) -> I(x)
- I(.(x, y)) -> I(y)
and get the following Size-Change Graph(s):
which lead(s) to this/these maximal multigraph(s):
DP: empty set
Oriented Rules: none
We used the order Homeomorphic Embedding Order with Non-Strict Precedence.
trivial
with Argument Filtering System:
.(x1, x2) -> .(x1, x2)
We obtain no new DP problems.
Termination of R successfully shown.
Duration:
0:00 minutes