YES TRS: half(0()) -> 0() half(s(0())) -> 0() half(s(s(x))) -> s(half(x)) lastbit(0()) -> 0() lastbit(s(0())) -> s(0()) lastbit(s(s(x))) -> lastbit(x) zero(0()) -> true() zero(s(x)) -> false() conv(x) -> conviter(x,cons(0(),nil())) conviter(x,l) -> if(zero(x),x,l) if(true(),x,l) -> l if(false(),x,l) -> conviter(half(x),cons(lastbit(x),l)) max/plus interpretations on N: half_A(x1) = max{3, -14 + x1} half#_A(x1) = max{25, 1} 0_A = 3 0#_A = 26 s_A(x1) = max{16, 18 + x1} s#_A(x1) = max{23, 24} lastbit_A(x1) = max{2, 21} lastbit#_A(x1) = max{24, 24} zero_A(x1) = max{1, -1 + x1} zero#_A(x1) = max{13, 15} true_A = 2 true#_A = 14 false_A = 17 false#_A = 14 conv_A(x1) = max{0, 28} conv#_A(x1) = max{4, 27 + x1} conviter_A(x1,x2) = max{28, 1, 13 + x2} conviter#_A(x1,x2) = max{25, 16 + x1, 12 + x2} cons_A(x1,x2) = max{15, -10 + x1, -13} cons#_A(x1,x2) = max{3, 27, 27} nil_A = 1 nil#_A = 0 if_A(x1,x2,x3) = max{14, 28, 4, 1 + x3} if#_A(x1,x2,x3) = max{0, 10 + x1, 2 + x2, 24} precedence: s = if > lastbit > 0 > half = conv > conviter = cons = nil > zero > true = false