YES
0 QTRS
↳1 DependencyPairsProof (⇔, 0 ms)
↳2 QDP
↳3 DependencyGraphProof (⇔, 0 ms)
↳4 AND
↳5 QDP
↳6 UsableRulesProof (⇔, 0 ms)
↳7 QDP
↳8 QDPSizeChangeProof (⇔, 0 ms)
↳9 YES
↳10 QDP
↳11 MRRProof (⇔, 0 ms)
↳12 QDP
↳13 TransformationProof (⇔, 0 ms)
↳14 QDP
↳15 UsableRulesProof (⇔, 0 ms)
↳16 QDP
↳17 TransformationProof (⇔, 0 ms)
↳18 QDP
↳19 DependencyGraphProof (⇔, 0 ms)
↳20 QDP
↳21 UsableRulesProof (⇔, 0 ms)
↳22 QDP
↳23 TransformationProof (⇔, 0 ms)
↳24 QDP
↳25 DependencyGraphProof (⇔, 0 ms)
↳26 TRUE
active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(a) → active(a)
mark(b) → active(b)
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(f(X, X)) → MARK(f(a, b))
ACTIVE(f(X, X)) → F(a, b)
ACTIVE(b) → MARK(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(a) → ACTIVE(a)
MARK(b) → ACTIVE(b)
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(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(a) → active(a)
mark(b) → active(b)
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(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(a) → active(a)
mark(b) → active(b)
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)
From the DPs we obtained the following set of size-change graphs:
MARK(f(X1, X2)) → ACTIVE(f(mark(X1), X2))
ACTIVE(f(X, X)) → MARK(f(a, b))
MARK(f(X1, X2)) → MARK(X1)
active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(a) → active(a)
mark(b) → active(b)
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(f(X1, X2)) → MARK(X1)
POL(ACTIVE(x1)) = x1
POL(MARK(x1)) = x1
POL(a) = 0
POL(active(x1)) = x1
POL(b) = 0
POL(f(x1, x2)) = 1 + 2·x1 + x2
POL(mark(x1)) = x1
MARK(f(X1, X2)) → ACTIVE(f(mark(X1), X2))
ACTIVE(f(X, X)) → MARK(f(a, b))
active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(a) → active(a)
mark(b) → active(b)
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(f(a, b)) → ACTIVE(f(mark(a), b)) → MARK(f(a, b)) → ACTIVE(f(mark(a), b))
ACTIVE(f(X, X)) → MARK(f(a, b))
MARK(f(a, b)) → ACTIVE(f(mark(a), b))
active(f(X, X)) → mark(f(a, b))
active(b) → mark(a)
mark(f(X1, X2)) → active(f(mark(X1), X2))
mark(a) → active(a)
mark(b) → active(b)
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(f(X, X)) → MARK(f(a, b))
MARK(f(a, b)) → ACTIVE(f(mark(a), b))
mark(a) → active(a)
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)
MARK(f(a, b)) → ACTIVE(f(a, b)) → MARK(f(a, b)) → ACTIVE(f(a, b))
MARK(f(a, b)) → ACTIVE(f(active(a), b)) → MARK(f(a, b)) → ACTIVE(f(active(a), b))
ACTIVE(f(X, X)) → MARK(f(a, b))
MARK(f(a, b)) → ACTIVE(f(a, b))
MARK(f(a, b)) → ACTIVE(f(active(a), b))
mark(a) → active(a)
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)
MARK(f(a, b)) → ACTIVE(f(active(a), b))
ACTIVE(f(X, X)) → MARK(f(a, b))
mark(a) → active(a)
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)
MARK(f(a, b)) → ACTIVE(f(active(a), b))
ACTIVE(f(X, X)) → MARK(f(a, b))
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(f(a, b)) → ACTIVE(f(a, b)) → MARK(f(a, b)) → ACTIVE(f(a, b))
ACTIVE(f(X, X)) → MARK(f(a, b))
MARK(f(a, b)) → ACTIVE(f(a, b))
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)