YES We show the termination of the TRS R: active(f(f(a()))) -> mark(f(g(f(a())))) mark(f(X)) -> active(f(mark(X))) mark(a()) -> active(a()) mark(g(X)) -> active(g(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(mark(X))) p5: mark#(f(X)) -> f#(mark(X)) p6: mark#(f(X)) -> mark#(X) p7: mark#(a()) -> active#(a()) p8: mark#(g(X)) -> active#(g(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(mark(X))) r3: mark(a()) -> active(a()) r4: mark(g(X)) -> active(g(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: {p1, p4, p6, p8} {p9, p10} {p11, p12} -- 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)) -> mark#(X) p3: mark#(g(X)) -> active#(g(X)) p4: mark#(f(X)) -> active#(f(mark(X))) and R consists of: r1: active(f(f(a()))) -> mark(f(g(f(a())))) r2: mark(f(X)) -> active(f(mark(X))) r3: mark(a()) -> active(a()) r4: mark(g(X)) -> active(g(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 r1, r2, r3, r4, r5, r6, r7, r8 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = ((0,0),(1,0)) x1 + (7,1) f_A(x1) = ((0,0),(1,0)) x1 + (5,2) a_A() = (6,9) mark#_A(x1) = (7,6) g_A(x1) = (1,1) mark_A(x1) = x1 + (0,3) active_A(x1) = x1 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: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = (4,2) f_A(x1) = (3,1) a_A() = (2,0) mark#_A(x1) = (4,2) g_A(x1) = (5,2) mark_A(x1) = ((1,0),(1,1)) x1 + (1,3) active_A(x1) = ((1,0),(0,0)) x1 + (6,11) precedence: active > g > f = mark > active# = mark# > a partial status: pi(active#) = [] pi(f) = [] pi(a) = [] pi(mark#) = [] pi(g) = [] pi(mark) = [1] pi(active) = [] The next rules are strictly ordered: p3 We remove them from the problem. -- SCC decomposition. 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)) -> mark#(X) p3: mark#(f(X)) -> active#(f(mark(X))) and R consists of: r1: active(f(f(a()))) -> mark(f(g(f(a())))) r2: mark(f(X)) -> active(f(mark(X))) r3: mark(a()) -> active(a()) r4: mark(g(X)) -> active(g(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: {p1, p2, p3} -- 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(mark(X))) p3: mark#(f(X)) -> mark#(X) and R consists of: r1: active(f(f(a()))) -> mark(f(g(f(a())))) r2: mark(f(X)) -> active(f(mark(X))) r3: mark(a()) -> active(a()) r4: mark(g(X)) -> active(g(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 r1, r2, r3, r4, r5, r6, r7, r8 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = ((0,0),(1,0)) x1 f_A(x1) = x1 + (0,2) a_A() = (4,5) mark#_A(x1) = ((0,0),(1,0)) x1 + (0,4) g_A(x1) = (0,0) mark_A(x1) = x1 + (1,1) active_A(x1) = x1 precedence: active# > mark# = mark > active > g > f > a partial status: pi(active#) = [] pi(f) = [1] pi(a) = [] pi(mark#) = [] pi(g) = [] pi(mark) = [] pi(active) = [1] 2. weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: active#_A(x1) = (4,4) f_A(x1) = (0,2) a_A() = (2,1) mark#_A(x1) = (1,0) g_A(x1) = (3,3) mark_A(x1) = (0,4) active_A(x1) = x1 precedence: active# > mark# > g > f = mark > a = active partial status: pi(active#) = [] pi(f) = [] pi(a) = [] pi(mark#) = [] pi(g) = [] pi(mark) = [] pi(active) = [1] The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. 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)) -> mark#(X) and R consists of: r1: active(f(f(a()))) -> mark(f(g(f(a())))) r2: mark(f(X)) -> active(f(mark(X))) r3: mark(a()) -> active(a()) r4: mark(g(X)) -> active(g(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: {p2} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: mark#(f(X)) -> mark#(X) and R consists of: r1: active(f(f(a()))) -> mark(f(g(f(a())))) r2: mark(f(X)) -> active(f(mark(X))) r3: mark(a()) -> active(a()) r4: mark(g(X)) -> active(g(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 reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: mark#_A(x1) = ((1,0),(1,1)) x1 + (2,2) f_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: mark# = f partial status: pi(mark#) = [] pi(f) = [] 2. weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: mark#_A(x1) = ((1,0),(0,0)) x1 f_A(x1) = (1,1) precedence: f > mark# partial status: pi(mark#) = [] pi(f) = [] 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: 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(mark(X))) r3: mark(a()) -> active(a()) r4: mark(g(X)) -> active(g(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 reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: f#_A(x1) = x1 + (1,2) mark_A(x1) = x1 + (2,1) active_A(x1) = ((1,0),(1,1)) x1 + (2,1) precedence: f# = mark = active partial status: pi(f#) = [1] pi(mark) = [1] pi(active) = [1] 2. weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: f#_A(x1) = ((1,0),(1,0)) x1 + (0,2) mark_A(x1) = ((1,0),(0,0)) x1 + (1,1) active_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: f# = mark = active partial status: pi(f#) = [] pi(mark) = [] pi(active) = [] 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(mark(X))) r3: mark(a()) -> active(a()) r4: mark(g(X)) -> active(g(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 reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: g#_A(x1) = x1 + (1,2) mark_A(x1) = x1 + (2,1) active_A(x1) = ((1,0),(1,1)) x1 + (2,1) precedence: g# = mark = active partial status: pi(g#) = [1] pi(mark) = [1] pi(active) = [1] 2. weighted path order base order: matrix interpretations: carrier: N^2 order: lexicographic order interpretations: g#_A(x1) = ((1,0),(1,0)) x1 + (0,2) mark_A(x1) = ((1,0),(0,0)) x1 + (1,1) active_A(x1) = ((1,0),(0,0)) x1 + (1,1) precedence: g# = mark = active partial status: pi(g#) = [] pi(mark) = [] pi(active) = [] The next rules are strictly ordered: p1, p2 We remove them from the problem. Then no dependency pair remains.