Certification Problem
Input (COPS 159)
We consider the TRS containing the following rules:
+(x,0) |
→ |
x |
(1) |
+(x,s(y)) |
→ |
s(+(x,y)) |
(2) |
+(0,y) |
→ |
y |
(3) |
+(s(x),y) |
→ |
s(+(x,y)) |
(4) |
inc(x) |
→ |
s(x) |
(5) |
+(x,y) |
→ |
+(y,x) |
(6) |
inc(+(x,y)) |
→ |
+(inc(x),y) |
(7) |
The underlying signature is as follows:
{+/2, 0/0, s/1, inc/1}Property / Task
Prove or disprove confluence.Answer / Result
Yes.Proof (by csi @ CoCo 2020)
1 Decreasing Diagrams
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).
-
↦ 0
-
+(x,s(y)) |
→ |
s(+(x,y)) |
(2) |
↦ 1
-
↦ 0
-
+(s(x),y) |
→ |
s(+(x,y)) |
(4) |
↦ 0
-
↦ 0
-
↦ 2
-
inc(+(x,y)) |
→ |
+(inc(x),y) |
(7) |
↦ 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 = 0←→ε 0 = t can be joined as follows.
s
↔
t
-
The critical peak s = s(x)←→ε s(+(x,0)) = t can be joined as follows.
s
↔ s(x) ↔
t
-
The critical peak s = x←→ε +(0,x) = t can be joined as follows.
s
↔ x ↔
t
-
The critical peak s = inc(x)←→ε +(inc(x),0) = t can be joined as follows.
s
↔ inc(x) ↔
t
-
The critical peak s = s(+(0,x139))←→ε s(x139) = t can be joined as follows.
s
↔
t
-
The critical peak s = s(+(s(x),x141))←→ε s(+(x,s(x141))) = t can be joined as follows.
s
↔ s(s(+(x,x141))) ↔
t
-
The critical peak s = s(+(x,x143))←→ε +(s(x143),x) = t can be joined as follows.
s
↔ s(+(x143,x)) ↔
t
-
The critical peak s = inc(s(+(x,x145)))←→ε +(inc(x),s(x145)) = t can be joined as follows.
s
↔ s(s(+(x,x145))) ↔ s(+(s(x),x145)) ↔ s(+(inc(x),x145)) ↔
t
-
The critical peak s = inc(s(+(x,x145)))←→ε +(inc(x),s(x145)) = t can be joined as follows.
s
↔ s(s(+(x,x145))) ↔ s(+(s(x),x145)) ↔ +(s(x),s(x145)) ↔
t
-
The critical peak s = inc(s(+(x,x145)))←→ε +(inc(x),s(x145)) = t can be joined as follows.
s
↔ s(s(+(x,x145))) ↔ s(+(x,s(x145))) ↔ +(s(x),s(x145)) ↔
t
-
The critical peak s = inc(s(+(x,x145)))←→ε +(inc(x),s(x145)) = t can be joined as follows.
s
↔ s(s(+(x,x145))) ↔ s(s(+(x145,x))) ↔ s(s(+(x,x145))) ↔ s(+(s(x),x145)) ↔ s(+(inc(x),x145)) ↔
t
-
The critical peak s = inc(s(+(x,x145)))←→ε +(inc(x),s(x145)) = t can be joined as follows.
s
↔ s(s(+(x,x145))) ↔ s(s(+(x145,x))) ↔ s(s(+(x,x145))) ↔ s(+(s(x),x145)) ↔ +(s(x),s(x145)) ↔
t
-
The critical peak s = inc(s(+(x,x145)))←→ε +(inc(x),s(x145)) = t can be joined as follows.
s
↔ s(s(+(x,x145))) ↔ s(s(+(x145,x))) ↔ s(s(+(x,x145))) ↔ s(+(x,s(x145))) ↔ +(s(x),s(x145)) ↔
t
-
The critical peak s = inc(s(+(x,x145)))←→ε +(inc(x),s(x145)) = t can be joined as follows.
s
↔ inc(s(+(x145,x))) ↔ s(s(+(x145,x))) ↔ s(s(+(x,x145))) ↔ s(+(s(x),x145)) ↔ s(+(inc(x),x145)) ↔
t
-
The critical peak s = inc(s(+(x,x145)))←→ε +(inc(x),s(x145)) = t can be joined as follows.
s
↔ inc(s(+(x145,x))) ↔ s(s(+(x145,x))) ↔ s(s(+(x,x145))) ↔ s(+(s(x),x145)) ↔ +(s(x),s(x145)) ↔
t
-
The critical peak s = inc(s(+(x,x145)))←→ε +(inc(x),s(x145)) = t can be joined as follows.
s
↔ inc(s(+(x145,x))) ↔ s(s(+(x145,x))) ↔ s(s(+(x,x145))) ↔ s(+(x,s(x145))) ↔ +(s(x),s(x145)) ↔
t
-
The critical peak s = 0←→ε 0 = t can be joined as follows.
s
↔
t
-
The critical peak s = s(y)←→ε s(+(0,y)) = t can be joined as follows.
s
↔ s(y) ↔
t
-
The critical peak s = y←→ε +(y,0) = t can be joined as follows.
s
↔ y ↔
t
-
The critical peak s = inc(y)←→ε +(inc(0),y) = t can be joined as follows.
s
↔ s(y) ↔ s(+(0,y)) ↔ +(s(0),y) ↔
t
-
The critical peak s = s(+(x150,0))←→ε s(x150) = t can be joined as follows.
s
↔
t
-
The critical peak s = s(+(x152,s(y)))←→ε s(+(s(x152),y)) = t can be joined as follows.
s
↔ s(s(+(x152,y))) ↔
t
-
The critical peak s = s(+(x154,y))←→ε +(y,s(x154)) = t can be joined as follows.
s
↔ s(+(y,x154)) ↔
t
-
The critical peak s = inc(s(+(x156,y)))←→ε +(inc(s(x156)),y) = t can be joined as follows.
s
↔ s(s(+(x156,y))) ↔ s(+(s(x156),y)) ↔ +(s(s(x156)),y) ↔
t
-
The critical peak s = inc(s(+(x156,y)))←→ε +(inc(s(x156)),y) = t can be joined as follows.
s
↔ s(s(+(x156,y))) ↔ s(s(+(y,x156))) ↔ s(s(+(x156,y))) ↔ s(+(s(x156),y)) ↔ +(s(s(x156)),y) ↔
t
-
The critical peak s = inc(s(+(x156,y)))←→ε +(inc(s(x156)),y) = t can be joined as follows.
s
↔ inc(s(+(y,x156))) ↔ s(s(+(y,x156))) ↔ s(s(+(x156,y))) ↔ s(+(s(x156),y)) ↔ +(s(s(x156)),y) ↔
t
-
The critical peak s = s(+(x,y))←→ε +(inc(x),y) = t can be joined as follows.
s
↔ s(+(x,y)) ↔ +(s(x),y) ↔
t
-
The critical peak s = +(0,x)←→ε x = t can be joined as follows.
s
↔
t
-
The critical peak s = +(s(y),x)←→ε s(+(x,y)) = t can be joined as follows.
s
↔ s(+(y,x)) ↔
t
-
The critical peak s = +(y,0)←→ε y = t can be joined as follows.
s
↔
t
-
The critical peak s = +(y,s(x))←→ε s(+(x,y)) = t can be joined as follows.
s
↔ s(+(y,x)) ↔
t
-
The critical peak s = inc(+(y,x))←→ε +(inc(x),y) = t can be joined as follows.
s
↔ s(+(y,x)) ↔ s(+(x,y)) ↔ +(s(x),y) ↔
t
-
The critical peak s = inc(+(y,x))←→ε +(inc(x),y) = t can be joined as follows.
s
↔ inc(+(x,y)) ↔ s(+(x,y)) ↔ +(s(x),y) ↔
t
-
The critical peak s = inc(+(y,x))←→ε +(inc(x),y) = t can be joined as follows.
s
↔ inc(+(x,y)) ↔
t
-
The critical peak s = +(inc(x169),x170)←→ε s(+(x169,x170)) = t can be joined as follows.
s
↔ +(s(x169),x170) ↔
t
/>