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
active(f(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
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(f(a))) → MARK(f(g(f(a))))
ACTIVE(f(f(a))) → F(g(f(a)))
ACTIVE(f(f(a))) → G(f(a))
MARK(f(X)) → ACTIVE(f(mark(X)))
MARK(f(X)) → F(mark(X))
MARK(f(X)) → MARK(X)
MARK(a) → ACTIVE(a)
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(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
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(f(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
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)
G1 > [f1, g]
a > mark1 > active1 > [f1, g]
active(f(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
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(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
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(f(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
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)
F1 > [f1, g]
a > mark1 > active1 > [f1, g]
active(f(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
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(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
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(f(X)) → ACTIVE(f(mark(X)))
ACTIVE(f(f(a))) → MARK(f(g(f(a))))
MARK(f(X)) → MARK(X)
MARK(g(X)) → ACTIVE(g(X))
active(f(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
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(mark(X)))
ACTIVE(f(f(a))) → MARK(f(g(f(a))))
MARK(g(X)) → ACTIVE(g(X))
a > [MARK1, g]
active(f(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
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(f(X)) → MARK(X)
active(f(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
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)) → MARK(X)
a > f1
active(f(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
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(f(a))) → mark(f(g(f(a))))
mark(f(X)) → active(f(mark(X)))
mark(a) → active(a)
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)