YES We show the termination of the TRS R: fac(s(x)) -> *(fac(p(s(x))),s(x)) p(s(|0|())) -> |0|() p(s(s(x))) -> s(p(s(x))) -- SCC decomposition. Consider the dependency pair problem (P, R), where P consists of p1: fac#(s(x)) -> fac#(p(s(x))) p2: fac#(s(x)) -> p#(s(x)) p3: p#(s(s(x))) -> p#(s(x)) and R consists of: r1: fac(s(x)) -> *(fac(p(s(x))),s(x)) r2: p(s(|0|())) -> |0|() r3: p(s(s(x))) -> s(p(s(x))) The estimated dependency graph contains the following SCCs: {p1} {p3} -- Reduction pair. Consider the dependency pair problem (P, R), where P consists of p1: fac#(s(x)) -> fac#(p(s(x))) and R consists of: r1: fac(s(x)) -> *(fac(p(s(x))),s(x)) r2: p(s(|0|())) -> |0|() r3: p(s(s(x))) -> s(p(s(x))) The set of usable rules consists of r2, r3 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: fac#_A(x1) = x1 + 4 s_A(x1) = max{22, x1 + 14} p_A(x1) = max{2, x1 - 5} |0|_A = 23 precedence: p > |0| > s > fac# partial status: pi(fac#) = [1] pi(s) = [1] pi(p) = [] pi(|0|) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: fac#_A(x1) = max{14, x1 - 5} s_A(x1) = max{13, x1 + 4} p_A(x1) = 6 |0|_A = 14 precedence: fac# = s = p = |0| partial status: pi(fac#) = [] pi(s) = [1] pi(p) = [] pi(|0|) = [] 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: p#(s(s(x))) -> p#(s(x)) and R consists of: r1: fac(s(x)) -> *(fac(p(s(x))),s(x)) r2: p(s(|0|())) -> |0|() r3: p(s(s(x))) -> s(p(s(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: max/plus interpretations on natural numbers: p#_A(x1) = x1 + 1 s_A(x1) = x1 precedence: p# = s partial status: pi(p#) = [] pi(s) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: p#_A(x1) = x1 + 3 s_A(x1) = x1 + 1 precedence: p# > s partial status: pi(p#) = [] pi(s) = [1] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains.