YES We show the termination of the TRS R: half(|0|()) -> |0|() half(s(s(x))) -> s(half(x)) log(s(|0|())) -> |0|() log(s(s(x))) -> s(log(s(half(x)))) -- SCC decomposition. Consider the 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)))) The estimated dependency graph contains the following SCCs: {p2} {p1} -- Reduction pair. Consider the 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)))) The set of usable rules consists of r1, r2 Take the reduction pair: generalized weighted path order (>=MG, >G) base order 1: max/plus interpretation on natural numbers: log#_A(x1) = x1 + 5 s_A(x1) = max{9, x1} half_A(x1) = max{3, x1} |0|_A = 1 base order 2: marked-algebra reduction triple (>=A, >=A!, >A!): max/plus interpretation on natural numbers: log#_A(x1) = 0 s_A(x1) = max{2, x1 - 5} half_A(x1) = 3 |0|_A = 2 log#!_A(x1) = max{16, x1 + 13} s!_A(x1) = max{2, x1 - 25} half!_A(x1) = 0 |0|!_A = 2 partial status: pi(log#) = [1] pi(s) = [1] pi(half) = [1] pi(|0|) = [] The following rules are removed: p1 Then no dependency pair remains. -- Reduction pair. Consider the 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)))) The set of usable rules consists of (no rules) Take the reduction pair: generalized weighted path order (>=MG, >G) base order 1: max/plus interpretation on natural numbers: half#_A(x1) = max{1, x1 - 15} s_A(x1) = max{14, x1 + 3} base order 2: marked-algebra reduction triple (>=A, >=A!, >A!): max/plus interpretation on natural numbers: half#_A(x1) = 0 s_A(x1) = max{2, x1 - 3} half#!_A(x1) = max{2, x1 - 7} s!_A(x1) = max{2, x1 - 3} partial status: pi(half#) = [] pi(s) = [1] The following rules are removed: p1 Then no dependency pair remains.