Certification Problem
Input (COPS 1084)
We consider two TRSs R and S where R contains the rules
+(0,y) |
→ |
y |
(1) |
+(s(x),y) |
→ |
s(+(x,y)) |
(2) |
*(0,y) |
→ |
0 |
(3) |
*(s(x),y) |
→ |
+(*(x,y),y) |
(4) |
*(x,s(y)) |
→ |
+(x,*(x,y)) |
(5) |
and S contains the following rules:
s(p(x)) |
→ |
x |
(6) |
p(s(x)) |
→ |
x |
(7) |
+(x,0) |
→ |
x |
(8) |
+(x,s(y)) |
→ |
s(+(x,y)) |
(9) |
+(x,p(y)) |
→ |
p(+(x,y)) |
(10) |
-(x,0) |
→ |
x |
(11) |
-(x,s(y)) |
→ |
p(-(x,y)) |
(12) |
-(x,p(y)) |
→ |
s(-(x,y)) |
(13) |
*(x,0) |
→ |
0 |
(14) |
*(x,s(y)) |
→ |
+(*(x,y),x) |
(15) |
*(x,p(y)) |
→ |
-(*(x,y),x) |
(16) |
The underlying signature is as follows:
{*/2, +/2, -/2, 0/0, p/1, s/1}Property / Task
Prove or disprove commutation.Answer / Result
No.Proof (by ACP @ CoCo 2023)
1 Non-Joinable Fork
The systems are not commuting due to the following forking derivations.
t0
|
= |
*(0,p(y)) |
|
→S
|
-(*(0,y),0) |
|
= |
s1
|
and
There is no possibility to join
s1→R*·←S*
t1
for the following reason:
- When applying the cap-function on both terms (where variables may be treated like constants)
then the resulting terms do not unify.