Certification Problem
Input (COPS 135)
We consider the TRS containing the following rules:
max(x,0) |
→ |
x |
(1) |
max(0,y) |
→ |
y |
(2) |
max(s(x),s(y)) |
→ |
s(max(y,x)) |
(3) |
max(x,y) |
→ |
max(y,x) |
(4) |
The underlying signature is as follows:
{max/2, 0/0, s/1}Property / Task
Prove or disprove confluence.Answer / Result
Yes.Proof (by csi @ CoCo 2023)
1 Redundant Rules Transformation
To prove that the TRS is (non-)confluent, we show (non-)confluence of the following
modified system:
max(x,y) |
→ |
max(y,x) |
(4) |
max(s(x),s(y)) |
→ |
s(max(y,x)) |
(3) |
max(0,y) |
→ |
y |
(2) |
max(x,0) |
→ |
x |
(1) |
max(x,y) |
→ |
max(x,y) |
(5) |
max(s(x),s(y)) |
→ |
s(max(x,y)) |
(6) |
All redundant rules that were added or removed can be
simulated in 2 steps
.
1.1 Decreasing Diagrams
1.1.2 Rule Labeling
Confluence is proven, because all critical peaks can be joined decreasingly
using the following rule labeling function (rules that are not shown have label 0).
-
↦ 2
-
max(s(x),s(y)) |
→ |
s(max(y,x)) |
(3) |
↦ 0
-
↦ 1
-
↦ 0
-
↦ 0
-
max(s(x),s(y)) |
→ |
s(max(x,y)) |
(6) |
↦ 3
The critical pairs can be joined as follows. Here,
↔ is always chosen as an appropriate rewrite relation which
is automatically inferred by the certifier.
-
The critical peak s = max(s(y),s(x))←→ε s(max(y,x)) = t can be joined as follows.
s
↔ s(max(x,y)) ↔
t
-
The critical peak s = max(s(y),s(x))←→ε s(max(y,x)) = t can be joined as follows.
s
↔
t
-
The critical peak s = max(y,0)←→ε y = t can be joined as follows.
s
↔
t
-
The critical peak s = max(0,x)←→ε x = t can be joined as follows.
s
↔
t
-
The critical peak s = max(y,x)←→ε max(x,y) = t can be joined as follows.
s
↔ max(y,x) ↔
t
-
The critical peak s = max(y,x)←→ε max(x,y) = t can be joined as follows.
s
↔
t
-
The critical peak s = max(s(y),s(x))←→ε s(max(x,y)) = t can be joined as follows.
s
↔
t
-
The critical peak s = max(s(y),s(x))←→ε s(max(x,y)) = t can be joined as follows.
s
↔ s(max(y,x)) ↔
t
-
The critical peak s = s(max(x193,x192))←→ε max(s(x193),s(x192)) = t can be joined as follows.
s
↔ s(max(x193,x192)) ↔
t
-
The critical peak s = s(max(x193,x192))←→ε max(s(x193),s(x192)) = t can be joined as follows.
s
↔ s(max(x192,x193)) ↔
t
-
The critical peak s = s(max(x195,x194))←→ε max(s(x194),s(x195)) = t can be joined as follows.
s
↔ s(max(x195,x194)) ↔
t
-
The critical peak s = s(max(x195,x194))←→ε max(s(x194),s(x195)) = t can be joined as follows.
s
↔ s(max(x194,x195)) ↔
t
-
The critical peak s = s(max(y,x))←→ε s(max(x,y)) = t can be joined as follows.
s
↔ s(max(y,x)) ↔
t
-
The critical peak s = s(max(y,x))←→ε s(max(x,y)) = t can be joined as follows.
s
↔
t
-
The critical peak s = y←→ε max(y,0) = t can be joined as follows.
s
↔ y ↔
t
-
The critical peak s = 0←→ε 0 = t can be joined as follows.
s
↔
t
-
The critical peak s = y←→ε max(0,y) = t can be joined as follows.
s
↔ y ↔
t
-
The critical peak s = x←→ε max(0,x) = t can be joined as follows.
s
↔ x ↔
t
-
The critical peak s = 0←→ε 0 = t can be joined as follows.
s
↔
t
-
The critical peak s = x←→ε max(x,0) = t can be joined as follows.
s
↔ x ↔
t
-
The critical peak s = max(x,y)←→ε max(y,x) = t can be joined as follows.
s
↔ max(x,y) ↔
t
-
The critical peak s = max(x,y)←→ε max(y,x) = t can be joined as follows.
s
↔
t
-
The critical peak s = max(s(x),s(y))←→ε s(max(y,x)) = t can be joined as follows.
s
↔
t
-
The critical peak s = max(s(x),s(y))←→ε s(max(y,x)) = t can be joined as follows.
s
↔ s(max(x,y)) ↔
t
-
The critical peak s = max(0,y)←→ε y = t can be joined as follows.
s
↔
t
-
The critical peak s = max(x,0)←→ε x = t can be joined as follows.
s
↔
t
-
The critical peak s = max(s(x),s(y))←→ε s(max(x,y)) = t can be joined as follows.
s
↔ s(max(y,x)) ↔
t
-
The critical peak s = max(s(x),s(y))←→ε s(max(x,y)) = t can be joined as follows.
s
↔
t
-
The critical peak s = s(max(x214,x215))←→ε max(s(x215),s(x214)) = t can be joined as follows.
s
↔ s(max(x214,x215)) ↔
t
-
The critical peak s = s(max(x214,x215))←→ε max(s(x215),s(x214)) = t can be joined as follows.
s
↔ s(max(x215,x214)) ↔
t
-
The critical peak s = s(max(x,y))←→ε s(max(y,x)) = t can be joined as follows.
s
↔ s(max(x,y)) ↔
t
-
The critical peak s = s(max(x,y))←→ε s(max(y,x)) = t can be joined as follows.
s
↔
t
-
The critical peak s = s(max(x218,x219))←→ε max(s(x218),s(x219)) = t can be joined as follows.
s
↔ s(max(x218,x219)) ↔
t
-
The critical peak s = s(max(x218,x219))←→ε max(s(x218),s(x219)) = t can be joined as follows.
s
↔ s(max(x219,x218)) ↔
t
/>