YES
Confluence Proof
Confluence Proof
by Hakusan
Input
The rewrite relation of the following TRS is considered.
P(x) |
→ |
Q(Q(p(x))) |
p(p(x)) |
→ |
q(q(x)) |
p(Q(Q(x))) |
→ |
Q(Q(p(x))) |
Q(p(q(x))) |
→ |
q(p(Q(x))) |
q(q(p(x))) |
→ |
p(q(q(x))) |
q(Q(x)) |
→ |
x |
Q(q(x)) |
→ |
x |
p(P(x)) |
→ |
x |
P(p(x)) |
→ |
x |
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 = x0_1 {ε}←P(p(x0_1))→ε Q(Q(p(p(x0_1)))) = t can be joined as follows.
s
↔ Q(q(x0_1)) ↔ Q(Q(q(q(x0_1)))) ↔
t
-
The critical peak s = p(q(q(x1_1))) {1}←p(p(p(x1_1)))→ε q(q(p(x1_1))) = t can be joined as follows.
s
↔
t
-
The critical peak s = p(Q(Q(p(x1_1)))) {1}←p(p(Q(Q(x1_1))))→ε q(q(Q(Q(x1_1)))) = t can be joined as follows.
s
↔ Q(Q(p(p(x1_1)))) ↔ Q(Q(q(q(x1_1)))) ↔ Q(q(x1_1)) ↔ x1_1 ↔ q(Q(x1_1)) ↔
t
-
The critical peak s = p(x1_1) {1}←p(p(P(x1_1)))→ε q(q(P(x1_1))) = t can be joined as follows.
s
↔ q(Q(p(x1_1))) ↔ q(q(Q(Q(p(x1_1))))) ↔
t
-
The critical peak s = p(Q(q(p(Q(x2_1))))) {1.1}←p(Q(Q(p(q(x2_1)))))→ε Q(Q(p(p(q(x2_1))))) = t can be joined as follows.
s
↔ p(p(Q(x2_1))) ↔ q(q(Q(x2_1))) ↔ q(x2_1) ↔ Q(q(q(x2_1))) ↔ Q(Q(q(q(q(x2_1))))) ↔
t
-
The critical peak s = p(Q(x2_1)) {1.1}←p(Q(Q(q(x2_1))))→ε Q(Q(p(q(x2_1)))) = t can be joined as follows.
s
↔ Q(q(p(Q(x2_1)))) ↔
t
-
The critical peak s = Q(p(p(q(q(x2_1))))) {1.1}←Q(p(q(q(p(x2_1)))))→ε q(p(Q(q(p(x2_1))))) = t can be joined as follows.
s
↔ Q(q(q(q(q(x2_1))))) ↔ q(q(q(x2_1))) ↔ q(p(p(x2_1))) ↔
t
-
The critical peak s = Q(p(x2_1)) {1.1}←Q(p(q(Q(x2_1))))→ε q(p(Q(Q(x2_1)))) = t can be joined as follows.
s
↔ q(Q(Q(p(x2_1)))) ↔
t
-
The critical peak s = q(q(q(q(x2_1)))) {1.1}←q(q(p(p(x2_1))))→ε p(q(q(p(x2_1)))) = t can be joined as follows.
s
↔ p(p(q(q(x2_1)))) ↔
t
-
The critical peak s = q(q(Q(Q(p(x2_1))))) {1.1}←q(q(p(Q(Q(x2_1)))))→ε p(q(q(Q(Q(x2_1))))) = t can be joined as follows.
s
↔ q(Q(p(x2_1))) ↔ p(x2_1) ↔ p(q(Q(x2_1))) ↔
t
-
The critical peak s = q(q(x2_1)) {1.1}←q(q(p(P(x2_1))))→ε p(q(q(P(x2_1)))) = t can be joined as follows.
s
↔ p(p(x2_1)) ↔ p(q(Q(p(x2_1)))) ↔ p(q(q(Q(Q(p(x2_1)))))) ↔
t
-
The critical peak s = q(q(p(Q(x1_1)))) {1}←q(Q(p(q(x1_1))))→ε p(q(x1_1)) = t can be joined as follows.
s
↔ p(q(q(Q(x1_1)))) ↔
t
-
The critical peak s = q(x1_1) {1}←q(Q(q(x1_1)))→ε q(x1_1) = t can be joined as follows.
s
↔
t
-
The critical peak s = Q(p(q(q(x1_1)))) {1}←Q(q(q(p(x1_1))))→ε q(p(x1_1)) = t can be joined as follows.
s
↔ q(p(Q(q(x1_1)))) ↔
t
-
The critical peak s = Q(x1_1) {1}←Q(q(Q(x1_1)))→ε Q(x1_1) = t can be joined as follows.
s
↔
t
-
The critical peak s = p(Q(Q(p(y1)))) {1}←p(P(y1))→ε y1 = t can be joined as follows.
s
↔ Q(Q(p(p(y1)))) ↔ Q(Q(q(q(y1)))) ↔ Q(q(y1)) ↔
t
-
The critical peak s = p(x1_1) {1}←p(P(p(x1_1)))→ε p(x1_1) = t can be joined as follows.
s
↔
t
-
The critical peak s = Q(Q(p(p(y1)))) {ε}←P(p(y1))→ε y1 = t can be joined as follows.
s
↔ Q(Q(q(q(y1)))) ↔ Q(q(y1)) ↔
t
-
The critical peak s = P(q(q(x1_1))) {1}←P(p(p(x1_1)))→ε p(x1_1) = t can be joined as follows.
s
↔ Q(Q(p(q(q(x1_1))))) ↔ Q(q(p(Q(q(x1_1))))) ↔ p(Q(q(x1_1))) ↔
t
-
The critical peak s = P(Q(Q(p(x1_1)))) {1}←P(p(Q(Q(x1_1))))→ε Q(Q(x1_1)) = t can be joined as follows.
s
↔ Q(Q(p(Q(Q(p(x1_1)))))) ↔ Q(Q(Q(Q(p(p(x1_1)))))) ↔ Q(Q(Q(Q(q(q(x1_1)))))) ↔ Q(Q(Q(q(x1_1)))) ↔
t
-
The critical peak s = P(x1_1) {1}←P(p(P(x1_1)))→ε P(x1_1) = t can be joined as follows.
s
↔
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.
P(p(x0_1)) |
→ |
x0_1 |
P(p(x0_1)) |
→ |
Q(Q(p(p(x0_1)))) |
p(p(p(x1_1))) |
→ |
p(q(q(x1_1))) |
p(p(p(x1_1))) |
→ |
q(q(p(x1_1))) |
p(p(Q(Q(x1_1)))) |
→ |
p(Q(Q(p(x1_1)))) |
p(p(Q(Q(x1_1)))) |
→ |
q(q(Q(Q(x1_1)))) |
p(p(P(x1_1))) |
→ |
p(x1_1) |
p(p(P(x1_1))) |
→ |
q(q(P(x1_1))) |
p(Q(Q(p(q(x2_1))))) |
→ |
p(Q(q(p(Q(x2_1))))) |
p(Q(Q(p(q(x2_1))))) |
→ |
Q(Q(p(p(q(x2_1))))) |
p(Q(Q(q(x2_1)))) |
→ |
p(Q(x2_1)) |
p(Q(Q(q(x2_1)))) |
→ |
Q(Q(p(q(x2_1)))) |
Q(p(q(q(p(x2_1))))) |
→ |
Q(p(p(q(q(x2_1))))) |
Q(p(q(q(p(x2_1))))) |
→ |
q(p(Q(q(p(x2_1))))) |
Q(p(q(Q(x2_1)))) |
→ |
Q(p(x2_1)) |
Q(p(q(Q(x2_1)))) |
→ |
q(p(Q(Q(x2_1)))) |
q(q(p(p(x2_1)))) |
→ |
q(q(q(q(x2_1)))) |
q(q(p(p(x2_1)))) |
→ |
p(q(q(p(x2_1)))) |
q(q(p(Q(Q(x2_1))))) |
→ |
q(q(Q(Q(p(x2_1))))) |
q(q(p(Q(Q(x2_1))))) |
→ |
p(q(q(Q(Q(x2_1))))) |
q(q(p(P(x2_1)))) |
→ |
q(q(x2_1)) |
q(q(p(P(x2_1)))) |
→ |
p(q(q(P(x2_1)))) |
q(Q(p(q(x1_1)))) |
→ |
q(q(p(Q(x1_1)))) |
q(Q(p(q(x1_1)))) |
→ |
p(q(x1_1)) |
Q(q(q(p(x1_1)))) |
→ |
Q(p(q(q(x1_1)))) |
Q(q(q(p(x1_1)))) |
→ |
q(p(x1_1)) |
p(P(y1)) |
→ |
p(Q(Q(p(y1)))) |
p(P(y1)) |
→ |
y1 |
P(p(y1)) |
→ |
Q(Q(p(p(y1)))) |
P(p(y1)) |
→ |
y1 |
P(p(p(x1_1))) |
→ |
P(q(q(x1_1))) |
P(p(p(x1_1))) |
→ |
p(x1_1) |
P(p(Q(Q(x1_1)))) |
→ |
P(Q(Q(p(x1_1)))) |
P(p(Q(Q(x1_1)))) |
→ |
Q(Q(x1_1)) |
Relative termination of P / R is proven as follows.
1.1 Rule Removal
Using the
recursive path order with the following precedence and status
prec(q) |
= |
0 |
|
stat(q) |
= |
lex
|
prec(Q) |
= |
0 |
|
stat(Q) |
= |
lex
|
prec(P) |
= |
1 |
|
stat(P) |
= |
lex
|
prec(p) |
= |
0 |
|
stat(p) |
= |
lex
|
the
rules
p(p(p(x1_1))) |
→ |
p(q(q(x1_1))) |
p(p(p(x1_1))) |
→ |
q(q(p(x1_1))) |
p(p(Q(Q(x1_1)))) |
→ |
p(Q(Q(p(x1_1)))) |
p(p(Q(Q(x1_1)))) |
→ |
q(q(Q(Q(x1_1)))) |
p(p(P(x1_1))) |
→ |
q(q(P(x1_1))) |
p(Q(Q(p(q(x2_1))))) |
→ |
p(Q(q(p(Q(x2_1))))) |
p(Q(Q(p(q(x2_1))))) |
→ |
Q(Q(p(p(q(x2_1))))) |
p(Q(Q(q(x2_1)))) |
→ |
Q(Q(p(q(x2_1)))) |
Q(p(q(q(p(x2_1))))) |
→ |
Q(p(p(q(q(x2_1))))) |
Q(p(q(q(p(x2_1))))) |
→ |
q(p(Q(q(p(x2_1))))) |
Q(p(q(Q(x2_1)))) |
→ |
q(p(Q(Q(x2_1)))) |
q(q(p(p(x2_1)))) |
→ |
q(q(q(q(x2_1)))) |
q(q(p(p(x2_1)))) |
→ |
p(q(q(p(x2_1)))) |
q(q(p(Q(Q(x2_1))))) |
→ |
q(q(Q(Q(p(x2_1))))) |
q(q(p(Q(Q(x2_1))))) |
→ |
p(q(q(Q(Q(x2_1))))) |
q(q(p(P(x2_1)))) |
→ |
p(q(q(P(x2_1)))) |
q(Q(p(q(x1_1)))) |
→ |
q(q(p(Q(x1_1)))) |
Q(q(q(p(x1_1)))) |
→ |
Q(p(q(q(x1_1)))) |
P(p(p(x1_1))) |
→ |
P(q(q(x1_1))) |
P(p(Q(Q(x1_1)))) |
→ |
P(Q(Q(p(x1_1)))) |
remain in R.
Moreover,
the
rules
p(p(x)) |
→ |
q(q(x)) |
p(Q(Q(x))) |
→ |
Q(Q(p(x))) |
Q(p(q(x))) |
→ |
q(p(Q(x))) |
q(q(p(x))) |
→ |
p(q(q(x))) |
remain in S.
1.1.1 Rule Removal
Using the
linear polynomial interpretation over (2 x 2)-matrices with strict dimension 1
over the naturals
[P(x1)] |
= |
· x1 +
|
[q(x1)] |
= |
· x1 +
|
[p(x1)] |
= |
· x1 +
|
[Q(x1)] |
= |
· x1 +
|
the
rules
p(p(p(x1_1))) |
→ |
p(q(q(x1_1))) |
p(p(p(x1_1))) |
→ |
q(q(p(x1_1))) |
p(p(Q(Q(x1_1)))) |
→ |
p(Q(Q(p(x1_1)))) |
p(p(Q(Q(x1_1)))) |
→ |
q(q(Q(Q(x1_1)))) |
p(Q(Q(p(q(x2_1))))) |
→ |
p(Q(q(p(Q(x2_1))))) |
p(Q(Q(p(q(x2_1))))) |
→ |
Q(Q(p(p(q(x2_1))))) |
p(Q(Q(q(x2_1)))) |
→ |
Q(Q(p(q(x2_1)))) |
Q(p(q(q(p(x2_1))))) |
→ |
Q(p(p(q(q(x2_1))))) |
Q(p(q(q(p(x2_1))))) |
→ |
q(p(Q(q(p(x2_1))))) |
Q(p(q(Q(x2_1)))) |
→ |
q(p(Q(Q(x2_1)))) |
q(q(p(p(x2_1)))) |
→ |
q(q(q(q(x2_1)))) |
q(q(p(p(x2_1)))) |
→ |
p(q(q(p(x2_1)))) |
q(q(p(Q(Q(x2_1))))) |
→ |
q(q(Q(Q(p(x2_1))))) |
q(q(p(Q(Q(x2_1))))) |
→ |
p(q(q(Q(Q(x2_1))))) |
q(q(p(P(x2_1)))) |
→ |
p(q(q(P(x2_1)))) |
q(Q(p(q(x1_1)))) |
→ |
q(q(p(Q(x1_1)))) |
Q(q(q(p(x1_1)))) |
→ |
Q(p(q(q(x1_1)))) |
P(p(p(x1_1))) |
→ |
P(q(q(x1_1))) |
P(p(Q(Q(x1_1)))) |
→ |
P(Q(Q(p(x1_1)))) |
remain in R.
Moreover,
the
rules
p(p(x)) |
→ |
q(q(x)) |
p(Q(Q(x))) |
→ |
Q(Q(p(x))) |
Q(p(q(x))) |
→ |
q(p(Q(x))) |
q(q(p(x))) |
→ |
p(q(q(x))) |
remain in S.
1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over (2 x 2)-matrices with strict dimension 1
over the naturals
[P(x1)] |
= |
· x1 +
|
[q(x1)] |
= |
· x1 +
|
[p(x1)] |
= |
· x1 +
|
[Q(x1)] |
= |
· x1 +
|
the
rules
p(p(Q(Q(x1_1)))) |
→ |
p(Q(Q(p(x1_1)))) |
p(Q(Q(p(q(x2_1))))) |
→ |
p(Q(q(p(Q(x2_1))))) |
p(Q(Q(p(q(x2_1))))) |
→ |
Q(Q(p(p(q(x2_1))))) |
p(Q(Q(q(x2_1)))) |
→ |
Q(Q(p(q(x2_1)))) |
Q(p(q(q(p(x2_1))))) |
→ |
Q(p(p(q(q(x2_1))))) |
Q(p(q(q(p(x2_1))))) |
→ |
q(p(Q(q(p(x2_1))))) |
Q(p(q(Q(x2_1)))) |
→ |
q(p(Q(Q(x2_1)))) |
q(q(p(p(x2_1)))) |
→ |
p(q(q(p(x2_1)))) |
q(q(p(Q(Q(x2_1))))) |
→ |
q(q(Q(Q(p(x2_1))))) |
q(q(p(Q(Q(x2_1))))) |
→ |
p(q(q(Q(Q(x2_1))))) |
q(q(p(P(x2_1)))) |
→ |
p(q(q(P(x2_1)))) |
q(Q(p(q(x1_1)))) |
→ |
q(q(p(Q(x1_1)))) |
Q(q(q(p(x1_1)))) |
→ |
Q(p(q(q(x1_1)))) |
P(p(Q(Q(x1_1)))) |
→ |
P(Q(Q(p(x1_1)))) |
remain in R.
Moreover,
the
rules
p(Q(Q(x))) |
→ |
Q(Q(p(x))) |
Q(p(q(x))) |
→ |
q(p(Q(x))) |
q(q(p(x))) |
→ |
p(q(q(x))) |
remain in S.
1.1.1.1.1 Rule Removal
Using the
linear polynomial interpretation over (2 x 2)-matrices with strict dimension 1
over the naturals
[P(x1)] |
= |
· x1 +
|
[q(x1)] |
= |
· x1 +
|
[p(x1)] |
= |
· x1 +
|
[Q(x1)] |
= |
· x1 +
|
the
rules
p(p(Q(Q(x1_1)))) |
→ |
p(Q(Q(p(x1_1)))) |
p(Q(Q(p(q(x2_1))))) |
→ |
Q(Q(p(p(q(x2_1))))) |
p(Q(Q(q(x2_1)))) |
→ |
Q(Q(p(q(x2_1)))) |
Q(p(q(q(p(x2_1))))) |
→ |
Q(p(p(q(q(x2_1))))) |
q(q(p(p(x2_1)))) |
→ |
p(q(q(p(x2_1)))) |
q(q(p(Q(Q(x2_1))))) |
→ |
q(q(Q(Q(p(x2_1))))) |
q(q(p(Q(Q(x2_1))))) |
→ |
p(q(q(Q(Q(x2_1))))) |
q(q(p(P(x2_1)))) |
→ |
p(q(q(P(x2_1)))) |
Q(q(q(p(x1_1)))) |
→ |
Q(p(q(q(x1_1)))) |
P(p(Q(Q(x1_1)))) |
→ |
P(Q(Q(p(x1_1)))) |
remain in R.
Moreover,
the
rules
p(Q(Q(x))) |
→ |
Q(Q(p(x))) |
q(q(p(x))) |
→ |
p(q(q(x))) |
remain in S.
1.1.1.1.1.1 Rule Removal
Using the
recursive path order with the following precedence and status
prec(q) |
= |
1 |
|
stat(q) |
= |
lex
|
prec(Q) |
= |
0 |
|
stat(Q) |
= |
lex
|
prec(P) |
= |
0 |
|
stat(P) |
= |
lex
|
prec(p) |
= |
1 |
|
stat(p) |
= |
lex
|
the
rules
Q(p(q(q(p(x2_1))))) |
→ |
Q(p(p(q(q(x2_1))))) |
q(q(p(p(x2_1)))) |
→ |
p(q(q(p(x2_1)))) |
q(q(p(Q(Q(x2_1))))) |
→ |
p(q(q(Q(Q(x2_1))))) |
q(q(p(P(x2_1)))) |
→ |
p(q(q(P(x2_1)))) |
Q(q(q(p(x1_1)))) |
→ |
Q(p(q(q(x1_1)))) |
remain in R.
Moreover,
the
rule
remains in S.
1.1.1.1.1.1.1 Rule Removal
Using the
recursive path order with the following precedence and status
prec(q) |
= |
1 |
|
stat(q) |
= |
lex
|
prec(Q) |
= |
0 |
|
stat(Q) |
= |
lex
|
prec(P) |
= |
0 |
|
stat(P) |
= |
lex
|
prec(p) |
= |
0 |
|
stat(p) |
= |
lex
|
all rules of R could be removed.
Moreover,
all rules of S could be removed.
1.1.1.1.1.1.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 (Weakly) Orthogonal
Confluence is proven since the TRS is (weakly) orthogonal.
Tool configuration
Hakusan