/export/starexec/sandbox/solver/bin/starexec_run_ttt2-1.17+nonreach /export/starexec/sandbox/benchmark/theBenchmark.xml /export/starexec/sandbox/output/output_files -------------------------------------------------------------------------------- YES 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=3 interpretation: [1 0 0] [double](x0) = [0 0 0]x0 [0 0 0] , [1 0 0] [exp](x0) = [0 0 0]x0 [0 0 0] , [1 1 0] [half](x0) = [0 0 0]x0 [1 0 0] , [0] [b] = [0] [1], [1 0 0] [1 0 0] [1 1 0] [f](x0, x1, x2) = [0 0 0]x0 + [0 0 0]x1 + [0 1 0]x2 [0 0 1] [0 0 0] [0 1 1] , [1 1 0] [s](x0) = [0 0 0]x0 [0 0 0] , [0] [0] = [0] [0], [0] [a] = [0] [1], [1 1 1] [1] [tower](x0) = [1 1 0]x0 + [0] [0 0 0] [1] orientation: [1 1 1] [1] [1 0 0] [0] tower(x) = [1 1 0]x + [0] >= [0 0 0]x + [0] = f(a(),x,s(0())) [0 0 0] [1] [0 0 0] [1] [1 1 0] [0] f(a(),0(),y) = [0 1 0]y + [0] >= y = y [0 1 1] [1] [1 1 0] [1 1 0] [0] [1 1 0] [1 0 0] [0] f(a(),s(x),y) = [0 0 0]x + [0 1 0]y + [0] >= [0 0 0]x + [0 0 0]y + [0] = f(b(),y,s(x)) [0 0 0] [0 1 1] [1] [0 0 0] [0 0 0] [1] [1 1 0] [1 0 0] [0] [1 1 0] [1 0 0] [0] f(b(),y,x) = [0 1 0]x + [0 0 0]y + [0] >= [0 0 0]x + [0 0 0]y + [0] = f(a(),half(x),exp(y)) [0 1 1] [0 0 0] [1] [0 0 0] [0 0 0] [1] [0] [0] exp(0()) = [0] >= [0] = s(0()) [0] [0] [1 1 0] [1 0 0] exp(s(x)) = [0 0 0]x >= [0 0 0]x = double(exp(x)) [0 0 0] [0 0 0] [0] [0] double(0()) = [0] >= [0] = 0() [0] [0] [1 1 0] [1 0 0] double(s(x)) = [0 0 0]x >= [0 0 0]x = s(s(double(x))) [0 0 0] [0 0 0] [0] [0] half(0()) = [0] >= [0] = double(0()) [0] [0] [0] [0] half(s(0())) = [0] >= [0] = half(0()) [0] [0] [1 1 0] [1 1 0] half(s(s(x))) = [0 0 0]x >= [0 0 0]x = s(half(x)) [1 1 0] [0 0 0] problem: 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)) Matrix Interpretation Processor: dim=3 interpretation: [1 0 0] [0] [double](x0) = [0 0 0]x0 + [1] [0 0 0] [0], [1 0 0] [exp](x0) = [0 1 0]x0 [0 0 0] , [half](x0) = x0 , [0] [b] = [0] [0], [1 0 0] [1 1 0] [1 1 1] [f](x0, x1, x2) = [0 0 0]x0 + [0 1 0]x1 + [0 1 0]x2 [0 0 0] [0 0 1] [0 0 1] , [1 0 1] [0] [s](x0) = [0 0 0]x0 + [1] [0 0 0] [0], [0] [0] = [1] [0], [0] [a] = [0] [0] orientation: [1 1 1] [1] f(a(),0(),y) = [0 1 0]y + [1] >= y = y [0 0 1] [0] [1 0 1] [1 1 1] [1] [1 0 1] [1 1 0] [1] f(a(),s(x),y) = [0 0 0]x + [0 1 0]y + [1] >= [0 0 0]x + [0 1 0]y + [1] = f(b(),y,s(x)) [0 0 0] [0 0 1] [0] [0 0 0] [0 0 1] [0] [1 1 1] [1 1 0] [1 1 0] [1 1 0] f(b(),y,x) = [0 1 0]x + [0 1 0]y >= [0 1 0]x + [0 1 0]y = f(a(),half(x),exp(y)) [0 0 1] [0 0 1] [0 0 1] [0 0 0] [0] [0] exp(0()) = [1] >= [1] = s(0()) [0] [0] [1 0 1] [0] [1 0 0] [0] exp(s(x)) = [0 0 0]x + [1] >= [0 0 0]x + [1] = double(exp(x)) [0 0 0] [0] [0 0 0] [0] [0] [0] double(0()) = [1] >= [1] = 0() [0] [0] [1 0 1] [0] [1 0 0] [0] double(s(x)) = [0 0 0]x + [1] >= [0 0 0]x + [1] = s(s(double(x))) [0 0 0] [0] [0 0 0] [0] [0] [0] half(0()) = [1] >= [1] = double(0()) [0] [0] [0] [0] half(s(0())) = [1] >= [1] = half(0()) [0] [0] [1 0 1] [0] [1 0 1] [0] half(s(s(x))) = [0 0 0]x + [1] >= [0 0 0]x + [1] = s(half(x)) [0 0 0] [0] [0 0 0] [0] 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)) Extended Uncurrying Processor: application symbol: f# symbol table: double ==> double0/1 exp ==> exp0/1 half ==> half0/1 b ==> b0/0 b_f#_1#/2 f ==> f0/3 s ==> s0/1 0 ==> 00/0 a ==> a0/0 a_f#_1#/2 uncurry-rules: eta-rules: problem: DPs: b_f#_1#(y,x) -> a_f#_1#(half0(x),exp0(y)) a_f#_1#(s0(x),y) -> b_f#_1#(y,s0(x)) TRS: f0(a0(),s0(x),y) -> f0(b0(),y,s0(x)) f0(b0(),y,x) -> f0(a0(),half0(x),exp0(y)) exp0(00()) -> s0(00()) exp0(s0(x)) -> double0(exp0(x)) double0(00()) -> 00() double0(s0(x)) -> s0(s0(double0(x))) half0(00()) -> double0(00()) half0(s0(00())) -> half0(00()) half0(s0(s0(x))) -> s0(half0(x)) Usable Rule Processor: DPs: b_f#_1#(y,x) -> a_f#_1#(half0(x),exp0(y)) a_f#_1#(s0(x),y) -> b_f#_1#(y,s0(x)) TRS: exp0(00()) -> s0(00()) exp0(s0(x)) -> double0(exp0(x)) double0(00()) -> 00() double0(s0(x)) -> s0(s0(double0(x))) half0(00()) -> double0(00()) half0(s0(00())) -> half0(00()) half0(s0(s0(x))) -> s0(half0(x)) Matrix Interpretation Processor: dim=1 usable rules: double0(00()) -> 00() double0(s0(x)) -> s0(s0(double0(x))) half0(00()) -> double0(00()) half0(s0(00())) -> half0(00()) half0(s0(s0(x))) -> s0(half0(x)) interpretation: [double0](x0) = 2x0, [exp0](x0) = 0, [half0](x0) = 1/2x0, [b_f#_1#](x0, x1) = 1/2x1 + 1/2, [s0](x0) = x0 + 1, [00] = 0, [a_f#_1#](x0, x1) = x0 orientation: b_f#_1#(y,x) = 1/2x + 1/2 >= 1/2x = a_f#_1#(half0(x),exp0(y)) a_f#_1#(s0(x),y) = x + 1 >= 1/2x + 1 = b_f#_1#(y,s0(x)) exp0(00()) = 0 >= 1 = s0(00()) exp0(s0(x)) = 0 >= 0 = double0(exp0(x)) double0(00()) = 0 >= 0 = 00() double0(s0(x)) = 2x + 2 >= 2x + 2 = s0(s0(double0(x))) half0(00()) = 0 >= 0 = double0(00()) half0(s0(00())) = 1/2 >= 0 = half0(00()) half0(s0(s0(x))) = 1/2x + 1 >= 1/2x + 1 = s0(half0(x)) problem: DPs: a_f#_1#(s0(x),y) -> b_f#_1#(y,s0(x)) TRS: exp0(00()) -> s0(00()) exp0(s0(x)) -> double0(exp0(x)) double0(00()) -> 00() double0(s0(x)) -> s0(s0(double0(x))) half0(00()) -> double0(00()) half0(s0(00())) -> half0(00()) half0(s0(s0(x))) -> s0(half0(x)) Restore Modifier: DPs: a_f#_1#(s0(x),y) -> b_f#_1#(y,s0(x)) TRS: f0(a0(),s0(x),y) -> f0(b0(),y,s0(x)) f0(b0(),y,x) -> f0(a0(),half0(x),exp0(y)) exp0(00()) -> s0(00()) exp0(s0(x)) -> double0(exp0(x)) double0(00()) -> 00() double0(s0(x)) -> s0(s0(double0(x))) half0(00()) -> double0(00()) half0(s0(00())) -> half0(00()) half0(s0(s0(x))) -> s0(half0(x)) SCC Processor: #sccs: 0 #rules: 0 #arcs: 2/1 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