0 QTRS
↳1 DependencyPairsProof (⇔)
↳2 QDP
↳3 DependencyGraphProof (⇔)
↳4 AND
↳5 QDP
↳6 QDPOrderProof (⇔)
↳7 QDP
↳8 QDPOrderProof (⇔)
↳9 QDP
↳10 QDPOrderProof (⇔)
↳11 QDP
↳12 QDPOrderProof (⇔)
↳13 QDP
↳14 PisEmptyProof (⇔)
↳15 TRUE
↳16 QDP
↳17 QDPOrderProof (⇔)
↳18 QDP
↳19 QDPOrderProof (⇔)
↳20 QDP
↳21 QDPOrderProof (⇔)
↳22 QDP
↳23 QDPOrderProof (⇔)
↳24 QDP
↳25 PisEmptyProof (⇔)
↳26 TRUE
↳27 QDP
↳28 QDPOrderProof (⇔)
↳29 QDP
↳30 QDPOrderProof (⇔)
↳31 QDP
↳32 PisEmptyProof (⇔)
↳33 TRUE
↳34 QDP
↳35 QDPOrderProof (⇔)
↳36 QDP
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
mark(h(X)) → active(h(mark(X)))
mark(g(X1, X2)) → active(g(mark(X1), X2))
mark(a) → active(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(b) → active(b)
h(mark(X)) → h(X)
h(active(X)) → h(X)
g(mark(X1), X2) → g(X1, X2)
g(X1, mark(X2)) → g(X1, X2)
g(active(X1), X2) → g(X1, X2)
g(X1, active(X2)) → g(X1, X2)
f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)
f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)
ACTIVE(h(X)) → MARK(g(X, X))
ACTIVE(h(X)) → G(X, X)
ACTIVE(g(a, X)) → MARK(f(b, X))
ACTIVE(g(a, X)) → F(b, X)
ACTIVE(f(X, X)) → MARK(h(a))
ACTIVE(f(X, X)) → H(a)
ACTIVE(a) → MARK(b)
MARK(h(X)) → ACTIVE(h(mark(X)))
MARK(h(X)) → H(mark(X))
MARK(h(X)) → MARK(X)
MARK(g(X1, X2)) → ACTIVE(g(mark(X1), X2))
MARK(g(X1, X2)) → G(mark(X1), X2)
MARK(g(X1, X2)) → MARK(X1)
MARK(a) → ACTIVE(a)
MARK(f(X1, X2)) → ACTIVE(f(mark(X1), X2))
MARK(f(X1, X2)) → F(mark(X1), X2)
MARK(f(X1, X2)) → MARK(X1)
MARK(b) → ACTIVE(b)
H(mark(X)) → H(X)
H(active(X)) → H(X)
G(mark(X1), X2) → G(X1, X2)
G(X1, mark(X2)) → G(X1, X2)
G(active(X1), X2) → G(X1, X2)
G(X1, active(X2)) → G(X1, X2)
F(mark(X1), X2) → F(X1, X2)
F(X1, mark(X2)) → F(X1, X2)
F(active(X1), X2) → F(X1, X2)
F(X1, active(X2)) → F(X1, X2)
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
mark(h(X)) → active(h(mark(X)))
mark(g(X1, X2)) → active(g(mark(X1), X2))
mark(a) → active(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(b) → active(b)
h(mark(X)) → h(X)
h(active(X)) → h(X)
g(mark(X1), X2) → g(X1, X2)
g(X1, mark(X2)) → g(X1, X2)
g(active(X1), X2) → g(X1, X2)
g(X1, active(X2)) → g(X1, X2)
f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)
f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)
F(X1, mark(X2)) → F(X1, X2)
F(mark(X1), X2) → F(X1, X2)
F(active(X1), X2) → F(X1, X2)
F(X1, active(X2)) → F(X1, X2)
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
mark(h(X)) → active(h(mark(X)))
mark(g(X1, X2)) → active(g(mark(X1), X2))
mark(a) → active(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(b) → active(b)
h(mark(X)) → h(X)
h(active(X)) → h(X)
g(mark(X1), X2) → g(X1, X2)
g(X1, mark(X2)) → g(X1, X2)
g(active(X1), X2) → g(X1, X2)
g(X1, active(X2)) → g(X1, X2)
f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)
f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
F(X1, active(X2)) → F(X1, X2)
trivial
active1: multiset
F(X1, mark(X2)) → F(X1, X2)
F(mark(X1), X2) → F(X1, X2)
F(active(X1), X2) → F(X1, X2)
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
mark(h(X)) → active(h(mark(X)))
mark(g(X1, X2)) → active(g(mark(X1), X2))
mark(a) → active(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(b) → active(b)
h(mark(X)) → h(X)
h(active(X)) → h(X)
g(mark(X1), X2) → g(X1, X2)
g(X1, mark(X2)) → g(X1, X2)
g(active(X1), X2) → g(X1, X2)
g(X1, active(X2)) → g(X1, X2)
f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)
f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
F(X1, mark(X2)) → F(X1, X2)
trivial
active: multiset
mark1: [1]
F1: [1]
F(mark(X1), X2) → F(X1, X2)
F(active(X1), X2) → F(X1, X2)
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
mark(h(X)) → active(h(mark(X)))
mark(g(X1, X2)) → active(g(mark(X1), X2))
mark(a) → active(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(b) → active(b)
h(mark(X)) → h(X)
h(active(X)) → h(X)
g(mark(X1), X2) → g(X1, X2)
g(X1, mark(X2)) → g(X1, X2)
g(active(X1), X2) → g(X1, X2)
g(X1, active(X2)) → g(X1, X2)
f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)
f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)
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)
[F2, mark1]
mark1: multiset
F2: [2,1]
F(active(X1), X2) → F(X1, X2)
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
mark(h(X)) → active(h(mark(X)))
mark(g(X1, X2)) → active(g(mark(X1), X2))
mark(a) → active(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(b) → active(b)
h(mark(X)) → h(X)
h(active(X)) → h(X)
g(mark(X1), X2) → g(X1, X2)
g(X1, mark(X2)) → g(X1, X2)
g(active(X1), X2) → g(X1, X2)
g(X1, active(X2)) → g(X1, X2)
f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)
f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
F(active(X1), X2) → F(X1, X2)
trivial
active1: [1]
F2: [1,2]
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
mark(h(X)) → active(h(mark(X)))
mark(g(X1, X2)) → active(g(mark(X1), X2))
mark(a) → active(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(b) → active(b)
h(mark(X)) → h(X)
h(active(X)) → h(X)
g(mark(X1), X2) → g(X1, X2)
g(X1, mark(X2)) → g(X1, X2)
g(active(X1), X2) → g(X1, X2)
g(X1, active(X2)) → g(X1, X2)
f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)
f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)
G(X1, mark(X2)) → G(X1, X2)
G(mark(X1), X2) → G(X1, X2)
G(active(X1), X2) → G(X1, X2)
G(X1, active(X2)) → G(X1, X2)
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
mark(h(X)) → active(h(mark(X)))
mark(g(X1, X2)) → active(g(mark(X1), X2))
mark(a) → active(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(b) → active(b)
h(mark(X)) → h(X)
h(active(X)) → h(X)
g(mark(X1), X2) → g(X1, X2)
g(X1, mark(X2)) → g(X1, X2)
g(active(X1), X2) → g(X1, X2)
g(X1, active(X2)) → g(X1, X2)
f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)
f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
G(X1, active(X2)) → G(X1, X2)
trivial
active1: multiset
G(X1, mark(X2)) → G(X1, X2)
G(mark(X1), X2) → G(X1, X2)
G(active(X1), X2) → G(X1, X2)
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
mark(h(X)) → active(h(mark(X)))
mark(g(X1, X2)) → active(g(mark(X1), X2))
mark(a) → active(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(b) → active(b)
h(mark(X)) → h(X)
h(active(X)) → h(X)
g(mark(X1), X2) → g(X1, X2)
g(X1, mark(X2)) → g(X1, X2)
g(active(X1), X2) → g(X1, X2)
g(X1, active(X2)) → g(X1, X2)
f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)
f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
G(X1, mark(X2)) → G(X1, X2)
trivial
active: multiset
mark1: [1]
G1: [1]
G(mark(X1), X2) → G(X1, X2)
G(active(X1), X2) → G(X1, X2)
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
mark(h(X)) → active(h(mark(X)))
mark(g(X1, X2)) → active(g(mark(X1), X2))
mark(a) → active(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(b) → active(b)
h(mark(X)) → h(X)
h(active(X)) → h(X)
g(mark(X1), X2) → g(X1, X2)
g(X1, mark(X2)) → g(X1, X2)
g(active(X1), X2) → g(X1, X2)
g(X1, active(X2)) → g(X1, X2)
f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)
f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
G(mark(X1), X2) → G(X1, X2)
[G2, mark1]
mark1: multiset
G2: [2,1]
G(active(X1), X2) → G(X1, X2)
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
mark(h(X)) → active(h(mark(X)))
mark(g(X1, X2)) → active(g(mark(X1), X2))
mark(a) → active(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(b) → active(b)
h(mark(X)) → h(X)
h(active(X)) → h(X)
g(mark(X1), X2) → g(X1, X2)
g(X1, mark(X2)) → g(X1, X2)
g(active(X1), X2) → g(X1, X2)
g(X1, active(X2)) → g(X1, X2)
f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)
f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
G(active(X1), X2) → G(X1, X2)
trivial
active1: [1]
G2: [1,2]
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
mark(h(X)) → active(h(mark(X)))
mark(g(X1, X2)) → active(g(mark(X1), X2))
mark(a) → active(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(b) → active(b)
h(mark(X)) → h(X)
h(active(X)) → h(X)
g(mark(X1), X2) → g(X1, X2)
g(X1, mark(X2)) → g(X1, X2)
g(active(X1), X2) → g(X1, X2)
g(X1, active(X2)) → g(X1, X2)
f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)
f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)
H(active(X)) → H(X)
H(mark(X)) → H(X)
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
mark(h(X)) → active(h(mark(X)))
mark(g(X1, X2)) → active(g(mark(X1), X2))
mark(a) → active(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(b) → active(b)
h(mark(X)) → h(X)
h(active(X)) → h(X)
g(mark(X1), X2) → g(X1, X2)
g(X1, mark(X2)) → g(X1, X2)
g(active(X1), X2) → g(X1, X2)
g(X1, active(X2)) → g(X1, X2)
f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)
f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)
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]
active1: multiset
H1: [1]
H(mark(X)) → H(X)
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
mark(h(X)) → active(h(mark(X)))
mark(g(X1, X2)) → active(g(mark(X1), X2))
mark(a) → active(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(b) → active(b)
h(mark(X)) → h(X)
h(active(X)) → h(X)
g(mark(X1), X2) → g(X1, X2)
g(X1, mark(X2)) → g(X1, X2)
g(active(X1), X2) → g(X1, X2)
g(X1, active(X2)) → g(X1, X2)
f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)
f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)
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(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
mark(h(X)) → active(h(mark(X)))
mark(g(X1, X2)) → active(g(mark(X1), X2))
mark(a) → active(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(b) → active(b)
h(mark(X)) → h(X)
h(active(X)) → h(X)
g(mark(X1), X2) → g(X1, X2)
g(X1, mark(X2)) → g(X1, X2)
g(active(X1), X2) → g(X1, X2)
g(X1, active(X2)) → g(X1, X2)
f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)
f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)
MARK(h(X)) → ACTIVE(h(mark(X)))
ACTIVE(h(X)) → MARK(g(X, X))
MARK(h(X)) → MARK(X)
MARK(g(X1, X2)) → ACTIVE(g(mark(X1), X2))
ACTIVE(g(a, X)) → MARK(f(b, X))
MARK(g(X1, X2)) → MARK(X1)
MARK(f(X1, X2)) → ACTIVE(f(mark(X1), X2))
ACTIVE(f(X, X)) → MARK(h(a))
MARK(f(X1, X2)) → MARK(X1)
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
mark(h(X)) → active(h(mark(X)))
mark(g(X1, X2)) → active(g(mark(X1), X2))
mark(a) → active(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(b) → active(b)
h(mark(X)) → h(X)
h(active(X)) → h(X)
g(mark(X1), X2) → g(X1, X2)
g(X1, mark(X2)) → g(X1, X2)
g(active(X1), X2) → g(X1, X2)
g(X1, active(X2)) → g(X1, X2)
f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)
f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MARK(h(X)) → MARK(X)
MARK(g(X1, X2)) → MARK(X1)
MARK(f(X1, X2)) → MARK(X1)
[MARK1, ACTIVE1] > [h1, g1, f1] > [a, b]
f1: [1]
a: multiset
MARK1: [1]
g1: [1]
h1: [1]
b: multiset
ACTIVE1: [1]
mark(a) → active(a)
mark(b) → active(b)
active(a) → mark(b)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(h(X)) → active(h(mark(X)))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(h(X)) → mark(g(X, X))
mark(g(X1, X2)) → active(g(mark(X1), X2))
g(X1, mark(X2)) → g(X1, X2)
g(active(X1), X2) → g(X1, X2)
g(X1, active(X2)) → g(X1, X2)
g(mark(X1), X2) → g(X1, X2)
h(active(X)) → h(X)
h(mark(X)) → h(X)
f(X1, active(X2)) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)
f(mark(X1), X2) → f(X1, X2)
f(active(X1), X2) → f(X1, X2)
MARK(h(X)) → ACTIVE(h(mark(X)))
ACTIVE(h(X)) → MARK(g(X, X))
MARK(g(X1, X2)) → ACTIVE(g(mark(X1), X2))
ACTIVE(g(a, X)) → MARK(f(b, X))
MARK(f(X1, X2)) → ACTIVE(f(mark(X1), X2))
ACTIVE(f(X, X)) → MARK(h(a))
active(h(X)) → mark(g(X, X))
active(g(a, X)) → mark(f(b, X))
active(f(X, X)) → mark(h(a))
active(a) → mark(b)
mark(h(X)) → active(h(mark(X)))
mark(g(X1, X2)) → active(g(mark(X1), X2))
mark(a) → active(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(b) → active(b)
h(mark(X)) → h(X)
h(active(X)) → h(X)
g(mark(X1), X2) → g(X1, X2)
g(X1, mark(X2)) → g(X1, X2)
g(active(X1), X2) → g(X1, X2)
g(X1, active(X2)) → g(X1, X2)
f(mark(X1), X2) → f(X1, X2)
f(X1, mark(X2)) → f(X1, X2)
f(active(X1), X2) → f(X1, X2)
f(X1, active(X2)) → f(X1, X2)