MAYBE Problem: tower(x) -> f(a(),x,s(0())) f(a(),0(),y) -> y f(a(),s(x),y) -> f(b(),y,s(x)) f(b(),y,x) -> f(a(),half(x),exp(y)) exp(0()) -> s(0()) exp(s(x)) -> double(exp(x)) double(0()) -> 0() double(s(x)) -> s(s(double(x))) half(0()) -> double(0()) half(s(0())) -> half(0()) half(s(s(x))) -> s(half(x)) Proof: DP Processor: DPs: tower#(x) -> f#(a(),x,s(0())) f#(a(),s(x),y) -> f#(b(),y,s(x)) f#(b(),y,x) -> exp#(y) f#(b(),y,x) -> half#(x) f#(b(),y,x) -> f#(a(),half(x),exp(y)) exp#(s(x)) -> exp#(x) exp#(s(x)) -> double#(exp(x)) double#(s(x)) -> double#(x) half#(0()) -> double#(0()) half#(s(0())) -> half#(0()) half#(s(s(x))) -> half#(x) TRS: tower(x) -> f(a(),x,s(0())) f(a(),0(),y) -> y f(a(),s(x),y) -> f(b(),y,s(x)) f(b(),y,x) -> f(a(),half(x),exp(y)) exp(0()) -> s(0()) exp(s(x)) -> double(exp(x)) double(0()) -> 0() double(s(x)) -> s(s(double(x))) half(0()) -> double(0()) half(s(0())) -> half(0()) half(s(s(x))) -> s(half(x)) Usable Rule Processor: DPs: tower#(x) -> f#(a(),x,s(0())) f#(a(),s(x),y) -> f#(b(),y,s(x)) f#(b(),y,x) -> exp#(y) f#(b(),y,x) -> half#(x) f#(b(),y,x) -> f#(a(),half(x),exp(y)) exp#(s(x)) -> exp#(x) exp#(s(x)) -> double#(exp(x)) double#(s(x)) -> double#(x) half#(0()) -> double#(0()) half#(s(0())) -> half#(0()) half#(s(s(x))) -> half#(x) TRS: exp(0()) -> s(0()) exp(s(x)) -> double(exp(x)) double(0()) -> 0() double(s(x)) -> s(s(double(x))) half(0()) -> double(0()) half(s(0())) -> half(0()) half(s(s(x))) -> s(half(x)) Open