Certification Problem
Input (COPS 1114)
We consider two TRSs R and S where R contains the rules
if(true,a,x) |
→ |
a |
(1) |
if(true,b,x) |
→ |
b |
(2) |
if(true,g(a),x) |
→ |
g(a) |
(3) |
if(true,g(b),x) |
→ |
g(b) |
(4) |
if(false,x,a) |
→ |
a |
(5) |
if(false,x,b) |
→ |
b |
(6) |
if(false,x,g(a)) |
→ |
g(a) |
(7) |
if(false,x,g(b)) |
→ |
g(b) |
(8) |
g(a) |
→ |
g(g(a)) |
(9) |
g(b) |
→ |
a |
(10) |
f'(a,b) |
→ |
b |
(11) |
f'(g(g(a)),x) |
→ |
b |
(12) |
and S contains the following rules:
f(a) |
→ |
b |
(13) |
a |
→ |
a' |
(14) |
f(b) |
→ |
c |
(15) |
The underlying signature is as follows:
{a/0, b/0, c/0, f/1, g/1, a'/0, f'/2, if/3, true/0, false/0}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
|
= |
if(true,g(a),x) |
|
→S
|
if(true,g(a'),x) |
|
= |
s1
|
and
t0
|
= |
if(true,g(a),x) |
|
→R
|
g(a) |
|
= |
t1
|
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.