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: Matrix Interpretation Processor: dim=1 interpretation: [double](x0) = x0, [exp](x0) = x0, [half](x0) = x0, [b] = 0, [f](x0, x1, x2) = 4x0 + 2x1 + 2x2, [s](x0) = x0, [0] = 2, [a] = 0, [tower](x0) = 3x0 + 4 orientation: tower(x) = 3x + 4 >= 2x + 4 = f(a(),x,s(0())) f(a(),0(),y) = 2y + 4 >= y = y f(a(),s(x),y) = 2x + 2y >= 2x + 2y = f(b(),y,s(x)) f(b(),y,x) = 2x + 2y >= 2x + 2y = f(a(),half(x),exp(y)) exp(0()) = 2 >= 2 = s(0()) exp(s(x)) = x >= x = double(exp(x)) double(0()) = 2 >= 2 = 0() double(s(x)) = x >= x = s(s(double(x))) half(0()) = 2 >= 2 = double(0()) half(s(0())) = 2 >= 2 = half(0()) half(s(s(x))) = x >= x = s(half(x)) problem: tower(x) -> f(a(),x,s(0())) 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)) Matrix Interpretation Processor: dim=1 interpretation: [double](x0) = x0, [exp](x0) = x0, [half](x0) = x0, [b] = 0, [f](x0, x1, x2) = 4x0 + x1 + x2, [s](x0) = x0, [0] = 0, [a] = 0, [tower](x0) = 2x0 + 4 orientation: tower(x) = 2x + 4 >= x = f(a(),x,s(0())) f(a(),s(x),y) = x + y >= x + y = f(b(),y,s(x)) f(b(),y,x) = x + y >= x + y = f(a(),half(x),exp(y)) exp(0()) = 0 >= 0 = s(0()) exp(s(x)) = x >= x = double(exp(x)) double(0()) = 0 >= 0 = 0() double(s(x)) = x >= x = s(s(double(x))) half(0()) = 0 >= 0 = double(0()) half(s(0())) = 0 >= 0 = half(0()) half(s(s(x))) = x >= x = s(half(x)) problem: 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)) DP Processor: DPs: 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: 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)) TDG Processor: DPs: 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: 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)) graph: double#(s(x)) -> double#(x) -> double#(s(x)) -> double#(x) half#(s(s(x))) -> half#(x) -> half#(s(s(x))) -> half#(x) half#(s(s(x))) -> half#(x) -> half#(s(0())) -> half#(0()) half#(s(s(x))) -> half#(x) -> half#(0()) -> double#(0()) half#(s(0())) -> half#(0()) -> half#(s(s(x))) -> half#(x) half#(s(0())) -> half#(0()) -> half#(s(0())) -> half#(0()) half#(s(0())) -> half#(0()) -> half#(0()) -> double#(0()) half#(0()) -> double#(0()) -> double#(s(x)) -> double#(x) exp#(s(x)) -> double#(exp(x)) -> double#(s(x)) -> double#(x) exp#(s(x)) -> exp#(x) -> exp#(s(x)) -> double#(exp(x)) exp#(s(x)) -> exp#(x) -> exp#(s(x)) -> exp#(x) f#(b(),y,x) -> half#(x) -> half#(s(s(x))) -> half#(x) f#(b(),y,x) -> half#(x) -> half#(s(0())) -> half#(0()) f#(b(),y,x) -> half#(x) -> half#(0()) -> double#(0()) f#(b(),y,x) -> exp#(y) -> exp#(s(x)) -> double#(exp(x)) f#(b(),y,x) -> exp#(y) -> exp#(s(x)) -> exp#(x) f#(b(),y,x) -> f#(a(),half(x),exp(y)) -> f#(b(),y,x) -> f#(a(),half(x),exp(y)) f#(b(),y,x) -> f#(a(),half(x),exp(y)) -> f#(b(),y,x) -> half#(x) f#(b(),y,x) -> f#(a(),half(x),exp(y)) -> f#(b(),y,x) -> exp#(y) f#(b(),y,x) -> f#(a(),half(x),exp(y)) -> f#(a(),s(x),y) -> f#(b(),y,s(x)) f#(a(),s(x),y) -> f#(b(),y,s(x)) -> f#(b(),y,x) -> f#(a(),half(x),exp(y)) f#(a(),s(x),y) -> f#(b(),y,s(x)) -> f#(b(),y,x) -> half#(x) f#(a(),s(x),y) -> f#(b(),y,s(x)) -> f#(b(),y,x) -> exp#(y) f#(a(),s(x),y) -> f#(b(),y,s(x)) -> f#(a(),s(x),y) -> f#(b(),y,s(x)) SCC Processor: #sccs: 4 #rules: 6 #arcs: 24/100 DPs: f#(b(),y,x) -> f#(a(),half(x),exp(y)) f#(a(),s(x),y) -> f#(b(),y,s(x)) TRS: 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)) EDG Processor: DPs: f#(b(),y,x) -> f#(a(),half(x),exp(y)) f#(a(),s(x),y) -> f#(b(),y,s(x)) TRS: 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)) graph: f#(b(),y,x) -> f#(a(),half(x),exp(y)) -> f#(a(),s(x),y) -> f#(b(),y,s(x)) f#(a(),s(x),y) -> f#(b(),y,s(x)) -> f#(b(),y,x) -> f#(a(),half(x),exp(y)) Open DPs: exp#(s(x)) -> exp#(x) TRS: 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)) Subterm Criterion Processor: simple projection: pi(exp#) = 0 problem: DPs: TRS: 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)) Qed DPs: half#(s(s(x))) -> half#(x) half#(s(0())) -> half#(0()) TRS: 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)) Subterm Criterion Processor: simple projection: pi(half#) = 0 problem: DPs: TRS: 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)) Qed DPs: double#(s(x)) -> double#(x) TRS: 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)) Subterm Criterion Processor: simple projection: pi(double#) = 0 problem: DPs: TRS: 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)) Qed