YES TRS: { a(x, g()) -> a(f(), a(g(), a(f(), x))), a(f(), a(f(), x)) -> a(x, g())} DP: Strict: { a#(x, g()) -> a#(g(), a(f(), x)), a#(x, g()) -> a#(f(), x), a#(x, g()) -> a#(f(), a(g(), a(f(), x))), a#(f(), a(f(), x)) -> a#(x, g())} Weak: { a(x, g()) -> a(f(), a(g(), a(f(), x))), a(f(), a(f(), x)) -> a(x, g())} EDG: {(a#(f(), a(f(), x)) -> a#(x, g()), a#(x, g()) -> a#(f(), a(g(), a(f(), x)))) (a#(f(), a(f(), x)) -> a#(x, g()), a#(x, g()) -> a#(f(), x)) (a#(f(), a(f(), x)) -> a#(x, g()), a#(x, g()) -> a#(g(), a(f(), x))) (a#(x, g()) -> a#(f(), x), a#(f(), a(f(), x)) -> a#(x, g())) (a#(x, g()) -> a#(f(), x), a#(x, g()) -> a#(f(), a(g(), a(f(), x)))) (a#(x, g()) -> a#(f(), x), a#(x, g()) -> a#(f(), x)) (a#(x, g()) -> a#(f(), x), a#(x, g()) -> a#(g(), a(f(), x))) (a#(x, g()) -> a#(f(), a(g(), a(f(), x))), a#(f(), a(f(), x)) -> a#(x, g()))} SCCS: Scc: { a#(x, g()) -> a#(f(), x), a#(x, g()) -> a#(f(), a(g(), a(f(), x))), a#(f(), a(f(), x)) -> a#(x, g())} SCC: Strict: { a#(x, g()) -> a#(f(), x), a#(x, g()) -> a#(f(), a(g(), a(f(), x))), a#(f(), a(f(), x)) -> a#(x, g())} Weak: { a(x, g()) -> a(f(), a(g(), a(f(), x))), a(f(), a(f(), x)) -> a(x, g())} BOUND: Bound: match(-raise)-DP-bounded by 0 Automaton: { f_0() -> 10* g_0() -> 9* a#_0(10, 12) -> 5* a_0(12, 12) -> 8* a_0(12, 11) -> 8* a_0(12, 10) -> 8* a_0(12, 9) -> 11 | 8 a_0(12, 8) -> 8* a_0(11, 12) -> 8* a_0(11, 11) -> 8* a_0(11, 10) -> 8* a_0(11, 9) -> 11 | 8 a_0(11, 8) -> 8* a_0(10, 12) -> 11 | 8 a_0(10, 11) -> 11* a_0(10, 10) -> 11* a_0(10, 9) -> 11* a_0(10, 8) -> 11* a_0(9, 12) -> 8* a_0(9, 11) -> 12* a_0(9, 10) -> 8* a_0(9, 9) -> 11 | 8 a_0(9, 8) -> 8* a_0(8, 12) -> 8* a_0(8, 11) -> 8* a_0(8, 10) -> 8* a_0(8, 9) -> 11 | 8 a_0(8, 8) -> 8*} Strict: { a#(x, g()) -> a#(f(), x), a#(f(), a(f(), x)) -> a#(x, g())} EDG: {(a#(f(), a(f(), x)) -> a#(x, g()), a#(x, g()) -> a#(f(), x)) (a#(x, g()) -> a#(f(), x), a#(x, g()) -> a#(f(), x)) (a#(x, g()) -> a#(f(), x), a#(f(), a(f(), x)) -> a#(x, g()))} SCCS: Scc: { a#(x, g()) -> a#(f(), x), a#(f(), a(f(), x)) -> a#(x, g())} SCC: Strict: { a#(x, g()) -> a#(f(), x), a#(f(), a(f(), x)) -> a#(x, g())} Weak: { a(x, g()) -> a(f(), a(g(), a(f(), x))), a(f(), a(f(), x)) -> a(x, g())} POLY: Argument Filtering: pi(f) = [], pi(g) = [], pi(a#) = [0,1], pi(a) = [0,1] Usable Rules: {} Interpretation: [a#](x0, x1) = x0 + x1, [a](x0, x1) = x0 + x1, [f] = 1, [g] = 1 Strict: {a#(x, g()) -> a#(f(), x)} Weak: { a(x, g()) -> a(f(), a(g(), a(f(), x))), a(f(), a(f(), x)) -> a(x, g())} EDG: {(a#(x, g()) -> a#(f(), x), a#(x, g()) -> a#(f(), x))} SCCS: Scc: {a#(x, g()) -> a#(f(), x)} SCC: Strict: {a#(x, g()) -> a#(f(), x)} Weak: { a(x, g()) -> a(f(), a(g(), a(f(), x))), a(f(), a(f(), x)) -> a(x, g())} POLY: Argument Filtering: pi(f) = [], pi(g) = [], pi(a#) = [0,1], pi(a) = [] Usable Rules: {} Interpretation: [a#](x0, x1) = x0 + x1, [f] = 0, [g] = 1 Strict: {} Weak: { a(x, g()) -> a(f(), a(g(), a(f(), x))), a(f(), a(f(), x)) -> a(x, g())} Qed