YES Problem: half(0()) -> 0() half(s(0())) -> 0() half(s(s(x))) -> s(half(x)) s(log(0())) -> s(0()) log(s(x)) -> s(log(half(s(x)))) Proof: DP Processor: DPs: half#(s(s(x))) -> half#(x) half#(s(s(x))) -> s#(half(x)) s#(log(0())) -> s#(0()) log#(s(x)) -> half#(s(x)) log#(s(x)) -> log#(half(s(x))) log#(s(x)) -> s#(log(half(s(x)))) TRS: half(0()) -> 0() half(s(0())) -> 0() half(s(s(x))) -> s(half(x)) s(log(0())) -> s(0()) log(s(x)) -> s(log(half(s(x)))) Matrix Interpretation Processor: dim=1 interpretation: [log#](x0) = 2x0, [s#](x0) = x0, [half#](x0) = 3/2x0, [log](x0) = 2x0 + 1/2, [s](x0) = x0 + 1, [half](x0) = 1/2x0, [0] = 0 orientation: half#(s(s(x))) = 3/2x + 3 >= 3/2x = half#(x) half#(s(s(x))) = 3/2x + 3 >= 1/2x = s#(half(x)) s#(log(0())) = 1/2 >= 0 = s#(0()) log#(s(x)) = 2x + 2 >= 3/2x + 3/2 = half#(s(x)) log#(s(x)) = 2x + 2 >= x + 1 = log#(half(s(x))) log#(s(x)) = 2x + 2 >= x + 3/2 = s#(log(half(s(x)))) half(0()) = 0 >= 0 = 0() half(s(0())) = 1/2 >= 0 = 0() half(s(s(x))) = 1/2x + 1 >= 1/2x + 1 = s(half(x)) s(log(0())) = 3/2 >= 1 = s(0()) log(s(x)) = 2x + 5/2 >= x + 5/2 = s(log(half(s(x)))) problem: DPs: TRS: half(0()) -> 0() half(s(0())) -> 0() half(s(s(x))) -> s(half(x)) s(log(0())) -> s(0()) log(s(x)) -> s(log(half(s(x)))) Qed