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 QDPOrderProof (⇔)
↳16 QDP
↳17 PisEmptyProof (⇔)
↳18 TRUE
↳19 QDP
↳20 QDPOrderProof (⇔)
↳21 QDP
↳22 QDPOrderProof (⇔)
↳23 QDP
↳24 PisEmptyProof (⇔)
↳25 TRUE
↳26 QDP
↳27 QDPOrderProof (⇔)
↳28 QDP
↳29 QDPOrderProof (⇔)
↳30 QDP
↳31 PisEmptyProof (⇔)
↳32 TRUE
↳33 QDP
↳34 QDPOrderProof (⇔)
↳35 QDP
↳36 QDPOrderProof (⇔)
↳37 QDP
↳38 PisEmptyProof (⇔)
↳39 TRUE
active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))
active(f(X1, X2)) → f(active(X1), X2)
active(g(X)) → g(active(X))
f(mark(X1), X2) → mark(f(X1, X2))
g(mark(X)) → mark(g(X))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(g(X)) → g(proper(X))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
g(ok(X)) → ok(g(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
ACTIVE(f(g(X), Y)) → F(X, f(g(X), Y))
ACTIVE(f(X1, X2)) → F(active(X1), X2)
ACTIVE(f(X1, X2)) → ACTIVE(X1)
ACTIVE(g(X)) → G(active(X))
ACTIVE(g(X)) → ACTIVE(X)
F(mark(X1), X2) → F(X1, X2)
G(mark(X)) → G(X)
PROPER(f(X1, X2)) → F(proper(X1), proper(X2))
PROPER(f(X1, X2)) → PROPER(X1)
PROPER(f(X1, X2)) → PROPER(X2)
PROPER(g(X)) → G(proper(X))
PROPER(g(X)) → PROPER(X)
F(ok(X1), ok(X2)) → F(X1, X2)
G(ok(X)) → G(X)
TOP(mark(X)) → TOP(proper(X))
TOP(mark(X)) → PROPER(X)
TOP(ok(X)) → TOP(active(X))
TOP(ok(X)) → ACTIVE(X)
active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))
active(f(X1, X2)) → f(active(X1), X2)
active(g(X)) → g(active(X))
f(mark(X1), X2) → mark(f(X1, X2))
g(mark(X)) → mark(g(X))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(g(X)) → g(proper(X))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
g(ok(X)) → ok(g(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
G(ok(X)) → G(X)
G(mark(X)) → G(X)
active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))
active(f(X1, X2)) → f(active(X1), X2)
active(g(X)) → g(active(X))
f(mark(X1), X2) → mark(f(X1, X2))
g(mark(X)) → mark(g(X))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(g(X)) → g(proper(X))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
g(ok(X)) → ok(g(X))
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(X)) → G(X)
trivial
ok1: multiset
G(mark(X)) → G(X)
active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))
active(f(X1, X2)) → f(active(X1), X2)
active(g(X)) → g(active(X))
f(mark(X1), X2) → mark(f(X1, X2))
g(mark(X)) → mark(g(X))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(g(X)) → g(proper(X))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
g(ok(X)) → ok(g(X))
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(mark(X)) → G(X)
mark1 > G1
G1: [1]
mark1: multiset
active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))
active(f(X1, X2)) → f(active(X1), X2)
active(g(X)) → g(active(X))
f(mark(X1), X2) → mark(f(X1, X2))
g(mark(X)) → mark(g(X))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(g(X)) → g(proper(X))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
g(ok(X)) → ok(g(X))
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(g(X), Y)) → mark(f(X, f(g(X), Y)))
active(f(X1, X2)) → f(active(X1), X2)
active(g(X)) → g(active(X))
f(mark(X1), X2) → mark(f(X1, X2))
g(mark(X)) → mark(g(X))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(g(X)) → g(proper(X))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
g(ok(X)) → ok(g(X))
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)
ok1 > F1
mark1 > F1
F1: multiset
ok1: multiset
mark1: multiset
F(mark(X1), X2) → F(X1, X2)
active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))
active(f(X1, X2)) → f(active(X1), X2)
active(g(X)) → g(active(X))
f(mark(X1), X2) → mark(f(X1, X2))
g(mark(X)) → mark(g(X))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(g(X)) → g(proper(X))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
g(ok(X)) → ok(g(X))
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(mark(X1), X2) → F(X1, X2)
mark1 > F2
F2: [1,2]
mark1: multiset
active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))
active(f(X1, X2)) → f(active(X1), X2)
active(g(X)) → g(active(X))
f(mark(X1), X2) → mark(f(X1, X2))
g(mark(X)) → mark(g(X))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(g(X)) → g(proper(X))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
g(ok(X)) → ok(g(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
PROPER(f(X1, X2)) → PROPER(X2)
PROPER(f(X1, X2)) → PROPER(X1)
PROPER(g(X)) → PROPER(X)
active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))
active(f(X1, X2)) → f(active(X1), X2)
active(g(X)) → g(active(X))
f(mark(X1), X2) → mark(f(X1, X2))
g(mark(X)) → mark(g(X))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(g(X)) → g(proper(X))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
g(ok(X)) → ok(g(X))
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: multiset
PROPER(g(X)) → PROPER(X)
active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))
active(f(X1, X2)) → f(active(X1), X2)
active(g(X)) → g(active(X))
f(mark(X1), X2) → mark(f(X1, X2))
g(mark(X)) → mark(g(X))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(g(X)) → g(proper(X))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
g(ok(X)) → ok(g(X))
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(X)) → PROPER(X)
g1 > PROPER1
PROPER1: [1]
g1: multiset
active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))
active(f(X1, X2)) → f(active(X1), X2)
active(g(X)) → g(active(X))
f(mark(X1), X2) → mark(f(X1, X2))
g(mark(X)) → mark(g(X))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(g(X)) → g(proper(X))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
g(ok(X)) → ok(g(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
ACTIVE(g(X)) → ACTIVE(X)
ACTIVE(f(X1, X2)) → ACTIVE(X1)
active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))
active(f(X1, X2)) → f(active(X1), X2)
active(g(X)) → g(active(X))
f(mark(X1), X2) → mark(f(X1, X2))
g(mark(X)) → mark(g(X))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(g(X)) → g(proper(X))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
g(ok(X)) → ok(g(X))
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(X)) → ACTIVE(X)
trivial
g1: multiset
ACTIVE(f(X1, X2)) → ACTIVE(X1)
active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))
active(f(X1, X2)) → f(active(X1), X2)
active(g(X)) → g(active(X))
f(mark(X1), X2) → mark(f(X1, X2))
g(mark(X)) → mark(g(X))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(g(X)) → g(proper(X))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
g(ok(X)) → ok(g(X))
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)
f2 > ACTIVE1
ACTIVE1: [1]
f2: multiset
active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))
active(f(X1, X2)) → f(active(X1), X2)
active(g(X)) → g(active(X))
f(mark(X1), X2) → mark(f(X1, X2))
g(mark(X)) → mark(g(X))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(g(X)) → g(proper(X))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
g(ok(X)) → ok(g(X))
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(g(X), Y)) → mark(f(X, f(g(X), Y)))
active(f(X1, X2)) → f(active(X1), X2)
active(g(X)) → g(active(X))
f(mark(X1), X2) → mark(f(X1, X2))
g(mark(X)) → mark(g(X))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(g(X)) → g(proper(X))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
g(ok(X)) → ok(g(X))
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.
TOP(ok(X)) → TOP(active(X))
TOP1 > proper
ok1 > proper
TOP1: multiset
ok1: multiset
proper: multiset
active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))
active(f(X1, X2)) → f(active(X1), X2)
active(g(X)) → g(active(X))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(g(X)) → g(proper(X))
g(mark(X)) → mark(g(X))
g(ok(X)) → ok(g(X))
f(mark(X1), X2) → mark(f(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
TOP(mark(X)) → TOP(proper(X))
active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))
active(f(X1, X2)) → f(active(X1), X2)
active(g(X)) → g(active(X))
f(mark(X1), X2) → mark(f(X1, X2))
g(mark(X)) → mark(g(X))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(g(X)) → g(proper(X))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
g(ok(X)) → ok(g(X))
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.
TOP(mark(X)) → TOP(proper(X))
mark1 > proper1
ok > proper1
mark1: multiset
proper1: multiset
ok: multiset
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(g(X)) → g(proper(X))
g(mark(X)) → mark(g(X))
g(ok(X)) → ok(g(X))
f(mark(X1), X2) → mark(f(X1, X2))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
active(f(g(X), Y)) → mark(f(X, f(g(X), Y)))
active(f(X1, X2)) → f(active(X1), X2)
active(g(X)) → g(active(X))
f(mark(X1), X2) → mark(f(X1, X2))
g(mark(X)) → mark(g(X))
proper(f(X1, X2)) → f(proper(X1), proper(X2))
proper(g(X)) → g(proper(X))
f(ok(X1), ok(X2)) → ok(f(X1, X2))
g(ok(X)) → ok(g(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))