(0) Obligation:
Relative term rewrite system:
The relative TRS consists of the following R rules:
top(ok(U(x, y))) → top(check(D(x, y)))
D(x, B) → U(x, B)
F(x, U(O(y), z)) → U(x, F(y, z))
F(x, U(N(y), z)) → U(x, F(y, z))
D(O(x), F(y, z)) → F(x, D(y, z))
D(N(x), F(y, z)) → F(x, D(y, z))
F(x, U(E, y)) → U(x, F(E, y))
D(E, F(x, y)) → F(E, D(x, y))
The relative TRS consists of the following S rules:
F(x, ok(y)) → ok(F(x, y))
E → N(E)
F(ok(x), y) → ok(F(x, y))
O(ok(x)) → ok(O(x))
U(ok(x), y) → ok(U(x, y))
check(U(x, y)) → U(check(x), y)
check(N(x)) → N(check(x))
D(ok(x), y) → ok(D(x, y))
U(O(x), y) → U(x, y)
check(D(x, y)) → D(check(x), y)
check(F(x, y)) → F(x, check(y))
check(U(x, y)) → U(x, check(y))
U(N(x), y) → U(x, y)
D(O(x), y) → D(x, y)
check(O(x)) → O(check(x))
N(ok(x)) → ok(N(x))
D(N(x), y) → D(x, y)
D(x, ok(y)) → ok(D(x, y))
check(O(x)) → ok(O(x))
check(F(x, y)) → F(check(x), y)
U(x, ok(y)) → ok(U(x, y))
check(D(x, y)) → D(x, check(y))
(1) RelTRSLoopFinderProof (COMPLETE transformation)
The following loop was found:
---------- Loop: ----------
top(check(D(O(x), B))) → top(D(check(O(x)), B)) with rule check(D(x', y)) → D(check(x'), y) at position [0] and matcher [x' / O(x), y / B]
top(D(check(O(x)), B)) → top(D(ok(O(x)), B)) with rule check(O(x')) → ok(O(x')) at position [0,0] and matcher [x' / x]
top(D(ok(O(x)), B)) → top(U(ok(O(x)), B)) with rule D(x', B) → U(x', B) at position [0] and matcher [x' / ok(O(x))]
top(U(ok(O(x)), B)) → top(ok(U(O(x), B))) with rule U(ok(x'), y') → ok(U(x', y')) at position [0] and matcher [x' / O(x), y' / B]
top(ok(U(O(x), B))) → top(check(D(O(x), B))) with rule top(ok(U(x', y))) → top(check(D(x', y))) at position [] and matcher [x' / O(x), y / B]
Now an instance of the first term with Matcher [ ] occurs in the last term at position [].
Context: []
Therefore, the relative TRS problem does not terminate.
(2) NO