YES TRS: { -(x, 0()) -> x, -(0(), s(y)) -> 0(), -(s(x), s(y)) -> -(x, y), f(0()) -> 0(), f(s(x)) -> -(s(x), g(f(x))), g(0()) -> s(0()), g(s(x)) -> -(s(x), f(g(x)))} DP: Strict: {-#(s(x), s(y)) -> -#(x, y), f#(s(x)) -> -#(s(x), g(f(x))), f#(s(x)) -> f#(x), f#(s(x)) -> g#(f(x)), g#(s(x)) -> -#(s(x), f(g(x))), g#(s(x)) -> f#(g(x)), g#(s(x)) -> g#(x)} Weak: { -(x, 0()) -> x, -(0(), s(y)) -> 0(), -(s(x), s(y)) -> -(x, y), f(0()) -> 0(), f(s(x)) -> -(s(x), g(f(x))), g(0()) -> s(0()), g(s(x)) -> -(s(x), f(g(x)))} EDG: {(g#(s(x)) -> -#(s(x), f(g(x))), -#(s(x), s(y)) -> -#(x, y)) (f#(s(x)) -> f#(x), f#(s(x)) -> g#(f(x))) (f#(s(x)) -> f#(x), f#(s(x)) -> f#(x)) (f#(s(x)) -> f#(x), f#(s(x)) -> -#(s(x), g(f(x)))) (f#(s(x)) -> g#(f(x)), g#(s(x)) -> g#(x)) (f#(s(x)) -> g#(f(x)), g#(s(x)) -> f#(g(x))) (f#(s(x)) -> g#(f(x)), g#(s(x)) -> -#(s(x), f(g(x)))) (g#(s(x)) -> f#(g(x)), f#(s(x)) -> -#(s(x), g(f(x)))) (g#(s(x)) -> f#(g(x)), f#(s(x)) -> f#(x)) (g#(s(x)) -> f#(g(x)), f#(s(x)) -> g#(f(x))) (g#(s(x)) -> g#(x), g#(s(x)) -> -#(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)) (-#(s(x), s(y)) -> -#(x, y), -#(s(x), s(y)) -> -#(x, y)) (f#(s(x)) -> -#(s(x), g(f(x))), -#(s(x), s(y)) -> -#(x, y))} SCCS: Scc: {f#(s(x)) -> f#(x), f#(s(x)) -> g#(f(x)), g#(s(x)) -> f#(g(x)), g#(s(x)) -> g#(x)} Scc: {-#(s(x), s(y)) -> -#(x, y)} SCC: Strict: {f#(s(x)) -> f#(x), f#(s(x)) -> g#(f(x)), g#(s(x)) -> f#(g(x)), g#(s(x)) -> g#(x)} Weak: { -(x, 0()) -> x, -(0(), s(y)) -> 0(), -(s(x), s(y)) -> -(x, y), f(0()) -> 0(), f(s(x)) -> -(s(x), g(f(x))), g(0()) -> s(0()), g(s(x)) -> -(s(x), f(g(x)))} POLY: Argument Filtering: pi(g#) = [0], pi(g) = [0], pi(f#) = [0], pi(f) = [0], pi(s) = [0], pi(0) = [], pi(-) = 0 Usable Rules: {} Interpretation: [g#](x0) = x0 + 1, [f#](x0) = x0 + 1, [g](x0) = x0 + 1, [f](x0) = x0 + 1, [s](x0) = x0 + 1 Strict: {f#(s(x)) -> g#(f(x)), g#(s(x)) -> f#(g(x))} Weak: { -(x, 0()) -> x, -(0(), s(y)) -> 0(), -(s(x), s(y)) -> -(x, y), f(0()) -> 0(), f(s(x)) -> -(s(x), g(f(x))), g(0()) -> s(0()), g(s(x)) -> -(s(x), f(g(x)))} EDG: {(g#(s(x)) -> f#(g(x)), f#(s(x)) -> g#(f(x))) (f#(s(x)) -> g#(f(x)), g#(s(x)) -> f#(g(x)))} SCCS: Scc: {f#(s(x)) -> g#(f(x)), g#(s(x)) -> f#(g(x))} SCC: Strict: {f#(s(x)) -> g#(f(x)), g#(s(x)) -> f#(g(x))} Weak: { -(x, 0()) -> x, -(0(), s(y)) -> 0(), -(s(x), s(y)) -> -(x, y), f(0()) -> 0(), f(s(x)) -> -(s(x), g(f(x))), g(0()) -> s(0()), g(s(x)) -> -(s(x), f(g(x)))} POLY: Argument Filtering: pi(g#) = 0, pi(g) = [0], pi(f#) = 0, pi(f) = 0, pi(s) = [0], pi(0) = [], pi(-) = 0 Usable Rules: {} Interpretation: [g](x0) = x0 + 1, [s](x0) = x0 + 1 Strict: {g#(s(x)) -> f#(g(x))} Weak: { -(x, 0()) -> x, -(0(), s(y)) -> 0(), -(s(x), s(y)) -> -(x, y), f(0()) -> 0(), f(s(x)) -> -(s(x), g(f(x))), g(0()) -> s(0()), g(s(x)) -> -(s(x), f(g(x)))} EDG: {} SCCS: Qed SCC: Strict: {-#(s(x), s(y)) -> -#(x, y)} Weak: { -(x, 0()) -> x, -(0(), s(y)) -> 0(), -(s(x), s(y)) -> -(x, y), f(0()) -> 0(), f(s(x)) -> -(s(x), g(f(x))), g(0()) -> s(0()), g(s(x)) -> -(s(x), f(g(x)))} SPSC: Simple Projection: pi(-#) = 0 Strict: {} Qed