YES We show the termination of the TRS R: active(f(f(a()))) -> mark(c(f(g(f(a()))))) mark(f(X)) -> active(f(mark(X))) mark(a()) -> active(a()) mark(c(X)) -> active(c(X)) mark(g(X)) -> active(g(mark(X))) f(mark(X)) -> f(X) f(active(X)) -> f(X) c(mark(X)) -> c(X) c(active(X)) -> c(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#(c(f(g(f(a()))))) p2: active#(f(f(a()))) -> c#(f(g(f(a())))) p3: active#(f(f(a()))) -> f#(g(f(a()))) p4: active#(f(f(a()))) -> g#(f(a())) p5: mark#(f(X)) -> active#(f(mark(X))) p6: mark#(f(X)) -> f#(mark(X)) p7: mark#(f(X)) -> mark#(X) p8: mark#(a()) -> active#(a()) p9: mark#(c(X)) -> active#(c(X)) p10: mark#(g(X)) -> active#(g(mark(X))) p11: mark#(g(X)) -> g#(mark(X)) p12: mark#(g(X)) -> mark#(X) p13: f#(mark(X)) -> f#(X) p14: f#(active(X)) -> f#(X) p15: c#(mark(X)) -> c#(X) p16: c#(active(X)) -> c#(X) p17: g#(mark(X)) -> g#(X) p18: g#(active(X)) -> g#(X) and R consists of: r1: active(f(f(a()))) -> mark(c(f(g(f(a()))))) r2: mark(f(X)) -> active(f(mark(X))) r3: mark(a()) -> active(a()) r4: mark(c(X)) -> active(c(X)) r5: mark(g(X)) -> active(g(mark(X))) r6: f(mark(X)) -> f(X) r7: f(active(X)) -> f(X) r8: c(mark(X)) -> c(X) r9: c(active(X)) -> c(X) r10: g(mark(X)) -> g(X) r11: g(active(X)) -> g(X) The estimated dependency graph contains the following SCCs: {p7, p12} {p1, p9} {p13, p14} {p17, p18} {p15, p16} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(g(X)) -> mark#(X) p2: mark#(f(X)) -> mark#(X) and R consists of: r1: active(f(f(a()))) -> mark(c(f(g(f(a()))))) r2: mark(f(X)) -> active(f(mark(X))) r3: mark(a()) -> active(a()) r4: mark(c(X)) -> active(c(X)) r5: mark(g(X)) -> active(g(mark(X))) r6: f(mark(X)) -> f(X) r7: f(active(X)) -> f(X) r8: c(mark(X)) -> c(X) r9: c(active(X)) -> c(X) r10: g(mark(X)) -> g(X) r11: 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{6, x1 + 4} g_A(x1) = max{4, x1 + 3} f_A(x1) = max{2, x1 + 1} precedence: mark# = g = f partial status: pi(mark#) = [1] pi(g) = [1] pi(f) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: mark#_A(x1) = x1 + 1 g_A(x1) = x1 f_A(x1) = x1 precedence: mark# = g = f partial status: pi(mark#) = [1] pi(g) = [1] pi(f) = [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: active#(f(f(a()))) -> mark#(c(f(g(f(a()))))) p2: mark#(c(X)) -> active#(c(X)) and R consists of: r1: active(f(f(a()))) -> mark(c(f(g(f(a()))))) r2: mark(f(X)) -> active(f(mark(X))) r3: mark(a()) -> active(a()) r4: mark(c(X)) -> active(c(X)) r5: mark(g(X)) -> active(g(mark(X))) r6: f(mark(X)) -> f(X) r7: f(active(X)) -> f(X) r8: c(mark(X)) -> c(X) r9: c(active(X)) -> c(X) r10: g(mark(X)) -> g(X) r11: g(active(X)) -> g(X) The set of usable rules consists of r8, r9 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 + 4 a_A = 6 mark#_A(x1) = x1 + 8 c_A(x1) = x1 + 7 g_A(x1) = 2 mark_A(x1) = x1 + 1 active_A(x1) = x1 + 5 precedence: active# = f = a = mark# = c = g = mark = active partial status: pi(active#) = [] pi(f) = [] pi(a) = [] pi(mark#) = [] pi(c) = [] pi(g) = [] pi(mark) = [] pi(active) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: active#_A(x1) = max{19, x1 + 16} f_A(x1) = max{30, x1 + 4} a_A = 33 mark#_A(x1) = max{31, x1 + 17} c_A(x1) = max{32, x1 + 1} g_A(x1) = 27 mark_A(x1) = x1 active_A(x1) = max{31, x1} precedence: active# = f = a = mark# = c = g = mark = active partial status: pi(active#) = [] pi(f) = [1] pi(a) = [] pi(mark#) = [1] pi(c) = [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: f#(mark(X)) -> f#(X) p2: f#(active(X)) -> f#(X) and R consists of: r1: active(f(f(a()))) -> mark(c(f(g(f(a()))))) r2: mark(f(X)) -> active(f(mark(X))) r3: mark(a()) -> active(a()) r4: mark(c(X)) -> active(c(X)) r5: mark(g(X)) -> active(g(mark(X))) r6: f(mark(X)) -> f(X) r7: f(active(X)) -> f(X) r8: c(mark(X)) -> c(X) r9: c(active(X)) -> c(X) r10: g(mark(X)) -> g(X) r11: 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. -- 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(c(f(g(f(a()))))) r2: mark(f(X)) -> active(f(mark(X))) r3: mark(a()) -> active(a()) r4: mark(c(X)) -> active(c(X)) r5: mark(g(X)) -> active(g(mark(X))) r6: f(mark(X)) -> f(X) r7: f(active(X)) -> f(X) r8: c(mark(X)) -> c(X) r9: c(active(X)) -> c(X) r10: g(mark(X)) -> g(X) r11: 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: c#(mark(X)) -> c#(X) p2: c#(active(X)) -> c#(X) and R consists of: r1: active(f(f(a()))) -> mark(c(f(g(f(a()))))) r2: mark(f(X)) -> active(f(mark(X))) r3: mark(a()) -> active(a()) r4: mark(c(X)) -> active(c(X)) r5: mark(g(X)) -> active(g(mark(X))) r6: f(mark(X)) -> f(X) r7: f(active(X)) -> f(X) r8: c(mark(X)) -> c(X) r9: c(active(X)) -> c(X) r10: g(mark(X)) -> g(X) r11: 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: c#_A(x1) = x1 + 2 mark_A(x1) = x1 active_A(x1) = x1 + 2 precedence: mark > active > c# partial status: pi(c#) = [1] pi(mark) = [1] pi(active) = [1] 2. weighted path order base order: max/plus interpretations on natural numbers: c#_A(x1) = x1 + 1 mark_A(x1) = x1 active_A(x1) = x1 precedence: c# = mark = active partial status: pi(c#) = [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.