0 QTRS
↳1 DependencyPairsProof (⇔)
↳2 QDP
↳3 DependencyGraphProof (⇔)
↳4 AND
↳5 QDP
↳6 QDPOrderProof (⇔)
↳7 QDP
↳8 PisEmptyProof (⇔)
↳9 TRUE
↳10 QDP
↳11 QDPOrderProof (⇔)
↳12 QDP
↳13 PisEmptyProof (⇔)
↳14 TRUE
↳15 QDP
↳16 QDPOrderProof (⇔)
↳17 QDP
↳18 PisEmptyProof (⇔)
↳19 TRUE
↳20 QDP
active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
ACTIVE(f(X, X)) → F(a, b)
ACTIVE(f(X1, X2)) → F(active(X1), X2)
ACTIVE(f(X1, X2)) → ACTIVE(X1)
F(mark(X1), X2) → F(X1, X2)
PROPER(f(X1, X2)) → F(proper(X1), proper(X2))
PROPER(f(X1, X2)) → PROPER(X1)
PROPER(f(X1, X2)) → PROPER(X2)
F(ok(X1), ok(X2)) → F(X1, X2)
TOP(mark(X)) → TOP(proper(X))
TOP(mark(X)) → PROPER(X)
TOP(ok(X)) → TOP(active(X))
TOP(ok(X)) → ACTIVE(X)
active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
F(ok(X1), ok(X2)) → F(X1, X2)
F(mark(X1), X2) → F(X1, X2)
active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
F(ok(X1), ok(X2)) → F(X1, X2)
F(mark(X1), X2) → F(X1, X2)
ok1 > F1
F1: multiset
ok1: multiset
mark1: multiset
active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
PROPER(f(X1, X2)) → PROPER(X2)
PROPER(f(X1, X2)) → PROPER(X1)
active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
PROPER(f(X1, X2)) → PROPER(X2)
PROPER(f(X1, X2)) → PROPER(X1)
trivial
f2: [2,1]
active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
ACTIVE(f(X1, X2)) → ACTIVE(X1)
active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACTIVE(f(X1, X2)) → ACTIVE(X1)
trivial
f2: multiset
active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
TOP(ok(X)) → TOP(active(X))
TOP(mark(X)) → TOP(proper(X))
active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
active(f(X1, X2)) → f(active(X1), X2)
f(mark(X1), X2) → mark(f(X1, X2))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(a) → ok(a)
proper(b) → ok(b)
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))