YES
Termination Proof using AProVETerm Rewriting System R:
[X, Y, A, B, y, z', x]
union(X, empty) -> X
union(empty, X) -> X
0(z) -> z
and(tt, X) -> X
mult(z, X) -> z
mult(0(X), Y) -> 0(mult(X, Y))
mult(1(X), Y) -> plus(0(mult(X, Y)), Y)
plus(z, X) -> X
plus(0(X), 0(Y)) -> 0(plus(X, Y))
plus(0(X), 1(Y)) -> 1(plus(X, Y))
plus(1(X), 1(Y)) -> 0(plus(plus(X, Y), 1(z)))
prod(empty) -> 1(z)
prod(singl(X)) -> X
prod(union(A, B)) -> mult(prod(A), prod(B))
sum(empty) -> 0(z)
sum(singl(X)) -> X
sum(union(A, B)) -> plus(sum(A), sum(B))
union(union(x, y), z') == union(x, union(y, z'))
union(x, y) == union(y, x)
mult(x, mult(y, z')) == mult(mult(x, y), z')
mult(x, y) == mult(y, x)
plus(plus(x, y), z') == plus(x, plus(y, z'))
plus(x, y) == plus(y, x)
Termination of R to be shown.
R
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
union(X, empty) -> X
union(empty, X) -> X
mult(1(X), Y) -> plus(0(mult(X, Y)), Y)
plus(1(X), 1(Y)) -> 0(plus(plus(X, Y), 1(z)))
sum(empty) -> 0(z)
where the Polynomial interpretation:
POL(mult(x1, x2)) | = x1 + x1·x2 + x2 |
POL(and(x1, x2)) | = x1 + x2 |
POL(plus(x1, x2)) | = x1 + x2 |
POL(0(x1)) | = x1 |
POL(prod(x1)) | = x1 |
POL(z) | = 0 |
POL(union(x1, x2)) | = x1 + x1·x2 + x2 |
POL(1(x1)) | = 1 + x1 |
POL(tt) | = 0 |
POL(sum(x1)) | = x1 |
POL(empty) | = 1 |
POL(singl(x1)) | = x1 |
was used.
Not all Rules of R can be deleted, so we still have to regard a part of R.
R
↳RRRPolo
→TRS2
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
prod(empty) -> 1(z)
where the Polynomial interpretation:
POL(mult(x1, x2)) | = x1 + x2 |
POL(and(x1, x2)) | = x1 + x2 |
POL(plus(x1, x2)) | = x1 + x2 |
POL(0(x1)) | = x1 |
POL(prod(x1)) | = x1 |
POL(z) | = 0 |
POL(union(x1, x2)) | = x1 + x2 |
POL(1(x1)) | = x1 |
POL(tt) | = 0 |
POL(sum(x1)) | = x1 |
POL(empty) | = 1 |
POL(singl(x1)) | = x1 |
was used.
Not all Rules of R can be deleted, so we still have to regard a part of R.
R
↳RRRPolo
→TRS2
↳RRRPolo
→TRS3
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
sum(union(A, B)) -> plus(sum(A), sum(B))
prod(union(A, B)) -> mult(prod(A), prod(B))
where the Polynomial interpretation:
POL(mult(x1, x2)) | = x1 + x2 |
POL(and(x1, x2)) | = x1 + x2 |
POL(plus(x1, x2)) | = x1 + x2 |
POL(0(x1)) | = x1 |
POL(prod(x1)) | = x1 |
POL(z) | = 0 |
POL(union(x1, x2)) | = 1 + x1 + x2 |
POL(1(x1)) | = x1 |
POL(tt) | = 0 |
POL(sum(x1)) | = x1 |
POL(singl(x1)) | = x1 |
was used.
Not all Rules of R can be deleted, so we still have to regard a part of R.
R
↳RRRPolo
→TRS2
↳RRRPolo
→TRS3
↳RRRPolo
...
→TRS4
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
and(tt, X) -> X
where the Polynomial interpretation:
POL(mult(x1, x2)) | = x1 + x2 |
POL(and(x1, x2)) | = 1 + x1 + x2 |
POL(plus(x1, x2)) | = x1 + x2 |
POL(0(x1)) | = x1 |
POL(prod(x1)) | = x1 |
POL(z) | = 0 |
POL(1(x1)) | = x1 |
POL(union(x1, x2)) | = x1 + x2 |
POL(tt) | = 0 |
POL(sum(x1)) | = x1 |
POL(singl(x1)) | = x1 |
was used.
Not all Rules of R can be deleted, so we still have to regard a part of R.
R
↳RRRPolo
→TRS2
↳RRRPolo
→TRS3
↳RRRPolo
...
→TRS5
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
prod(singl(X)) -> X
where the Polynomial interpretation:
POL(mult(x1, x2)) | = x1 + x2 |
POL(plus(x1, x2)) | = x1 + x2 |
POL(0(x1)) | = x1 |
POL(prod(x1)) | = 1 + x1 |
POL(z) | = 0 |
POL(1(x1)) | = x1 |
POL(union(x1, x2)) | = x1 + x2 |
POL(sum(x1)) | = x1 |
POL(singl(x1)) | = x1 |
was used.
Not all Rules of R can be deleted, so we still have to regard a part of R.
R
↳RRRPolo
→TRS2
↳RRRPolo
→TRS3
↳RRRPolo
...
→TRS6
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
sum(singl(X)) -> X
where the Polynomial interpretation:
POL(mult(x1, x2)) | = x1 + x2 |
POL(plus(x1, x2)) | = x1 + x2 |
POL(0(x1)) | = x1 |
POL(z) | = 0 |
POL(1(x1)) | = x1 |
POL(union(x1, x2)) | = x1 + x2 |
POL(sum(x1)) | = 1 + x1 |
POL(singl(x1)) | = x1 |
was used.
Not all Rules of R can be deleted, so we still have to regard a part of R.
R
↳RRRPolo
→TRS2
↳RRRPolo
→TRS3
↳RRRPolo
...
→TRS7
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
mult(z, X) -> z
where the Polynomial interpretation:
POL(mult(x1, x2)) | = 1 + x1 + x2 |
POL(plus(x1, x2)) | = x1 + x2 |
POL(0(x1)) | = x1 |
POL(z) | = 0 |
POL(1(x1)) | = x1 |
POL(union(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
↳RRRPolo
→TRS3
↳RRRPolo
...
→TRS8
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
plus(z, X) -> X
where the Polynomial interpretation:
POL(mult(x1, x2)) | = x1 + x2 |
POL(plus(x1, x2)) | = x1 + x2 |
POL(0(x1)) | = x1 |
POL(z) | = 1 |
POL(1(x1)) | = x1 |
POL(union(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
↳RRRPolo
→TRS3
↳RRRPolo
...
→TRS9
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
plus(0(X), 1(Y)) -> 1(plus(X, Y))
where the Polynomial interpretation:
POL(mult(x1, x2)) | = x1 + x2 |
POL(plus(x1, x2)) | = 1 + 2·x1 + 2·x1·x2 + 2·x2 |
POL(0(x1)) | = x1 |
POL(z) | = 0 |
POL(1(x1)) | = 1 + x1 |
POL(union(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
↳RRRPolo
→TRS3
↳RRRPolo
...
→TRS10
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
0(z) -> z
plus(0(X), 0(Y)) -> 0(plus(X, Y))
where the Polynomial interpretation:
POL(mult(x1, x2)) | = x1 + x2 |
POL(plus(x1, x2)) | = x1 + x2 |
POL(0(x1)) | = 1 + x1 |
POL(z) | = 0 |
POL(union(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
↳RRRPolo
→TRS3
↳RRRPolo
...
→TRS11
↳Removing Redundant Rules
Removing the following rules from R which fullfill a polynomial ordering:
mult(0(X), Y) -> 0(mult(X, Y))
where the Polynomial interpretation:
POL(mult(x1, x2)) | = 1 + 2·x1 + 2·x1·x2 + 2·x2 |
POL(plus(x1, x2)) | = x1 + x2 |
POL(0(x1)) | = 1 + x1 |
POL(union(x1, x2)) | = x1 + x2 |
was used.
All Rules of R can be deleted.
R
↳RRRPolo
→TRS2
↳RRRPolo
→TRS3
↳RRRPolo
...
→TRS12
↳Dependency Pair Analysis
R contains no Dependency Pairs and therefore no SCCs.
Termination of R successfully shown.
Duration:
0:01 minutes