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 QDPOrderProof (⇔)
↳32 QDP
↳33 QDPOrderProof (⇔)
↳34 QDP
↳35 QDPOrderProof (⇔)
↳36 QDP
↳37 DependencyGraphProof (⇔)
↳38 TRUE
active(f(X)) → mark(g(h(f(X))))
mark(f(X)) → active(f(mark(X)))
mark(g(X)) → active(g(X))
mark(h(X)) → active(h(mark(X)))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
h(mark(X)) → h(X)
h(active(X)) → h(X)
ACTIVE(f(X)) → MARK(g(h(f(X))))
ACTIVE(f(X)) → G(h(f(X)))
ACTIVE(f(X)) → H(f(X))
MARK(f(X)) → ACTIVE(f(mark(X)))
MARK(f(X)) → F(mark(X))
MARK(f(X)) → MARK(X)
MARK(g(X)) → ACTIVE(g(X))
MARK(h(X)) → ACTIVE(h(mark(X)))
MARK(h(X)) → H(mark(X))
MARK(h(X)) → MARK(X)
F(mark(X)) → F(X)
F(active(X)) → F(X)
G(mark(X)) → G(X)
G(active(X)) → G(X)
H(mark(X)) → H(X)
H(active(X)) → H(X)
active(f(X)) → mark(g(h(f(X))))
mark(f(X)) → active(f(mark(X)))
mark(g(X)) → active(g(X))
mark(h(X)) → active(h(mark(X)))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
h(mark(X)) → h(X)
h(active(X)) → h(X)
H(active(X)) → H(X)
H(mark(X)) → H(X)
active(f(X)) → mark(g(h(f(X))))
mark(f(X)) → active(f(mark(X)))
mark(g(X)) → active(g(X))
mark(h(X)) → active(h(mark(X)))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
h(mark(X)) → h(X)
h(active(X)) → h(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
H(active(X)) → H(X)
[H1, active1]
H1: [1]
active1: multiset
H(mark(X)) → H(X)
active(f(X)) → mark(g(h(f(X))))
mark(f(X)) → active(f(mark(X)))
mark(g(X)) → active(g(X))
mark(h(X)) → active(h(mark(X)))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
h(mark(X)) → h(X)
h(active(X)) → h(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)
mark1 > H1
H1: multiset
mark1: multiset
active(f(X)) → mark(g(h(f(X))))
mark(f(X)) → active(f(mark(X)))
mark(g(X)) → active(g(X))
mark(h(X)) → active(h(mark(X)))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
h(mark(X)) → h(X)
h(active(X)) → h(X)
G(active(X)) → G(X)
G(mark(X)) → G(X)
active(f(X)) → mark(g(h(f(X))))
mark(f(X)) → active(f(mark(X)))
mark(g(X)) → active(g(X))
mark(h(X)) → active(h(mark(X)))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
h(mark(X)) → h(X)
h(active(X)) → h(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)
[G1, active1]
G1: [1]
active1: multiset
G(mark(X)) → G(X)
active(f(X)) → mark(g(h(f(X))))
mark(f(X)) → active(f(mark(X)))
mark(g(X)) → active(g(X))
mark(h(X)) → active(h(mark(X)))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
h(mark(X)) → h(X)
h(active(X)) → h(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: multiset
mark1: multiset
active(f(X)) → mark(g(h(f(X))))
mark(f(X)) → active(f(mark(X)))
mark(g(X)) → active(g(X))
mark(h(X)) → active(h(mark(X)))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
h(mark(X)) → h(X)
h(active(X)) → h(X)
F(active(X)) → F(X)
F(mark(X)) → F(X)
active(f(X)) → mark(g(h(f(X))))
mark(f(X)) → active(f(mark(X)))
mark(g(X)) → active(g(X))
mark(h(X)) → active(h(mark(X)))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
h(mark(X)) → h(X)
h(active(X)) → h(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)
[F1, active1]
F1: [1]
active1: multiset
F(mark(X)) → F(X)
active(f(X)) → mark(g(h(f(X))))
mark(f(X)) → active(f(mark(X)))
mark(g(X)) → active(g(X))
mark(h(X)) → active(h(mark(X)))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
h(mark(X)) → h(X)
h(active(X)) → h(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
F(mark(X)) → F(X)
mark1 > F1
F1: multiset
mark1: multiset
active(f(X)) → mark(g(h(f(X))))
mark(f(X)) → active(f(mark(X)))
mark(g(X)) → active(g(X))
mark(h(X)) → active(h(mark(X)))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
h(mark(X)) → h(X)
h(active(X)) → h(X)
MARK(f(X)) → ACTIVE(f(mark(X)))
ACTIVE(f(X)) → MARK(g(h(f(X))))
MARK(f(X)) → MARK(X)
MARK(g(X)) → ACTIVE(g(X))
MARK(h(X)) → ACTIVE(h(mark(X)))
MARK(h(X)) → MARK(X)
active(f(X)) → mark(g(h(f(X))))
mark(f(X)) → active(f(mark(X)))
mark(g(X)) → active(g(X))
mark(h(X)) → active(h(mark(X)))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
h(mark(X)) → h(X)
h(active(X)) → h(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(h(X)) → ACTIVE(h(mark(X)))
[MARK, f, g] > [mark, h, active]
MARK: multiset
f: multiset
mark: multiset
g: multiset
h: multiset
active: []
f(active(X)) → f(X)
f(mark(X)) → f(X)
h(active(X)) → h(X)
h(mark(X)) → h(X)
g(active(X)) → g(X)
g(mark(X)) → g(X)
MARK(f(X)) → ACTIVE(f(mark(X)))
ACTIVE(f(X)) → MARK(g(h(f(X))))
MARK(f(X)) → MARK(X)
MARK(g(X)) → ACTIVE(g(X))
MARK(h(X)) → MARK(X)
active(f(X)) → mark(g(h(f(X))))
mark(f(X)) → active(f(mark(X)))
mark(g(X)) → active(g(X))
mark(h(X)) → active(h(mark(X)))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
h(mark(X)) → h(X)
h(active(X)) → h(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(g(X)) → ACTIVE(g(X))
[MARK, f, mark, h] > [g, active]
MARK: []
f: []
mark: multiset
g: multiset
h: multiset
active: multiset
f(active(X)) → f(X)
f(mark(X)) → f(X)
g(active(X)) → g(X)
g(mark(X)) → g(X)
MARK(f(X)) → ACTIVE(f(mark(X)))
ACTIVE(f(X)) → MARK(g(h(f(X))))
MARK(f(X)) → MARK(X)
MARK(h(X)) → MARK(X)
active(f(X)) → mark(g(h(f(X))))
mark(f(X)) → active(f(mark(X)))
mark(g(X)) → active(g(X))
mark(h(X)) → active(h(mark(X)))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
h(mark(X)) → h(X)
h(active(X)) → h(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)
[MARK1, f1, mark1] > g
MARK1: [1]
f1: [1]
mark1: [1]
g: []
mark(f(X)) → active(f(mark(X)))
active(f(X)) → mark(g(h(f(X))))
mark(g(X)) → active(g(X))
mark(h(X)) → active(h(mark(X)))
f(active(X)) → f(X)
f(mark(X)) → f(X)
h(active(X)) → h(X)
h(mark(X)) → h(X)
g(active(X)) → g(X)
g(mark(X)) → g(X)
MARK(f(X)) → ACTIVE(f(mark(X)))
ACTIVE(f(X)) → MARK(g(h(f(X))))
MARK(h(X)) → MARK(X)
active(f(X)) → mark(g(h(f(X))))
mark(f(X)) → active(f(mark(X)))
mark(g(X)) → active(g(X))
mark(h(X)) → active(h(mark(X)))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
h(mark(X)) → h(X)
h(active(X)) → h(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(h(X)) → MARK(X)
[MARK1, ACTIVE1] > [f, g] > [h1, active]
mark > [f, g] > [h1, active]
MARK1: [1]
f: multiset
ACTIVE1: [1]
mark: multiset
g: multiset
h1: multiset
active: []
f(active(X)) → f(X)
f(mark(X)) → f(X)
g(active(X)) → g(X)
g(mark(X)) → g(X)
MARK(f(X)) → ACTIVE(f(mark(X)))
ACTIVE(f(X)) → MARK(g(h(f(X))))
active(f(X)) → mark(g(h(f(X))))
mark(f(X)) → active(f(mark(X)))
mark(g(X)) → active(g(X))
mark(h(X)) → active(h(mark(X)))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
h(mark(X)) → h(X)
h(active(X)) → h(X)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
ACTIVE(f(X)) → MARK(g(h(f(X))))
[MARK1, ACTIVE1] > f > h
MARK1: [1]
f: multiset
ACTIVE1: [1]
h: multiset
f(active(X)) → f(X)
f(mark(X)) → f(X)
h(active(X)) → h(X)
h(mark(X)) → h(X)
g(active(X)) → g(X)
g(mark(X)) → g(X)
MARK(f(X)) → ACTIVE(f(mark(X)))
active(f(X)) → mark(g(h(f(X))))
mark(f(X)) → active(f(mark(X)))
mark(g(X)) → active(g(X))
mark(h(X)) → active(h(mark(X)))
f(mark(X)) → f(X)
f(active(X)) → f(X)
g(mark(X)) → g(X)
g(active(X)) → g(X)
h(mark(X)) → h(X)
h(active(X)) → h(X)