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 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)] =
2 0
0 0
· x1 +
0 0
1 0
[q(x1)] =
1 0
0 1
· x1 +
0 0
0 0
[p(x1)] =
1 2
1 0
· x1 +
0 0
0 0
[Q(x1)] =
1 0
0 1
· x1 +
0 0
0 0
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)] =
1 0
0 0
· x1 +
0 0
0 0
[q(x1)] =
1 0
0 0
· x1 +
0 0
0 0
[p(x1)] =
1 0
0 0
· x1 +
1 0
0 0
[Q(x1)] =
1 0
0 0
· x1 +
0 0
0 0
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)] =
1 0
0 0
· x1 +
0 0
0 0
[q(x1)] =
1 0
0 0
· x1 +
1 0
0 0
[p(x1)] =
1 0
0 0
· x1 +
0 0
0 0
[Q(x1)] =
2 0
0 0
· x1 +
0 0
0 0
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
q(q(p(x))) p(q(q(x)))
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