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 QDPOrderProof (⇔)
↳19 QDP
↳20 PisEmptyProof (⇔)
↳21 TRUE
↳22 QDP
↳23 QDPOrderProof (⇔)
↳24 QDP
↳25 QDPOrderProof (⇔)
↳26 QDP
↳27 PisEmptyProof (⇔)
↳28 TRUE
↳29 QDP
↳30 QDPOrderProof (⇔)
↳31 QDP
↳32 QDPOrderProof (⇔)
↳33 QDP
↳34 PisEmptyProof (⇔)
↳35 TRUE
↳36 QDP
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
ACTIVE(h(X)) → G(X, X)
ACTIVE(g(a, X)) → F(b, X)
ACTIVE(f(X, X)) → H(a)
ACTIVE(h(X)) → H(active(X))
ACTIVE(h(X)) → ACTIVE(X)
ACTIVE(g(X1, X2)) → G(active(X1), X2)
ACTIVE(g(X1, X2)) → ACTIVE(X1)
ACTIVE(f(X1, X2)) → F(active(X1), X2)
ACTIVE(f(X1, X2)) → ACTIVE(X1)
H(mark(X)) → H(X)
G(mark(X1), X2) → G(X1, X2)
F(mark(X1), X2) → F(X1, X2)
PROPER(h(X)) → H(proper(X))
PROPER(h(X)) → PROPER(X)
PROPER(g(X1, X2)) → G(proper(X1), proper(X2))
PROPER(g(X1, X2)) → PROPER(X1)
PROPER(g(X1, X2)) → PROPER(X2)
PROPER(f(X1, X2)) → F(proper(X1), proper(X2))
PROPER(f(X1, X2)) → PROPER(X1)
PROPER(f(X1, X2)) → PROPER(X2)
H(ok(X)) → H(X)
G(ok(X1), ok(X2)) → G(X1, 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(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
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(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
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)
active1 > [a, f1, proper1] > [ok1, h1, top] > mark1
active1 > [a, f1, proper1] > b > mark1
ok1: multiset
mark1: multiset
active1: multiset
h1: multiset
a: multiset
f1: multiset
b: multiset
proper1: multiset
top: []
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
G(ok(X1), ok(X2)) → G(X1, X2)
G(mark(X1), X2) → G(X1, X2)
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
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.
G(ok(X1), ok(X2)) → G(X1, X2)
G(mark(X1), X2) → G(X1, X2)
active1 > [a, f1, proper1] > [ok1, h1, top] > mark1
active1 > [a, f1, proper1] > b > mark1
ok1: multiset
mark1: multiset
active1: multiset
h1: multiset
a: multiset
f1: multiset
b: multiset
proper1: multiset
top: []
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
H(ok(X)) → H(X)
H(mark(X)) → H(X)
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
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.
H(ok(X)) → H(X)
top > [ok1, active1, f1, proper1] > [a, b]
ok1: [1]
active1: [1]
a: multiset
f1: [1]
b: multiset
proper1: [1]
top: multiset
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
H(mark(X)) → H(X)
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
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.
H(mark(X)) → H(X)
[active1, g2, a, f2] > [mark1, h1] > [b, ok, top]
H1: [1]
mark1: [1]
active1: [1]
h1: [1]
g2: [2,1]
a: multiset
f2: [1,2]
b: multiset
ok: []
top: multiset
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
PROPER(g(X1, X2)) → PROPER(X1)
PROPER(h(X)) → PROPER(X)
PROPER(g(X1, X2)) → PROPER(X2)
PROPER(f(X1, X2)) → PROPER(X1)
PROPER(f(X1, X2)) → PROPER(X2)
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
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(g(X1, X2)) → PROPER(X1)
PROPER(g(X1, X2)) → PROPER(X2)
PROPER(f(X1, X2)) → PROPER(X1)
PROPER(f(X1, X2)) → PROPER(X2)
active1 > g2 > [mark, a] > [PROPER1, f2]
b > [PROPER1, f2]
top > [PROPER1, f2]
PROPER1: multiset
g2: multiset
f2: multiset
active1: multiset
mark: multiset
a: multiset
b: multiset
top: []
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
PROPER(h(X)) → PROPER(X)
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
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(h(X)) → PROPER(X)
[a, f] > b
[a, f] > proper1 > [h1, active1, top]
PROPER1: [1]
h1: [1]
active1: [1]
a: multiset
f: []
b: multiset
proper1: multiset
top: []
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
ACTIVE(g(X1, X2)) → ACTIVE(X1)
ACTIVE(h(X)) → ACTIVE(X)
ACTIVE(f(X1, X2)) → ACTIVE(X1)
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
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(g(X1, X2)) → ACTIVE(X1)
ACTIVE(f(X1, X2)) → ACTIVE(X1)
ACTIVE1 > mark
active1 > [f1, proper1, top] > [a, ok] > g1 > b > mark
ACTIVE1: [1]
g1: multiset
f1: multiset
active1: [1]
mark: multiset
a: multiset
b: multiset
proper1: multiset
ok: multiset
top: multiset
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
ACTIVE(h(X)) → ACTIVE(X)
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
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(h(X)) → ACTIVE(X)
[a, f] > b
[a, f] > proper1 > [h1, active1, top]
ACTIVE1: [1]
h1: [1]
active1: [1]
a: multiset
f: []
b: multiset
proper1: multiset
top: []
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
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(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
active(h(X)) → h(active(X))
active(g(X1, X2)) → g(active(X1), X2)
active(f(X1, X2)) → f(active(X1), X2)
h(mark(X)) → mark(h(X))
g(mark(X1), X2) → mark(g(X1, X2))
f(mark(X1), X2) → mark(f(X1, X2))
proper(h(X)) → h(proper(X))
proper(g(X1, X2)) → g(proper(X1), proper(X2))
proper(a) → ok(a)
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(b) → ok(b)
h(ok(X)) → ok(h(X))
g(ok(X1), ok(X2)) → ok(g(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))