YES We show the termination of the TRS R: active(f(f(a()))) -> mark(f(g(f(a())))) mark(f(X)) -> active(f(X)) mark(a()) -> active(a()) mark(g(X)) -> active(g(mark(X))) f(mark(X)) -> f(X) f(active(X)) -> f(X) g(mark(X)) -> g(X) g(active(X)) -> g(X) -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: active#(f(f(a()))) -> mark#(f(g(f(a())))) p2: active#(f(f(a()))) -> f#(g(f(a()))) p3: active#(f(f(a()))) -> g#(f(a())) p4: mark#(f(X)) -> active#(f(X)) p5: mark#(a()) -> active#(a()) p6: mark#(g(X)) -> active#(g(mark(X))) p7: mark#(g(X)) -> g#(mark(X)) p8: mark#(g(X)) -> mark#(X) p9: f#(mark(X)) -> f#(X) p10: f#(active(X)) -> f#(X) p11: g#(mark(X)) -> g#(X) p12: g#(active(X)) -> g#(X) and R consists of: r1: active(f(f(a()))) -> mark(f(g(f(a())))) r2: mark(f(X)) -> active(f(X)) r3: mark(a()) -> active(a()) r4: mark(g(X)) -> active(g(mark(X))) r5: f(mark(X)) -> f(X) r6: f(active(X)) -> f(X) r7: g(mark(X)) -> g(X) r8: g(active(X)) -> g(X) The estimated dependency graph contains the following SCCs: {p8} {p1, p4} {p11, p12} {p9, p10} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(g(X)) -> mark#(X) and R consists of: r1: active(f(f(a()))) -> mark(f(g(f(a())))) r2: mark(f(X)) -> active(f(X)) r3: mark(a()) -> active(a()) r4: mark(g(X)) -> active(g(mark(X))) r5: f(mark(X)) -> f(X) r6: f(active(X)) -> f(X) r7: g(mark(X)) -> g(X) r8: g(active(X)) -> g(X) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: mark#_A(x1) = max{2, x1 + 1} g_A(x1) = max{1, x1} precedence: mark# = g partial status: pi(mark#) = [1] pi(g) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 2 g_A(x1) = x1 + 1 precedence: mark# = g partial status: pi(mark#) = [1] pi(g) = [1] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: active#(f(f(a()))) -> mark#(f(g(f(a())))) p2: mark#(f(X)) -> active#(f(X)) and R consists of: r1: active(f(f(a()))) -> mark(f(g(f(a())))) r2: mark(f(X)) -> active(f(X)) r3: mark(a()) -> active(a()) r4: mark(g(X)) -> active(g(mark(X))) r5: f(mark(X)) -> f(X) r6: f(active(X)) -> f(X) r7: g(mark(X)) -> g(X) r8: g(active(X)) -> g(X) The set of usable rules consists of r5, r6 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: active#_A(x1) = x1 + 7 f_A(x1) = x1 + 13 a_A = 3 mark#_A(x1) = x1 + 8 g_A(x1) = max{15, x1 - 3} mark_A(x1) = x1 + 1 active_A(x1) = x1 + 1 precedence: active# = f = a = mark# = g = mark = active partial status: pi(active#) = [] pi(f) = [] pi(a) = [] pi(mark#) = [] pi(g) = [] pi(mark) = [] pi(active) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: active#_A(x1) = max{17, x1 + 9} f_A(x1) = max{16, x1 + 5} a_A = 24 mark#_A(x1) = max{15, x1 + 10} g_A(x1) = 18 mark_A(x1) = x1 active_A(x1) = x1 precedence: active# = f = a = mark# = g = mark = active partial status: pi(active#) = [1] pi(f) = [1] pi(a) = [] pi(mark#) = [1] pi(g) = [] pi(mark) = [1] pi(active) = [1] The next rules are strictly ordered: p1, p2 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: g#(mark(X)) -> g#(X) p2: g#(active(X)) -> g#(X) and R consists of: r1: active(f(f(a()))) -> mark(f(g(f(a())))) r2: mark(f(X)) -> active(f(X)) r3: mark(a()) -> active(a()) r4: mark(g(X)) -> active(g(mark(X))) r5: f(mark(X)) -> f(X) r6: f(active(X)) -> f(X) r7: g(mark(X)) -> g(X) r8: g(active(X)) -> g(X) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: g#_A(x1) = x1 + 2 mark_A(x1) = x1 active_A(x1) = x1 + 2 precedence: mark > active > g# partial status: pi(g#) = [1] pi(mark) = [1] pi(active) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: g#_A(x1) = x1 + 1 mark_A(x1) = x1 active_A(x1) = x1 precedence: g# = mark = active partial status: pi(g#) = [1] pi(mark) = [1] pi(active) = [1] The next rules are strictly ordered: p1, p2 We remove them from the problem. Then no dependency pair remains. -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: f#(mark(X)) -> f#(X) p2: f#(active(X)) -> f#(X) and R consists of: r1: active(f(f(a()))) -> mark(f(g(f(a())))) r2: mark(f(X)) -> active(f(X)) r3: mark(a()) -> active(a()) r4: mark(g(X)) -> active(g(mark(X))) r5: f(mark(X)) -> f(X) r6: f(active(X)) -> f(X) r7: g(mark(X)) -> g(X) r8: g(active(X)) -> g(X) The set of usable rules consists of (no rules) Take the monotone reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: f#_A(x1) = x1 + 2 mark_A(x1) = x1 active_A(x1) = x1 + 2 precedence: mark > active > f# partial status: pi(f#) = [1] pi(mark) = [1] pi(active) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: f#_A(x1) = x1 + 1 mark_A(x1) = x1 active_A(x1) = x1 precedence: f# = mark = active partial status: pi(f#) = [1] pi(mark) = [1] pi(active) = [1] The next rules are strictly ordered: p1, p2 We remove them from the problem. Then no dependency pair remains.