YES Problem: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) f(0()) -> s(0()) f(s(x)) -> minus(s(x),g(f(x))) g(0()) -> 0() g(s(x)) -> minus(s(x),f(g(x))) Proof: DP Processor: DPs: minus#(s(x),s(y)) -> minus#(x,y) f#(s(x)) -> f#(x) f#(s(x)) -> g#(f(x)) f#(s(x)) -> minus#(s(x),g(f(x))) g#(s(x)) -> g#(x) g#(s(x)) -> f#(g(x)) g#(s(x)) -> minus#(s(x),f(g(x))) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) f(0()) -> s(0()) f(s(x)) -> minus(s(x),g(f(x))) g(0()) -> 0() g(s(x)) -> minus(s(x),f(g(x))) TDG Processor: DPs: minus#(s(x),s(y)) -> minus#(x,y) f#(s(x)) -> f#(x) f#(s(x)) -> g#(f(x)) f#(s(x)) -> minus#(s(x),g(f(x))) g#(s(x)) -> g#(x) g#(s(x)) -> f#(g(x)) g#(s(x)) -> minus#(s(x),f(g(x))) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) f(0()) -> s(0()) f(s(x)) -> minus(s(x),g(f(x))) g(0()) -> 0() g(s(x)) -> minus(s(x),f(g(x))) graph: g#(s(x)) -> g#(x) -> g#(s(x)) -> minus#(s(x),f(g(x))) g#(s(x)) -> g#(x) -> g#(s(x)) -> f#(g(x)) g#(s(x)) -> g#(x) -> g#(s(x)) -> g#(x) g#(s(x)) -> f#(g(x)) -> f#(s(x)) -> minus#(s(x),g(f(x))) g#(s(x)) -> f#(g(x)) -> f#(s(x)) -> g#(f(x)) g#(s(x)) -> f#(g(x)) -> f#(s(x)) -> f#(x) g#(s(x)) -> minus#(s(x),f(g(x))) -> minus#(s(x),s(y)) -> minus#(x,y) f#(s(x)) -> g#(f(x)) -> g#(s(x)) -> minus#(s(x),f(g(x))) f#(s(x)) -> g#(f(x)) -> g#(s(x)) -> f#(g(x)) f#(s(x)) -> g#(f(x)) -> g#(s(x)) -> g#(x) f#(s(x)) -> f#(x) -> f#(s(x)) -> minus#(s(x),g(f(x))) f#(s(x)) -> f#(x) -> f#(s(x)) -> g#(f(x)) f#(s(x)) -> f#(x) -> f#(s(x)) -> f#(x) f#(s(x)) -> minus#(s(x),g(f(x))) -> minus#(s(x),s(y)) -> minus#(x,y) minus#(s(x),s(y)) -> minus#(x,y) -> minus#(s(x),s(y)) -> minus#(x,y) SCC Processor: #sccs: 2 #rules: 5 #arcs: 15/49 DPs: g#(s(x)) -> g#(x) g#(s(x)) -> f#(g(x)) f#(s(x)) -> f#(x) f#(s(x)) -> g#(f(x)) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) f(0()) -> s(0()) f(s(x)) -> minus(s(x),g(f(x))) g(0()) -> 0() g(s(x)) -> minus(s(x),f(g(x))) Arctic Interpretation Processor: dimension: 1 interpretation: [g#](x0) = x0, [f#](x0) = x0 + 0, [g](x0) = 2x0 + 0, [f](x0) = 2x0 + 0, [s](x0) = 2x0 + 0, [minus](x0, x1) = 2x0 + x1 + 0, [0] = 1 orientation: g#(s(x)) = 2x + 0 >= x = g#(x) g#(s(x)) = 2x + 0 >= 2x + 0 = f#(g(x)) f#(s(x)) = 2x + 0 >= x + 0 = f#(x) f#(s(x)) = 2x + 0 >= 2x + 0 = g#(f(x)) minus(x,0()) = 2x + 1 >= x = x minus(s(x),s(y)) = 4x + 2y + 2 >= 2x + y + 0 = minus(x,y) f(0()) = 3 >= 3 = s(0()) f(s(x)) = 4x + 2 >= 4x + 2 = minus(s(x),g(f(x))) g(0()) = 3 >= 1 = 0() g(s(x)) = 4x + 2 >= 4x + 2 = minus(s(x),f(g(x))) problem: DPs: g#(s(x)) -> f#(g(x)) f#(s(x)) -> f#(x) f#(s(x)) -> g#(f(x)) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) f(0()) -> s(0()) f(s(x)) -> minus(s(x),g(f(x))) g(0()) -> 0() g(s(x)) -> minus(s(x),f(g(x))) KBO Processor: argument filtering: pi(0) = [] pi(minus) = 0 pi(s) = [0] pi(f) = [0] pi(g) = 0 pi(f#) = [0] pi(g#) = 0 weight function: w0 = 1 w(f#) = w(f) = w(s) = w(0) = 1 w(g#) = w(g) = w(minus) = 0 precedence: f ~ minus > s > g# ~ f# ~ g ~ 0 problem: DPs: TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) f(0()) -> s(0()) f(s(x)) -> minus(s(x),g(f(x))) g(0()) -> 0() g(s(x)) -> minus(s(x),f(g(x))) Qed DPs: minus#(s(x),s(y)) -> minus#(x,y) TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) f(0()) -> s(0()) f(s(x)) -> minus(s(x),g(f(x))) g(0()) -> 0() g(s(x)) -> minus(s(x),f(g(x))) Subterm Criterion Processor: simple projection: pi(minus#) = 1 problem: DPs: TRS: minus(x,0()) -> x minus(s(x),s(y)) -> minus(x,y) f(0()) -> s(0()) f(s(x)) -> minus(s(x),g(f(x))) g(0()) -> 0() g(s(x)) -> minus(s(x),f(g(x))) Qed