0 QTRS
↳1 DependencyPairsProof (⇔)
↳2 QDP
↳3 DependencyGraphProof (⇔)
↳4 AND
↳5 QDP
↳6 QDPOrderProof (⇔)
↳7 QDP
↳8 QDPOrderProof (⇔)
↳9 QDP
↳10 PisEmptyProof (⇔)
↳11 TRUE
↳12 QDP
↳13 QDPOrderProof (⇔)
↳14 QDP
↳15 PisEmptyProof (⇔)
↳16 TRUE
↳17 QDP
↳18 QDPOrderProof (⇔)
↳19 QDP
↳20 PisEmptyProof (⇔)
↳21 TRUE
↳22 QDP
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
active(f(X1, X2, X3)) → f(X1, X2, active(X3))
f(X1, X2, mark(X3)) → mark(f(X1, X2, X3))
proper(f(X1, X2, X3)) → f(proper(X1), proper(X2), proper(X3))
proper(a) → ok(a)
proper(b) → ok(b)
proper(c) → ok(c)
f(ok(X1), ok(X2), ok(X3)) → ok(f(X1, X2, X3))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
ACTIVE(f(a, b, X)) → F(X, X, X)
ACTIVE(f(X1, X2, X3)) → F(X1, X2, active(X3))
ACTIVE(f(X1, X2, X3)) → ACTIVE(X3)
F(X1, X2, mark(X3)) → F(X1, X2, X3)
PROPER(f(X1, X2, X3)) → F(proper(X1), proper(X2), proper(X3))
PROPER(f(X1, X2, X3)) → PROPER(X1)
PROPER(f(X1, X2, X3)) → PROPER(X2)
PROPER(f(X1, X2, X3)) → PROPER(X3)
F(ok(X1), ok(X2), ok(X3)) → F(X1, X2, X3)
TOP(mark(X)) → TOP(proper(X))
TOP(mark(X)) → PROPER(X)
TOP(ok(X)) → TOP(active(X))
TOP(ok(X)) → ACTIVE(X)
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
active(f(X1, X2, X3)) → f(X1, X2, active(X3))
f(X1, X2, mark(X3)) → mark(f(X1, X2, X3))
proper(f(X1, X2, X3)) → f(proper(X1), proper(X2), proper(X3))
proper(a) → ok(a)
proper(b) → ok(b)
proper(c) → ok(c)
f(ok(X1), ok(X2), ok(X3)) → ok(f(X1, X2, X3))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
F(ok(X1), ok(X2), ok(X3)) → F(X1, X2, X3)
F(X1, X2, mark(X3)) → F(X1, X2, X3)
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
active(f(X1, X2, X3)) → f(X1, X2, active(X3))
f(X1, X2, mark(X3)) → mark(f(X1, X2, X3))
proper(f(X1, X2, X3)) → f(proper(X1), proper(X2), proper(X3))
proper(a) → ok(a)
proper(b) → ok(b)
proper(c) → ok(c)
f(ok(X1), ok(X2), ok(X3)) → ok(f(X1, X2, X3))
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), ok(X3)) → F(X1, X2, X3)
F1 > mark
a > ok1 > mark
proper1 > ok1 > mark
proper1 > c > b > mark
top > mark
c: []
a: []
mark: []
ok1: [1]
b: []
proper1: [1]
top: []
F1: [1]
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
active(f(X1, X2, X3)) → f(X1, X2, active(X3))
f(X1, X2, mark(X3)) → mark(f(X1, X2, X3))
proper(f(X1, X2, X3)) → f(proper(X1), proper(X2), proper(X3))
proper(a) → ok(a)
proper(b) → ok(b)
proper(c) → ok(c)
f(ok(X1), ok(X2), ok(X3)) → ok(f(X1, X2, X3))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
F(X1, X2, mark(X3)) → F(X1, X2, X3)
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
active(f(X1, X2, X3)) → f(X1, X2, active(X3))
f(X1, X2, mark(X3)) → mark(f(X1, X2, X3))
proper(f(X1, X2, X3)) → f(proper(X1), proper(X2), proper(X3))
proper(a) → ok(a)
proper(b) → ok(b)
proper(c) → ok(c)
f(ok(X1), ok(X2), ok(X3)) → ok(f(X1, X2, X3))
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(X1, X2, mark(X3)) → F(X1, X2, X3)
active1 > a > mark1 > top
active1 > a > ok1 > top
active1 > b > top
proper1 > a > mark1 > top
proper1 > a > ok1 > top
proper1 > c > mark1 > top
proper1 > c > b > top
proper1 > c > ok1 > top
c: []
active1: [1]
a: []
ok1: [1]
mark1: [1]
b: []
proper1: [1]
top: []
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
active(f(X1, X2, X3)) → f(X1, X2, active(X3))
f(X1, X2, mark(X3)) → mark(f(X1, X2, X3))
proper(f(X1, X2, X3)) → f(proper(X1), proper(X2), proper(X3))
proper(a) → ok(a)
proper(b) → ok(b)
proper(c) → ok(c)
f(ok(X1), ok(X2), ok(X3)) → ok(f(X1, X2, X3))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
active(f(X1, X2, X3)) → f(X1, X2, active(X3))
f(X1, X2, mark(X3)) → mark(f(X1, X2, X3))
proper(f(X1, X2, X3)) → f(proper(X1), proper(X2), proper(X3))
proper(a) → ok(a)
proper(b) → ok(b)
proper(c) → ok(c)
f(ok(X1), ok(X2), ok(X3)) → ok(f(X1, X2, X3))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
PROPER(f(X1, X2, X3)) → PROPER(X2)
PROPER(f(X1, X2, X3)) → PROPER(X1)
PROPER(f(X1, X2, X3)) → PROPER(X3)
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
active(f(X1, X2, X3)) → f(X1, X2, active(X3))
f(X1, X2, mark(X3)) → mark(f(X1, X2, X3))
proper(f(X1, X2, X3)) → f(proper(X1), proper(X2), proper(X3))
proper(a) → ok(a)
proper(b) → ok(b)
proper(c) → ok(c)
f(ok(X1), ok(X2), ok(X3)) → ok(f(X1, X2, X3))
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, X3)) → PROPER(X2)
PROPER(f(X1, X2, X3)) → PROPER(X1)
PROPER(f(X1, X2, X3)) → PROPER(X3)
PROPER1 > top
active1 > f3 > top
active1 > a > top
active1 > b > top
proper1 > f3 > top
proper1 > a > top
proper1 > b > top
proper1 > c > top
c: []
active1: [1]
PROPER1: [1]
a: []
f3: [2,1,3]
b: []
proper1: [1]
top: []
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
active(f(X1, X2, X3)) → f(X1, X2, active(X3))
f(X1, X2, mark(X3)) → mark(f(X1, X2, X3))
proper(f(X1, X2, X3)) → f(proper(X1), proper(X2), proper(X3))
proper(a) → ok(a)
proper(b) → ok(b)
proper(c) → ok(c)
f(ok(X1), ok(X2), ok(X3)) → ok(f(X1, X2, X3))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
active(f(X1, X2, X3)) → f(X1, X2, active(X3))
f(X1, X2, mark(X3)) → mark(f(X1, X2, X3))
proper(f(X1, X2, X3)) → f(proper(X1), proper(X2), proper(X3))
proper(a) → ok(a)
proper(b) → ok(b)
proper(c) → ok(c)
f(ok(X1), ok(X2), ok(X3)) → ok(f(X1, X2, X3))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
ACTIVE(f(X1, X2, X3)) → ACTIVE(X3)
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
active(f(X1, X2, X3)) → f(X1, X2, active(X3))
f(X1, X2, mark(X3)) → mark(f(X1, X2, X3))
proper(f(X1, X2, X3)) → f(proper(X1), proper(X2), proper(X3))
proper(a) → ok(a)
proper(b) → ok(b)
proper(c) → ok(c)
f(ok(X1), ok(X2), ok(X3)) → ok(f(X1, X2, X3))
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, X3)) → ACTIVE(X3)
ACTIVE1 > f2
c > ok > f2
top > active1 > a > ok > f2
top > active1 > b > ok > f2
top > proper1 > f2
active1: [1]
c: []
a: []
f2: [1,2]
b: []
ok: []
proper1: [1]
top: []
ACTIVE1: [1]
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
active(f(X1, X2, X3)) → f(X1, X2, active(X3))
f(X1, X2, mark(X3)) → mark(f(X1, X2, X3))
proper(f(X1, X2, X3)) → f(proper(X1), proper(X2), proper(X3))
proper(a) → ok(a)
proper(b) → ok(b)
proper(c) → ok(c)
f(ok(X1), ok(X2), ok(X3)) → ok(f(X1, X2, X3))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
active(f(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
active(f(X1, X2, X3)) → f(X1, X2, active(X3))
f(X1, X2, mark(X3)) → mark(f(X1, X2, X3))
proper(f(X1, X2, X3)) → f(proper(X1), proper(X2), proper(X3))
proper(a) → ok(a)
proper(b) → ok(b)
proper(c) → ok(c)
f(ok(X1), ok(X2), ok(X3)) → ok(f(X1, X2, X3))
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(a, b, X)) → mark(f(X, X, X))
active(c) → mark(a)
active(c) → mark(b)
active(f(X1, X2, X3)) → f(X1, X2, active(X3))
f(X1, X2, mark(X3)) → mark(f(X1, X2, X3))
proper(f(X1, X2, X3)) → f(proper(X1), proper(X2), proper(X3))
proper(a) → ok(a)
proper(b) → ok(b)
proper(c) → ok(c)
f(ok(X1), ok(X2), ok(X3)) → ok(f(X1, X2, X3))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))