(0) Obligation:

Q restricted rewrite system:
The TRS R consists of the following rules:

f(f(f(a, x), y), z) → f(f(x, z), f(y, z))
f(f(b, x), y) → x
f(c, y) → y

Q is empty.

(1) Overlay + Local Confluence (EQUIVALENT transformation)

The TRS is overlay and locally confluent. By [NOC] we can switch to innermost.

(2) Obligation:

Q restricted rewrite system:
The TRS R consists of the following rules:

f(f(f(a, x), y), z) → f(f(x, z), f(y, z))
f(f(b, x), y) → x
f(c, y) → y

The set Q consists of the following terms:

f(f(f(a, x0), x1), x2)
f(f(b, x0), x1)
f(c, x0)

(3) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LPAR04] we result in the following initial DP problem.

(4) Obligation:

Q DP problem:
The TRS P consists of the following rules:

F(f(f(a, x), y), z) → F(f(x, z), f(y, z))
F(f(f(a, x), y), z) → F(x, z)
F(f(f(a, x), y), z) → F(y, z)

The TRS R consists of the following rules:

f(f(f(a, x), y), z) → f(f(x, z), f(y, z))
f(f(b, x), y) → x
f(c, y) → y

The set Q consists of the following terms:

f(f(f(a, x0), x1), x2)
f(f(b, x0), x1)
f(c, x0)

We have to consider all minimal (P,Q,R)-chains.

(5) ForwardInstantiation (EQUIVALENT transformation)

By forward instantiating [JAR06] the rule F(f(f(a, x), y), z) → F(x, z) we obtained the following new rules [LPAR04]:

F(f(f(a, f(f(a, y_0), y_1)), x1), x2) → F(f(f(a, y_0), y_1), x2)

(6) Obligation:

Q DP problem:
The TRS P consists of the following rules:

F(f(f(a, x), y), z) → F(f(x, z), f(y, z))
F(f(f(a, x), y), z) → F(y, z)
F(f(f(a, f(f(a, y_0), y_1)), x1), x2) → F(f(f(a, y_0), y_1), x2)

The TRS R consists of the following rules:

f(f(f(a, x), y), z) → f(f(x, z), f(y, z))
f(f(b, x), y) → x
f(c, y) → y

The set Q consists of the following terms:

f(f(f(a, x0), x1), x2)
f(f(b, x0), x1)
f(c, x0)

We have to consider all minimal (P,Q,R)-chains.

(7) ForwardInstantiation (EQUIVALENT transformation)

By forward instantiating [JAR06] the rule F(f(f(a, x), y), z) → F(y, z) we obtained the following new rules [LPAR04]:

F(f(f(a, x0), f(f(a, y_0), y_1)), x2) → F(f(f(a, y_0), y_1), x2)
F(f(f(a, x0), f(f(a, f(f(a, y_0), y_1)), y_2)), x2) → F(f(f(a, f(f(a, y_0), y_1)), y_2), x2)

(8) Obligation:

Q DP problem:
The TRS P consists of the following rules:

F(f(f(a, x), y), z) → F(f(x, z), f(y, z))
F(f(f(a, f(f(a, y_0), y_1)), x1), x2) → F(f(f(a, y_0), y_1), x2)
F(f(f(a, x0), f(f(a, y_0), y_1)), x2) → F(f(f(a, y_0), y_1), x2)
F(f(f(a, x0), f(f(a, f(f(a, y_0), y_1)), y_2)), x2) → F(f(f(a, f(f(a, y_0), y_1)), y_2), x2)

The TRS R consists of the following rules:

f(f(f(a, x), y), z) → f(f(x, z), f(y, z))
f(f(b, x), y) → x
f(c, y) → y

The set Q consists of the following terms:

f(f(f(a, x0), x1), x2)
f(f(b, x0), x1)
f(c, x0)

We have to consider all minimal (P,Q,R)-chains.

(9) MNOCProof (EQUIVALENT transformation)

We use the modular non-overlap check [FROCOS05] to decrease Q to the empty set.

(10) Obligation:

Q DP problem:
The TRS P consists of the following rules:

F(f(f(a, x), y), z) → F(f(x, z), f(y, z))
F(f(f(a, f(f(a, y_0), y_1)), x1), x2) → F(f(f(a, y_0), y_1), x2)
F(f(f(a, x0), f(f(a, y_0), y_1)), x2) → F(f(f(a, y_0), y_1), x2)
F(f(f(a, x0), f(f(a, f(f(a, y_0), y_1)), y_2)), x2) → F(f(f(a, f(f(a, y_0), y_1)), y_2), x2)

The TRS R consists of the following rules:

f(f(f(a, x), y), z) → f(f(x, z), f(y, z))
f(f(b, x), y) → x
f(c, y) → y

Q is empty.
We have to consider all (P,Q,R)-chains.

(11) NonTerminationProof (EQUIVALENT transformation)

We used the non-termination processor [FROCOS05] to show that the DP problem is infinite.
Found a loop by narrowing to the left:

s = F(f(f(a, f(a, x0)), y), f(c, f(f(a, y_0), y_1))) evaluates to t =F(f(f(a, y_0), y_1), f(y, f(f(a, y_0), y_1)))

Thus s starts an infinite chain as s semiunifies with t with the following substitutions:
  • Semiunifier: [y_0 / f(a, x0), y_1 / c, y / c]
  • Matcher: [ ]




Rewriting sequence

F(f(f(a, f(a, x0)), c), f(c, f(f(a, f(a, x0)), c)))F(f(f(a, f(a, x0)), c), f(f(a, f(a, x0)), c))
with rule f(c, y') → y' at position [1] and matcher [y' / f(f(a, f(a, x0)), c)]

F(f(f(a, f(a, x0)), c), f(f(a, f(a, x0)), c))F(f(f(a, x0), f(f(a, f(a, x0)), c)), f(c, f(f(a, f(a, x0)), c)))
with rule F(f(f(a, x), y), z) → F(f(x, z), f(y, z)) at position [] and matcher [x / f(a, x0), y / c, z / f(f(a, f(a, x0)), c)]

F(f(f(a, x0), f(f(a, f(a, x0)), c)), f(c, f(f(a, f(a, x0)), c)))F(f(f(a, f(a, x0)), c), f(c, f(f(a, f(a, x0)), c)))
with rule F(f(f(a, x0), f(f(a, y_0), y_1)), x2) → F(f(f(a, y_0), y_1), x2)

Now applying the matcher to the start term leads to a term which is equal to the last term in the rewriting sequence


All these steps are and every following step will be a correct step w.r.t to Q.



(12) FALSE