YES
Confluence Proof
Confluence Proof
by csi
Input
The rewrite relation of the following TRS is considered.
+(x,0) |
→ |
x |
+(x,s(y)) |
→ |
s(+(x,y)) |
+(0,y) |
→ |
y |
+(s(x),y) |
→ |
s(+(x,y)) |
inc(x) |
→ |
s(x) |
+(x,y) |
→ |
+(y,x) |
inc(+(x,y)) |
→ |
+(inc(x),y) |
Proof
1 Decreasing Diagrams
1.1 Relative Termination Proof
The duplicating rules (R) terminate relative to the other rules (S).
1.1.1 R is empty
There are no rules in the TRS R. Hence, R/S is relative terminating.
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).
-
+(x,0)→x ↦ 0
-
+(x,s(y))→s(+(x,y)) ↦ 1
-
+(0,y)→y ↦ 0
-
+(s(x),y)→s(+(x,y)) ↦ 0
-
inc(x)→s(x) ↦ 0
-
+(x,y)→+(y,x) ↦ 2
-
inc(+(x,y))→+(inc(x),y) ↦ 3
All critical pairs are joinable:
- 0
-
s(x)←s(+(x,0))
-
x←+(0,x)
-
inc(x)←+(inc(x),0)
-
s(+(0,x139))→s(x139)
-
s(+(s(x),x141))→s(s(+(x,x141)))←s(+(x,s(x141)))
-
s(+(x,x143))→s(+(x143,x))←+(s(x143),x)
-
inc(s(+(x,x145)))→s(s(+(x,x145)))←s(+(s(x),x145))←s(+(inc(x),x145))←+(inc(x),s(x145))
-
inc(s(+(x,x145)))→s(s(+(x,x145)))←s(+(s(x),x145))←+(s(x),s(x145))←+(inc(x),s(x145))
-
inc(s(+(x,x145)))→s(s(+(x,x145)))←s(+(x,s(x145)))←+(s(x),s(x145))←+(inc(x),s(x145))
-
inc(s(+(x,x145)))→s(s(+(x,x145)))→s(s(+(x145,x)))→s(s(+(x,x145)))←s(+(s(x),x145))←s(+(inc(x),x145))←+(inc(x),s(x145))
-
inc(s(+(x,x145)))→s(s(+(x,x145)))→s(s(+(x145,x)))→s(s(+(x,x145)))←s(+(s(x),x145))←+(s(x),s(x145))←+(inc(x),s(x145))
-
inc(s(+(x,x145)))→s(s(+(x,x145)))→s(s(+(x145,x)))→s(s(+(x,x145)))←s(+(x,s(x145)))←+(s(x),s(x145))←+(inc(x),s(x145))
-
inc(s(+(x,x145)))→inc(s(+(x145,x)))→s(s(+(x145,x)))→s(s(+(x,x145)))←s(+(s(x),x145))←s(+(inc(x),x145))←+(inc(x),s(x145))
-
inc(s(+(x,x145)))→inc(s(+(x145,x)))→s(s(+(x145,x)))→s(s(+(x,x145)))←s(+(s(x),x145))←+(s(x),s(x145))←+(inc(x),s(x145))
-
inc(s(+(x,x145)))→inc(s(+(x145,x)))→s(s(+(x145,x)))→s(s(+(x,x145)))←s(+(x,s(x145)))←+(s(x),s(x145))←+(inc(x),s(x145))
- 0
-
s(y)←s(+(0,y))
-
y←+(y,0)
-
inc(y)→s(y)←s(+(0,y))←+(s(0),y)←+(inc(0),y)
-
s(+(x150,0))→s(x150)
-
s(+(x152,s(y)))→s(s(+(x152,y)))←s(+(s(x152),y))
-
s(+(x154,y))→s(+(y,x154))←+(y,s(x154))
-
inc(s(+(x156,y)))→s(s(+(x156,y)))←s(+(s(x156),y))←+(s(s(x156)),y)←+(inc(s(x156)),y)
-
inc(s(+(x156,y)))→s(s(+(x156,y)))→s(s(+(y,x156)))→s(s(+(x156,y)))←s(+(s(x156),y))←+(s(s(x156)),y)←+(inc(s(x156)),y)
-
inc(s(+(x156,y)))→inc(s(+(y,x156)))→s(s(+(y,x156)))→s(s(+(x156,y)))←s(+(s(x156),y))←+(s(s(x156)),y)←+(inc(s(x156)),y)
-
s(+(x,y))←+(s(x),y)←+(inc(x),y)
-
+(0,x)→x
-
+(s(y),x)→s(+(y,x))←s(+(x,y))
-
+(y,0)→y
-
+(y,s(x))→s(+(y,x))←s(+(x,y))
-
inc(+(y,x))→s(+(y,x))→s(+(x,y))←+(s(x),y)←+(inc(x),y)
-
inc(+(y,x))→inc(+(x,y))→s(+(x,y))←+(s(x),y)←+(inc(x),y)
-
inc(+(y,x))→inc(+(x,y))→+(inc(x),y)
-
+(inc(x169),x170)→+(s(x169),x170)→s(+(x169,x170))
Tool configuration
csi
- version: csi 1.2.5 [hg: unknown]
- strategy:
(if linear then (cr -dup;(( lpo -quasi || (matrix -dim 1 -ib 3 -ob 4 | matrix -dim 2 -ib 2 -ob 2 | matrix -dim 3 -ib 1 -ob 2 | arctic -dim 2 -ib 2 -ob 2) || (if duplicating then fail else (bounds -rt || bounds -rt -qc))[1] || poly -ib 2 -ob 4 -nl2 -heuristic 1 || fail )[5]*);shift -lstar);(rule_labeling | rule_labeling -left)?;decreasing else fail)!