YES Problem: lt(0(),s(x)) -> true() lt(x,0()) -> false() lt(s(x),s(y)) -> lt(x,y) logarithm(x) -> ifa(lt(0(),x),x) ifa(true(),x) -> help(x,1()) ifa(false(),x) -> logZeroError() help(x,y) -> ifb(lt(y,x),x,y) ifb(true(),x,y) -> help(half(x),s(y)) ifb(false(),x,y) -> y half(0()) -> 0() half(s(0())) -> 0() half(s(s(x))) -> s(half(x)) Proof: DP Processor: DPs: lt#(s(x),s(y)) -> lt#(x,y) logarithm#(x) -> lt#(0(),x) logarithm#(x) -> ifa#(lt(0(),x),x) ifa#(true(),x) -> help#(x,1()) help#(x,y) -> lt#(y,x) help#(x,y) -> ifb#(lt(y,x),x,y) ifb#(true(),x,y) -> half#(x) ifb#(true(),x,y) -> help#(half(x),s(y)) half#(s(s(x))) -> half#(x) TRS: lt(0(),s(x)) -> true() lt(x,0()) -> false() lt(s(x),s(y)) -> lt(x,y) logarithm(x) -> ifa(lt(0(),x),x) ifa(true(),x) -> help(x,1()) ifa(false(),x) -> logZeroError() help(x,y) -> ifb(lt(y,x),x,y) ifb(true(),x,y) -> help(half(x),s(y)) ifb(false(),x,y) -> y half(0()) -> 0() half(s(0())) -> 0() half(s(s(x))) -> s(half(x)) Usable Rule Processor: DPs: lt#(s(x),s(y)) -> lt#(x,y) logarithm#(x) -> lt#(0(),x) logarithm#(x) -> ifa#(lt(0(),x),x) ifa#(true(),x) -> help#(x,1()) help#(x,y) -> lt#(y,x) help#(x,y) -> ifb#(lt(y,x),x,y) ifb#(true(),x,y) -> half#(x) ifb#(true(),x,y) -> help#(half(x),s(y)) half#(s(s(x))) -> half#(x) TRS: lt(0(),s(x)) -> true() lt(x,0()) -> false() lt(s(x),s(y)) -> lt(x,y) half(0()) -> 0() half(s(0())) -> 0() half(s(s(x))) -> s(half(x)) Arctic Interpretation Processor: dimension: 1 usable rules: lt(0(),s(x)) -> true() lt(x,0()) -> false() lt(s(x),s(y)) -> lt(x,y) half(0()) -> 0() half(s(0())) -> 0() half(s(s(x))) -> s(half(x)) interpretation: [half#](x0) = -4x0 + 0, [ifb#](x0, x1, x2) = -2x0 + x1, [help#](x0, x1) = 1x0 + 1, [ifa#](x0, x1) = 1x0 + 6x1 + 0, [logarithm#](x0) = 12x0 + 11, [lt#](x0, x1) = x1 + 0, [half](x0) = -2x0 + 1, [1] = 8, [false] = 1, [true] = 5, [lt](x0, x1) = 2x1, [s](x0) = 3x0 + 4, [0] = 0 orientation: lt#(s(x),s(y)) = 3y + 4 >= y + 0 = lt#(x,y) logarithm#(x) = 12x + 11 >= x + 0 = lt#(0(),x) logarithm#(x) = 12x + 11 >= 6x + 0 = ifa#(lt(0(),x),x) ifa#(true(),x) = 6x + 6 >= 1x + 1 = help#(x,1()) help#(x,y) = 1x + 1 >= x + 0 = lt#(y,x) help#(x,y) = 1x + 1 >= x = ifb#(lt(y,x),x,y) ifb#(true(),x,y) = x + 3 >= -4x + 0 = half#(x) ifb#(true(),x,y) = x + 3 >= -1x + 2 = help#(half(x),s(y)) half#(s(s(x))) = 2x + 3 >= -4x + 0 = half#(x) lt(0(),s(x)) = 5x + 6 >= 5 = true() lt(x,0()) = 2 >= 1 = false() lt(s(x),s(y)) = 5y + 6 >= 2y = lt(x,y) half(0()) = 1 >= 0 = 0() half(s(0())) = 2 >= 0 = 0() half(s(s(x))) = 4x + 5 >= 1x + 4 = s(half(x)) problem: DPs: TRS: lt(0(),s(x)) -> true() lt(x,0()) -> false() lt(s(x),s(y)) -> lt(x,y) half(0()) -> 0() half(s(0())) -> 0() half(s(s(x))) -> s(half(x)) Qed