YES
Confluence Proof
Confluence Proof
by Hakusan
Input
The rewrite relation of the following TRS is considered.
+(0,y) |
→ |
y |
+(x,0) |
→ |
x |
+(s(x),y) |
→ |
s(+(x,y)) |
+(x,s(y)) |
→ |
s(+(x,y)) |
+(x,+(y,z)) |
→ |
+(+(x,y),z) |
+(+(x,y),z) |
→ |
+(x,+(y,z)) |
Proof
1 Compositional Parallel Critical Pair Systems
All parallel critical pairs of the TRS R are joinable by R.
This can be seen as follows:
The parallel 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,0)→ε 0 = t can be joined as follows.
s
↔
t
-
The critical peak s = s(+(0,x0_2)) {ε}←+(0,s(x0_2))→ε s(x0_2) = t can be joined as follows.
s
↔
t
-
The critical peak s = +(+(0,x0_2),x0_3) {ε}←+(0,+(x0_2,x0_3))→ε +(x0_2,x0_3) = t can be joined as follows.
s
↔
t
-
The critical peak s = 0 {ε}←+(0,0)→ε 0 = t can be joined as follows.
s
↔
t
-
The critical peak s = s(+(x0_1,0)) {ε}←+(s(x0_1),0)→ε s(x0_1) = t can be joined as follows.
s
↔
t
-
The critical peak s = +(x0_1,+(x0_2,0)) {ε}←+(+(x0_1,x0_2),0)→ε +(x0_1,x0_2) = t can be joined as follows.
s
↔
t
-
The critical peak s = s(y1) {ε}←+(s(y1),0)→ε s(+(y1,0)) = t can be joined as follows.
s
↔
t
-
The critical peak s = s(+(s(y1),x0_2)) {ε}←+(s(y1),s(x0_2))→ε s(+(y1,s(x0_2))) = t can be joined as follows.
s
↔ s(s(+(y1,x0_2))) ↔
t
-
The critical peak s = +(+(s(y1),x0_2),x0_3) {ε}←+(s(y1),+(x0_2,x0_3))→ε s(+(y1,+(x0_2,x0_3))) = t can be joined as follows.
s
↔ +(s(y1),+(x0_2,x0_3)) ↔
t
-
The critical peak s = s(y2) {ε}←+(0,s(y2))→ε s(+(0,y2)) = t can be joined as follows.
s
↔
t
-
The critical peak s = s(+(x0_1,s(y2))) {ε}←+(s(x0_1),s(y2))→ε s(+(s(x0_1),y2)) = t can be joined as follows.
s
↔ s(s(+(x0_1,y2))) ↔
t
-
The critical peak s = +(x0_1,+(x0_2,s(y2))) {ε}←+(+(x0_1,x0_2),s(y2))→ε s(+(+(x0_1,x0_2),y2)) = t can be joined as follows.
s
↔ +(+(x0_1,x0_2),s(y2)) ↔
t
-
The critical peak s = +(y2,y3) {ε}←+(0,+(y2,y3))→ε +(+(0,y2),y3) = t can be joined as follows.
s
↔
t
-
The critical peak s = s(+(x0_1,+(y2,y3))) {ε}←+(s(x0_1),+(y2,y3))→ε +(+(s(x0_1),y2),y3) = t can be joined as follows.
s
↔ +(s(x0_1),+(y2,y3)) ↔
t
-
The critical peak s = +(x0_1,+(x0_2,+(y2,y3))) {ε}←+(+(x0_1,x0_2),+(y2,y3))→ε +(+(+(x0_1,x0_2),y2),y3) = t can be joined as follows.
s
↔ +(+(x0_1,x0_2),+(y2,y3)) ↔
t
-
The critical peak s = +(y1,y3) {2}←+(y1,+(0,y3))→ε +(+(y1,0),y3) = t can be joined as follows.
s
↔
t
-
The critical peak s = +(y1,y2) {2}←+(y1,+(y2,0))→ε +(+(y1,y2),0) = t can be joined as follows.
s
↔
t
-
The critical peak s = +(y1,s(+(x1_1,y3))) {2}←+(y1,+(s(x1_1),y3))→ε +(+(y1,s(x1_1)),y3) = t can be joined as follows.
s
↔ +(y1,+(s(x1_1),y3)) ↔
t
-
The critical peak s = +(y1,s(+(y2,x1_2))) {2}←+(y1,+(y2,s(x1_2)))→ε +(+(y1,y2),s(x1_2)) = t can be joined as follows.
s
↔ +(y1,+(y2,s(x1_2))) ↔
t
-
The critical peak s = +(y1,+(+(y2,x1_2),x1_3)) {2}←+(y1,+(y2,+(x1_2,x1_3)))→ε +(+(y1,y2),+(x1_2,x1_3)) = t can be joined as follows.
s
↔ +(y1,+(y2,+(x1_2,x1_3))) ↔
t
-
The critical peak s = +(y1,+(x1_1,+(x1_2,y3))) {2}←+(y1,+(+(x1_1,x1_2),y3))→ε +(+(y1,+(x1_1,x1_2)),y3) = t can be joined as follows.
s
↔ +(y1,+(+(x1_1,x1_2),y3)) ↔
t
-
The critical peak s = +(y1,y2) {ε}←+(+(y1,y2),0)→ε +(y1,+(y2,0)) = t can be joined as follows.
s
↔
t
-
The critical peak s = s(+(+(y1,y2),x0_2)) {ε}←+(+(y1,y2),s(x0_2))→ε +(y1,+(y2,s(x0_2))) = t can be joined as follows.
s
↔ +(+(y1,y2),s(x0_2)) ↔
t
-
The critical peak s = +(+(+(y1,y2),x0_2),x0_3) {ε}←+(+(y1,y2),+(x0_2,x0_3))→ε +(y1,+(y2,+(x0_2,x0_3))) = t can be joined as follows.
s
↔ +(+(y1,y2),+(x0_2,x0_3)) ↔
t
-
The critical peak s = +(y2,y3) {1}←+(+(0,y2),y3)→ε +(0,+(y2,y3)) = t can be joined as follows.
s
↔
t
-
The critical peak s = +(y1,y3) {1}←+(+(y1,0),y3)→ε +(y1,+(0,y3)) = t can be joined as follows.
s
↔
t
-
The critical peak s = +(s(+(x1_1,y2)),y3) {1}←+(+(s(x1_1),y2),y3)→ε +(s(x1_1),+(y2,y3)) = t can be joined as follows.
s
↔ +(+(s(x1_1),y2),y3) ↔
t
-
The critical peak s = +(s(+(y1,x1_2)),y3) {1}←+(+(y1,s(x1_2)),y3)→ε +(y1,+(s(x1_2),y3)) = t can be joined as follows.
s
↔ +(+(y1,s(x1_2)),y3) ↔
t
-
The critical peak s = +(+(+(y1,x1_2),x1_3),y3) {1}←+(+(y1,+(x1_2,x1_3)),y3)→ε +(y1,+(+(x1_2,x1_3),y3)) = t can be joined as follows.
s
↔ +(+(y1,+(x1_2,x1_3)),y3) ↔
t
-
The critical peak s = +(+(x1_1,+(x1_2,y2)),y3) {1}←+(+(+(x1_1,x1_2),y2),y3)→ε +(+(x1_1,x1_2),+(y2,y3)) = t can be joined as follows.
s
↔ +(+(+(x1_1,x1_2),y2),y3) ↔
t
The TRS C is chosen as:
+(0,y) |
→ |
y |
+(x,0) |
→ |
x |
+(s(x),y) |
→ |
s(+(x,y)) |
+(x,s(y)) |
→ |
s(+(x,y)) |
+(+(x,y),z) |
→ |
+(x,+(y,z)) |
Consequently, PCPS(R,C) is included in the following TRS P where
steps are used to show that certain pairs are C-convertible.
There are no rules.
Relative termination of P / R is proven as follows.
1.1 R is empty
There are no rules in the TRS R. Hence, R/S is relative terminating.
Confluence of C is proven as follows.
1.2 Compositional Parallel Critical Pair Systems
All parallel critical pairs of the TRS R are joinable by R.
This can be seen as follows:
The parallel 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,0)→ε 0 = t can be joined as follows.
s
↔
t
-
The critical peak s = s(+(0,x0_2)) {ε}←+(0,s(x0_2))→ε s(x0_2) = t can be joined as follows.
s
↔
t
-
The critical peak s = 0 {ε}←+(0,0)→ε 0 = t can be joined as follows.
s
↔
t
-
The critical peak s = s(+(x0_1,0)) {ε}←+(s(x0_1),0)→ε s(x0_1) = t can be joined as follows.
s
↔
t
-
The critical peak s = +(x0_1,+(x0_2,0)) {ε}←+(+(x0_1,x0_2),0)→ε +(x0_1,x0_2) = t can be joined as follows.
s
↔
t
-
The critical peak s = s(y1) {ε}←+(s(y1),0)→ε s(+(y1,0)) = t can be joined as follows.
s
↔
t
-
The critical peak s = s(+(s(y1),x0_2)) {ε}←+(s(y1),s(x0_2))→ε s(+(y1,s(x0_2))) = t can be joined as follows.
s
↔ s(s(+(y1,x0_2))) ↔
t
-
The critical peak s = s(y2) {ε}←+(0,s(y2))→ε s(+(0,y2)) = t can be joined as follows.
s
↔
t
-
The critical peak s = s(+(x0_1,s(y2))) {ε}←+(s(x0_1),s(y2))→ε s(+(s(x0_1),y2)) = t can be joined as follows.
s
↔ s(s(+(x0_1,y2))) ↔
t
-
The critical peak s = +(x0_1,+(x0_2,s(y2))) {ε}←+(+(x0_1,x0_2),s(y2))→ε s(+(+(x0_1,x0_2),y2)) = t can be joined as follows.
s
↔ +(x0_1,s(+(x0_2,y2))) ↔ s(+(x0_1,+(x0_2,y2))) ↔
t
-
The critical peak s = +(y1,y2) {ε}←+(+(y1,y2),0)→ε +(y1,+(y2,0)) = t can be joined as follows.
s
↔
t
-
The critical peak s = s(+(+(y1,y2),x0_2)) {ε}←+(+(y1,y2),s(x0_2))→ε +(y1,+(y2,s(x0_2))) = t can be joined as follows.
s
↔ s(+(y1,+(y2,x0_2))) ↔ +(y1,s(+(y2,x0_2))) ↔
t
-
The critical peak s = +(y2,y3) {1}←+(+(0,y2),y3)→ε +(0,+(y2,y3)) = t can be joined as follows.
s
↔
t
-
The critical peak s = +(y1,y3) {1}←+(+(y1,0),y3)→ε +(y1,+(0,y3)) = t can be joined as follows.
s
↔
t
-
The critical peak s = +(s(+(x1_1,y2)),y3) {1}←+(+(s(x1_1),y2),y3)→ε +(s(x1_1),+(y2,y3)) = t can be joined as follows.
s
↔ s(+(+(x1_1,y2),y3)) ↔ s(+(x1_1,+(y2,y3))) ↔
t
-
The critical peak s = +(s(+(y1,x1_2)),y3) {1}←+(+(y1,s(x1_2)),y3)→ε +(y1,+(s(x1_2),y3)) = t can be joined as follows.
s
↔ s(+(+(y1,x1_2),y3)) ↔ s(+(y1,+(x1_2,y3))) ↔ +(y1,s(+(x1_2,y3))) ↔
t
-
The critical peak s = +(+(x1_1,+(x1_2,y2)),y3) {1}←+(+(+(x1_1,x1_2),y2),y3)→ε +(+(x1_1,x1_2),+(y2,y3)) = t can be joined as follows.
s
↔ +(x1_1,+(+(x1_2,y2),y3)) ↔ +(x1_1,+(x1_2,+(y2,y3))) ↔
t
The TRS C is chosen as:
There are no rules.
Consequently, PCPS(R,C) is included in the following TRS P where
steps are used to show that certain pairs are C-convertible.
+(0,s(x0_2)) |
→ |
s(+(0,x0_2)) |
+(0,s(x0_2)) |
→ |
s(x0_2) |
+(s(x0_1),0) |
→ |
s(+(x0_1,0)) |
+(s(x0_1),0) |
→ |
s(x0_1) |
+(+(x0_1,x0_2),0) |
→ |
+(x0_1,+(x0_2,0)) |
+(+(x0_1,x0_2),0) |
→ |
+(x0_1,x0_2) |
+(s(y1),0) |
→ |
s(y1) |
+(s(y1),0) |
→ |
s(+(y1,0)) |
+(s(y1),s(x0_2)) |
→ |
s(+(s(y1),x0_2)) |
+(s(y1),s(x0_2)) |
→ |
s(+(y1,s(x0_2))) |
+(0,s(y2)) |
→ |
s(y2) |
+(0,s(y2)) |
→ |
s(+(0,y2)) |
+(s(x0_1),s(y2)) |
→ |
s(+(x0_1,s(y2))) |
+(s(x0_1),s(y2)) |
→ |
s(+(s(x0_1),y2)) |
+(+(x0_1,x0_2),s(y2)) |
→ |
+(x0_1,+(x0_2,s(y2))) |
+(+(x0_1,x0_2),s(y2)) |
→ |
s(+(+(x0_1,x0_2),y2)) |
+(+(y1,y2),0) |
→ |
+(y1,y2) |
+(+(y1,y2),0) |
→ |
+(y1,+(y2,0)) |
+(+(y1,y2),s(x0_2)) |
→ |
s(+(+(y1,y2),x0_2)) |
+(+(y1,y2),s(x0_2)) |
→ |
+(y1,+(y2,s(x0_2))) |
+(+(0,y2),y3) |
→ |
+(y2,y3) |
+(+(0,y2),y3) |
→ |
+(0,+(y2,y3)) |
+(+(y1,0),y3) |
→ |
+(y1,y3) |
+(+(y1,0),y3) |
→ |
+(y1,+(0,y3)) |
+(+(s(x1_1),y2),y3) |
→ |
+(s(+(x1_1,y2)),y3) |
+(+(s(x1_1),y2),y3) |
→ |
+(s(x1_1),+(y2,y3)) |
+(+(y1,s(x1_2)),y3) |
→ |
+(s(+(y1,x1_2)),y3) |
+(+(y1,s(x1_2)),y3) |
→ |
+(y1,+(s(x1_2),y3)) |
+(+(+(x1_1,x1_2),y2),y3) |
→ |
+(+(x1_1,+(x1_2,y2)),y3) |
+(+(+(x1_1,x1_2),y2),y3) |
→ |
+(+(x1_1,x1_2),+(y2,y3)) |
Relative termination of P / R is proven as follows.
1.2.1 Rule Removal
Using the
recursive path order with the following precedence and status
prec(+) |
= |
1 |
|
stat(+) |
= |
lex
|
prec(s) |
= |
0 |
|
stat(s) |
= |
lex
|
prec(0) |
= |
0 |
|
stat(0) |
= |
lex
|
all rules of R could be removed.
Moreover,
all rules of S could be removed.
1.2.1.1 R is empty
There are no rules in the TRS R. Hence, R/S is relative terminating.
Confluence of C is proven as follows.
1.2.2 (Weakly) Orthogonal
Confluence is proven since the TRS is (weakly) orthogonal.
Tool configuration
Hakusan