Certification Problem
Input (TPDB TRS_Equational/Mixed_AC/BAG_nosorts)
The rewrite relation of the following equational TRS is considered.
union(X,empty) |
→ |
X |
(1) |
union(empty,X) |
→ |
X |
(2) |
0(z) |
→ |
z |
(3) |
and(tt,X) |
→ |
X |
(4) |
mult(z,X) |
→ |
z |
(5) |
mult(0(X),Y) |
→ |
0(mult(X,Y)) |
(6) |
mult(1(X),Y) |
→ |
plus(0(mult(X,Y)),Y) |
(7) |
plus(z,X) |
→ |
X |
(8) |
plus(0(X),0(Y)) |
→ |
0(plus(X,Y)) |
(9) |
plus(0(X),1(Y)) |
→ |
1(plus(X,Y)) |
(10) |
plus(1(X),1(Y)) |
→ |
0(plus(plus(X,Y),1(z))) |
(11) |
prod(empty) |
→ |
1(z) |
(12) |
prod(singl(X)) |
→ |
X |
(13) |
prod(union(A,B)) |
→ |
mult(prod(A),prod(B)) |
(14) |
sum(empty) |
→ |
0(z) |
(15) |
sum(singl(X)) |
→ |
X |
(16) |
sum(union(A,B)) |
→ |
plus(sum(A),sum(B)) |
(17) |
Associative symbols: mult, plus, union
Commutative symbols: mult, plus, union
Property / Task
Prove or disprove termination.Answer / Result
Yes.Proof (by AProVE @ termCOMP 2023)
1 AC Rule Removal
Using the
non-linear polynomial interpretation over the naturals
[mult(x1, x2)] |
= |
1 · x2 + 1 · x1 + 2 · x1 · x2
|
[plus(x1, x2)] |
= |
1 · x2 + 1 · x1
|
[union(x1, x2)] |
= |
1 · x2 + 1 · x1 + 2 · x1 · x2
|
[empty] |
= |
2 |
[0(x1)] |
= |
1 · x1
|
[z] |
= |
1 |
[and(x1, x2)] |
= |
3 · x2 + 3 · x1 + 1 · x1 · x2
|
[tt] |
= |
3 |
[1(x1)] |
= |
1 + 1 · x1
|
[prod(x1)] |
= |
1 · x1
|
[singl(x1)] |
= |
1 · x1 + 3 · x1 · x1
|
[sum(x1)] |
= |
1 · x1 + 1 · x1 · x1
|
the
rules
union(X,empty) |
→ |
X |
(1) |
union(empty,X) |
→ |
X |
(2) |
and(tt,X) |
→ |
X |
(4) |
mult(1(X),Y) |
→ |
plus(0(mult(X,Y)),Y) |
(7) |
plus(z,X) |
→ |
X |
(8) |
sum(empty) |
→ |
0(z) |
(15) |
can be deleted.
1.1 AC Rule Removal
Using the
non-linear polynomial interpretation over the naturals
[mult(x1, x2)] |
= |
2 + 2 · x2 + 2 · x1 + 1 · x1 · x2
|
[plus(x1, x2)] |
= |
1 · x2 + 1 · x1 + 2 · x1 · x2
|
[union(x1, x2)] |
= |
2 + 3 · x2 + 3 · x1 + 3 · x1 · x2
|
[0(x1)] |
= |
1 · x1
|
[z] |
= |
0 |
[1(x1)] |
= |
1 + 2 · x1
|
[prod(x1)] |
= |
2 + 3 · x1 + 3 · x1 · x1
|
[empty] |
= |
3 |
[singl(x1)] |
= |
1 · x1 + 3 · x1 · x1
|
[sum(x1)] |
= |
1 + 2 · x1 + 3 · x1 · x1
|
the
rules
mult(z,X) |
→ |
z |
(5) |
plus(1(X),1(Y)) |
→ |
0(plus(plus(X,Y),1(z))) |
(11) |
prod(empty) |
→ |
1(z) |
(12) |
prod(singl(X)) |
→ |
X |
(13) |
prod(union(A,B)) |
→ |
mult(prod(A),prod(B)) |
(14) |
sum(singl(X)) |
→ |
X |
(16) |
sum(union(A,B)) |
→ |
plus(sum(A),sum(B)) |
(17) |
can be deleted.
1.1.1 AC Rule Removal
Using the
non-linear polynomial interpretation over the naturals
[mult(x1, x2)] |
= |
1 · x2 + 1 · x1 + 2 · x1 · x2
|
[plus(x1, x2)] |
= |
1 + 2 · x2 + 2 · x1 + 2 · x1 · x2
|
[union(x1, x2)] |
= |
2 + 3 · x2 + 3 · x1 + 3 · x1 · x2
|
[0(x1)] |
= |
2 + 3 · x1
|
[z] |
= |
2 |
[1(x1)] |
= |
2 · x1
|
the
rules
0(z) |
→ |
z |
(3) |
plus(0(X),0(Y)) |
→ |
0(plus(X,Y)) |
(9) |
plus(0(X),1(Y)) |
→ |
1(plus(X,Y)) |
(10) |
can be deleted.
1.1.1.1 AC Rule Removal
Using the
non-linear polynomial interpretation over the naturals
[mult(x1, x2)] |
= |
1 + 2 · x2 + 2 · x1 + 2 · x1 · x2
|
[plus(x1, x2)] |
= |
3 + 3 · x2 + 3 · x1 + 2 · x1 · x2
|
[union(x1, x2)] |
= |
2 + 3 · x2 + 3 · x1 + 3 · x1 · x2
|
[0(x1)] |
= |
2 + 1 · x1
|
the
rule
mult(0(X),Y) |
→ |
0(mult(X,Y)) |
(6) |
can be deleted.
1.1.1.1.1 R is empty
There are no rules in the TRS. Hence, it is AC-terminating.