YES We show the termination of the relative TRS R/S: R: f(|0|()) -> s(|0|()) f(s(|0|())) -> s(|0|()) f(s(s(x))) -> f(f(s(x))) S: rand(x) -> x rand(x) -> rand(s(x)) -- SCC decomposition. Consider the non-minimal dependency pair problem (P, R), where P consists of p1: f#(s(s(x))) -> f#(f(s(x))) p2: f#(s(s(x))) -> f#(s(x)) and R consists of: r1: f(|0|()) -> s(|0|()) r2: f(s(|0|())) -> s(|0|()) r3: f(s(s(x))) -> f(f(s(x))) r4: rand(x) -> x r5: rand(x) -> rand(s(x)) The estimated dependency graph contains the following SCCs: {p1, p2} -- Reduction pair. Consider the non-minimal dependency pair problem (P, R), where P consists of p1: f#(s(s(x))) -> f#(f(s(x))) p2: f#(s(s(x))) -> f#(s(x)) and R consists of: r1: f(|0|()) -> s(|0|()) r2: f(s(|0|())) -> s(|0|()) r3: f(s(s(x))) -> f(f(s(x))) r4: rand(x) -> x r5: rand(x) -> rand(s(x)) The set of usable rules consists of r1, r2, r3, r4, r5 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: f#_A(x1) = max{1, x1} s_A(x1) = max{1, x1} f_A(x1) = x1 |0|_A = 2 rand_A(x1) = max{3, x1 + 2} precedence: s = f = |0| > f# > rand partial status: pi(f#) = [1] pi(s) = [1] pi(f) = [1] pi(|0|) = [] pi(rand) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: f#_A(x1) = 0 s_A(x1) = max{5, x1 - 1} f_A(x1) = max{0, x1 - 1} |0|_A = 8 rand_A(x1) = 0 precedence: s = f > |0| > f# = rand partial status: pi(f#) = [] pi(s) = [] pi(f) = [] pi(|0|) = [] pi(rand) = [] The next rules are strictly ordered: p2 We remove them from the problem. -- SCC decomposition. Consider the non-minimal dependency pair problem (P, R), where P consists of p1: f#(s(s(x))) -> f#(f(s(x))) and R consists of: r1: f(|0|()) -> s(|0|()) r2: f(s(|0|())) -> s(|0|()) r3: f(s(s(x))) -> f(f(s(x))) r4: rand(x) -> x r5: rand(x) -> rand(s(x)) The estimated dependency graph contains the following SCCs: {p1} -- Reduction pair. Consider the non-minimal dependency pair problem (P, R), where P consists of p1: f#(s(s(x))) -> f#(f(s(x))) and R consists of: r1: f(|0|()) -> s(|0|()) r2: f(s(|0|())) -> s(|0|()) r3: f(s(s(x))) -> f(f(s(x))) r4: rand(x) -> x r5: rand(x) -> rand(s(x)) The set of usable rules consists of r1, r2, r3, r4, r5 Take the reduction pair: lexicographic combination of reduction pairs: 1. weighted path order base order: max/plus interpretations on natural numbers: f#_A(x1) = x1 + 2 s_A(x1) = x1 f_A(x1) = 0 |0|_A = 0 rand_A(x1) = x1 + 1 precedence: f# = s = f = |0| = rand partial status: pi(f#) = [] pi(s) = [] pi(f) = [] pi(|0|) = [] pi(rand) = [] 2. weighted path order base order: max/plus interpretations on natural numbers: f#_A(x1) = max{0, x1 - 19} s_A(x1) = max{17, x1 + 12} f_A(x1) = 19 |0|_A = 6 rand_A(x1) = 16 precedence: s = f > |0| > rand > f# partial status: pi(f#) = [] pi(s) = [1] pi(f) = [] pi(|0|) = [] pi(rand) = [] The next rules are strictly ordered: p1 We remove them from the problem. Then no dependency pair remains.