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 DependencyGraphProof (⇔)
↳21 TRUE
active(c) → mark(f(g(c)))
active(f(g(X))) → mark(g(X))
mark(c) → active(c)
mark(f(X)) → active(f(X))
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
ACTIVE(c) → MARK(f(g(c)))
ACTIVE(c) → F(g(c))
ACTIVE(c) → G(c)
ACTIVE(f(g(X))) → MARK(g(X))
MARK(c) → ACTIVE(c)
MARK(f(X)) → ACTIVE(f(X))
MARK(g(X)) → ACTIVE(g(X))
F(mark(X)) → F(X)
F(active(X)) → F(X)
G(mark(X)) → G(X)
G(active(X)) → G(X)
active(c) → mark(f(g(c)))
active(f(g(X))) → mark(g(X))
mark(c) → active(c)
mark(f(X)) → active(f(X))
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
G(active(X)) → G(X)
G(mark(X)) → G(X)
active(c) → mark(f(g(c)))
active(f(g(X))) → mark(g(X))
mark(c) → active(c)
mark(f(X)) → active(f(X))
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
G(active(X)) → G(X)
G(mark(X)) → G(X)
[active1, mark1] > c
active1: multiset
mark1: multiset
c: multiset
active(c) → mark(f(g(c)))
active(f(g(X))) → mark(g(X))
mark(c) → active(c)
mark(f(X)) → active(f(X))
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
active(c) → mark(f(g(c)))
active(f(g(X))) → mark(g(X))
mark(c) → active(c)
mark(f(X)) → active(f(X))
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
F(active(X)) → F(X)
F(mark(X)) → F(X)
active(c) → mark(f(g(c)))
active(f(g(X))) → mark(g(X))
mark(c) → active(c)
mark(f(X)) → active(f(X))
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
F(active(X)) → F(X)
F(mark(X)) → F(X)
[active1, mark1] > c
active1: multiset
mark1: multiset
c: multiset
active(c) → mark(f(g(c)))
active(f(g(X))) → mark(g(X))
mark(c) → active(c)
mark(f(X)) → active(f(X))
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
active(c) → mark(f(g(c)))
active(f(g(X))) → mark(g(X))
mark(c) → active(c)
mark(f(X)) → active(f(X))
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
ACTIVE(f(g(X))) → MARK(g(X))
MARK(f(X)) → ACTIVE(f(X))
MARK(g(X)) → ACTIVE(g(X))
active(c) → mark(f(g(c)))
active(f(g(X))) → mark(g(X))
mark(c) → active(c)
mark(f(X)) → active(f(X))
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(f(X)) → ACTIVE(f(X))
c > f1 > mark1 > [ACTIVE, g, active1]
ACTIVE: multiset
f1: [1]
g: multiset
active1: multiset
c: multiset
mark1: multiset
active(c) → mark(f(g(c)))
active(f(g(X))) → mark(g(X))
mark(c) → active(c)
mark(f(X)) → active(f(X))
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
ACTIVE(f(g(X))) → MARK(g(X))
MARK(g(X)) → ACTIVE(g(X))
active(c) → mark(f(g(c)))
active(f(g(X))) → mark(g(X))
mark(c) → active(c)
mark(f(X)) → active(f(X))
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACTIVE(f(g(X))) → MARK(g(X))
c > f1 > [g, MARK] > [active1, mark1]
f1: multiset
g: multiset
MARK: multiset
active1: [1]
c: multiset
mark1: [1]
active(c) → mark(f(g(c)))
active(f(g(X))) → mark(g(X))
mark(c) → active(c)
mark(f(X)) → active(f(X))
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
MARK(g(X)) → ACTIVE(g(X))
active(c) → mark(f(g(c)))
active(f(g(X))) → mark(g(X))
mark(c) → active(c)
mark(f(X)) → active(f(X))
mark(g(X)) → active(g(X))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)