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