YES TRS: { f(x, f(y, z)) -> f(f(x, y), z), f(f(a(), a()), x) -> f(a(), f(b(), f(a(), x)))} DP: Strict: { f#(x, f(y, z)) -> f#(x, y), f#(x, f(y, z)) -> f#(f(x, y), z), f#(f(a(), a()), x) -> f#(a(), x), f#(f(a(), a()), x) -> f#(a(), f(b(), f(a(), x))), f#(f(a(), a()), x) -> f#(b(), f(a(), x))} Weak: { f(x, f(y, z)) -> f(f(x, y), z), f(f(a(), a()), x) -> f(a(), f(b(), f(a(), x)))} EDG: {(f#(x, f(y, z)) -> f#(f(x, y), z), f#(f(a(), a()), x) -> f#(b(), f(a(), x))) (f#(x, f(y, z)) -> f#(f(x, y), z), f#(f(a(), a()), x) -> f#(a(), f(b(), f(a(), x)))) (f#(x, f(y, z)) -> f#(f(x, y), z), f#(f(a(), a()), x) -> f#(a(), x)) (f#(x, f(y, z)) -> f#(f(x, y), z), f#(x, f(y, z)) -> f#(f(x, y), z)) (f#(x, f(y, z)) -> f#(f(x, y), z), f#(x, f(y, z)) -> f#(x, y)) (f#(f(a(), a()), x) -> f#(b(), f(a(), x)), f#(x, f(y, z)) -> f#(f(x, y), z)) (f#(f(a(), a()), x) -> f#(b(), f(a(), x)), f#(x, f(y, z)) -> f#(x, y)) (f#(f(a(), a()), x) -> f#(a(), f(b(), f(a(), x))), f#(x, f(y, z)) -> f#(x, y)) (f#(f(a(), a()), x) -> f#(a(), f(b(), f(a(), x))), f#(x, f(y, z)) -> f#(f(x, y), z)) (f#(f(a(), a()), x) -> f#(a(), x), f#(x, f(y, z)) -> f#(x, y)) (f#(f(a(), a()), x) -> f#(a(), x), f#(x, f(y, z)) -> f#(f(x, y), z)) (f#(x, f(y, z)) -> f#(x, y), f#(x, f(y, z)) -> f#(x, y)) (f#(x, f(y, z)) -> f#(x, y), f#(x, f(y, z)) -> f#(f(x, y), z)) (f#(x, f(y, z)) -> f#(x, y), f#(f(a(), a()), x) -> f#(a(), x)) (f#(x, f(y, z)) -> f#(x, y), f#(f(a(), a()), x) -> f#(a(), f(b(), f(a(), x)))) (f#(x, f(y, z)) -> f#(x, y), f#(f(a(), a()), x) -> f#(b(), f(a(), x)))} SCCS: Scc: { f#(x, f(y, z)) -> f#(x, y), f#(x, f(y, z)) -> f#(f(x, y), z), f#(f(a(), a()), x) -> f#(a(), x), f#(f(a(), a()), x) -> f#(a(), f(b(), f(a(), x))), f#(f(a(), a()), x) -> f#(b(), f(a(), x))} SCC: Strict: { f#(x, f(y, z)) -> f#(x, y), f#(x, f(y, z)) -> f#(f(x, y), z), f#(f(a(), a()), x) -> f#(a(), x), f#(f(a(), a()), x) -> f#(a(), f(b(), f(a(), x))), f#(f(a(), a()), x) -> f#(b(), f(a(), x))} Weak: { f(x, f(y, z)) -> f(f(x, y), z), f(f(a(), a()), x) -> f(a(), f(b(), f(a(), x)))} POLY: Argument Filtering: pi(b) = [], pi(a) = [], pi(f#) = [0,1], pi(f) = [0,1] Usable Rules: {} Interpretation: [f#](x0, x1) = x0 + x1, [f](x0, x1) = x0 + x1, [b] = 0, [a] = 1 Strict: { f#(x, f(y, z)) -> f#(x, y), f#(x, f(y, z)) -> f#(f(x, y), z), f#(f(a(), a()), x) -> f#(a(), f(b(), f(a(), x)))} Weak: { f(x, f(y, z)) -> f(f(x, y), z), f(f(a(), a()), x) -> f(a(), f(b(), f(a(), x)))} EDG: {(f#(x, f(y, z)) -> f#(f(x, y), z), f#(f(a(), a()), x) -> f#(a(), f(b(), f(a(), x)))) (f#(x, f(y, z)) -> f#(f(x, y), z), f#(x, f(y, z)) -> f#(f(x, y), z)) (f#(x, f(y, z)) -> f#(f(x, y), z), f#(x, f(y, z)) -> f#(x, y)) (f#(x, f(y, z)) -> f#(x, y), f#(x, f(y, z)) -> f#(x, y)) (f#(x, f(y, z)) -> f#(x, y), f#(x, f(y, z)) -> f#(f(x, y), z)) (f#(x, f(y, z)) -> f#(x, y), f#(f(a(), a()), x) -> f#(a(), f(b(), f(a(), x)))) (f#(f(a(), a()), x) -> f#(a(), f(b(), f(a(), x))), f#(x, f(y, z)) -> f#(x, y)) (f#(f(a(), a()), x) -> f#(a(), f(b(), f(a(), x))), f#(x, f(y, z)) -> f#(f(x, y), z))} SCCS: Scc: { f#(x, f(y, z)) -> f#(x, y), f#(x, f(y, z)) -> f#(f(x, y), z), f#(f(a(), a()), x) -> f#(a(), f(b(), f(a(), x)))} SCC: Strict: { f#(x, f(y, z)) -> f#(x, y), f#(x, f(y, z)) -> f#(f(x, y), z), f#(f(a(), a()), x) -> f#(a(), f(b(), f(a(), x)))} Weak: { f(x, f(y, z)) -> f(f(x, y), z), f(f(a(), a()), x) -> f(a(), f(b(), f(a(), x)))} BOUND: Bound: match(-raise)-DP-bounded by 1 Automaton: { b_1() -> 14* b_0() -> 10* a_1() -> 13* a_0() -> 9* f#_1(19, 21) -> 5* f#_1(19, 20) -> 5* f#_1(19, 16) -> 5* f#_1(19, 14) -> 5* f#_1(19, 12) -> 5* f#_1(19, 11) -> 5* f#_1(19, 10) -> 5* f#_1(19, 9) -> 5* f#_1(19, 8) -> 5* f#_1(18, 21) -> 5* f#_1(18, 20) -> 5* f#_1(18, 16) -> 5* f#_1(18, 14) -> 5* f#_1(18, 12) -> 5* f#_1(18, 11) -> 5* f#_1(18, 10) -> 5* f#_1(18, 9) -> 5* f#_1(18, 8) -> 5* f#_1(17, 19) -> 5* f#_1(17, 18) -> 5* f#_1(17, 17) -> 5* f#_1(17, 15) -> 5* f#_1(17, 13) -> 5* f#_1(13, 21) -> 5* f#_1(13, 20) -> 5* f#_1(13, 16) -> 5* f#_1(13, 14) -> 5* f#_0(11, 12) -> 5* f#_0(11, 11) -> 5* f#_0(11, 10) -> 5* f#_0(11, 9) -> 5* f#_0(11, 8) -> 5* f#_0(9, 12) -> 5* f#_0(9, 11) -> 5* f#_0(9, 10) -> 5* f#_0(9, 9) -> 5* f#_0(9, 8) -> 5* f#_0(8, 12) -> 5* f#_0(8, 11) -> 5* f#_0(8, 10) -> 5* f#_0(8, 9) -> 5* f#_0(8, 8) -> 5* f_1(21, 21) -> 20* f_1(21, 20) -> 20* f_1(21, 16) -> 20* f_1(21, 14) -> 14* f_1(21, 12) -> 20* f_1(21, 11) -> 20* f_1(21, 10) -> 20* f_1(21, 9) -> 20* f_1(21, 8) -> 20* f_1(20, 21) -> 20* f_1(20, 20) -> 20* f_1(20, 16) -> 20 | 16 f_1(20, 14) -> 14* f_1(20, 12) -> 20 | 16 f_1(20, 11) -> 20 | 16 f_1(20, 10) -> 20 | 16 f_1(20, 9) -> 20 | 16 f_1(20, 8) -> 20 | 16 f_1(19, 21) -> 19* f_1(19, 20) -> 19* f_1(19, 16) -> 19 | 15 f_1(19, 14) -> 17* f_1(19, 12) -> 19 | 15 f_1(19, 11) -> 19 | 15 f_1(19, 10) -> 19 | 15 f_1(19, 9) -> 19 | 15 f_1(19, 8) -> 19 | 15 f_1(18, 21) -> 19* f_1(18, 20) -> 19* f_1(18, 16) -> 19* f_1(18, 14) -> 17* f_1(18, 12) -> 19* f_1(18, 11) -> 19* f_1(18, 10) -> 19* f_1(18, 9) -> 19* f_1(18, 8) -> 19* f_1(17, 19) -> 19* f_1(17, 18) -> 19 | 18 f_1(17, 17) -> 17* f_1(17, 15) -> 19 | 15 f_1(17, 13) -> 19 | 18 f_1(16, 12) -> 16* f_1(16, 11) -> 16* f_1(16, 10) -> 16* f_1(16, 9) -> 16* f_1(16, 8) -> 16* f_1(15, 12) -> 15* f_1(15, 11) -> 15* f_1(15, 10) -> 15* f_1(15, 9) -> 15* f_1(15, 8) -> 15* f_1(14, 19) -> 20* f_1(14, 18) -> 21 | 20 f_1(14, 17) -> 14* f_1(14, 15) -> 20 | 16 f_1(14, 13) -> 21 | 20 f_1(13, 21) -> 19* f_1(13, 20) -> 19* f_1(13, 16) -> 19 | 15 f_1(13, 14) -> 17* f_1(13, 12) -> 15* f_1(13, 11) -> 15* f_1(13, 10) -> 15* f_1(13, 9) -> 15* f_1(13, 8) -> 15* f_0(12, 12) -> 12 | 8 f_0(12, 11) -> 12 | 8 f_0(12, 10) -> 12 | 8 f_0(12, 9) -> 12 | 8 f_0(12, 8) -> 12 | 8 f_0(11, 12) -> 11 | 8 f_0(11, 11) -> 11 | 8 f_0(11, 10) -> 11 | 8 f_0(11, 9) -> 11 | 8 f_0(11, 8) -> 11 | 8 f_0(10, 12) -> 8* f_0(10, 11) -> 12* f_0(10, 10) -> 8* f_0(10, 9) -> 8* f_0(10, 8) -> 8* f_0(9, 12) -> 11 | 8 f_0(9, 11) -> 11* f_0(9, 10) -> 11* f_0(9, 9) -> 11* f_0(9, 8) -> 11* f_0(8, 12) -> 12 | 8 f_0(8, 11) -> 12 | 8 f_0(8, 10) -> 12 | 8 f_0(8, 9) -> 12 | 8 f_0(8, 8) -> 12 | 8} Strict: {f#(x, f(y, z)) -> f#(x, y), f#(x, f(y, z)) -> f#(f(x, y), z)} EDG: {(f#(x, f(y, z)) -> f#(f(x, y), z), f#(x, f(y, z)) -> f#(f(x, y), z)) (f#(x, f(y, z)) -> f#(f(x, y), z), f#(x, f(y, z)) -> f#(x, y)) (f#(x, f(y, z)) -> f#(x, y), f#(x, f(y, z)) -> f#(x, y)) (f#(x, f(y, z)) -> f#(x, y), f#(x, f(y, z)) -> f#(f(x, y), z))} SCCS: Scc: {f#(x, f(y, z)) -> f#(x, y), f#(x, f(y, z)) -> f#(f(x, y), z)} SCC: Strict: {f#(x, f(y, z)) -> f#(x, y), f#(x, f(y, z)) -> f#(f(x, y), z)} Weak: { f(x, f(y, z)) -> f(f(x, y), z), f(f(a(), a()), x) -> f(a(), f(b(), f(a(), x)))} SPSC: Simple Projection: pi(f#) = 1 Strict: {f#(x, f(y, z)) -> f#(f(x, y), z)} EDG: {(f#(x, f(y, z)) -> f#(f(x, y), z), f#(x, f(y, z)) -> f#(f(x, y), z))} SCCS: Scc: {f#(x, f(y, z)) -> f#(f(x, y), z)} SCC: Strict: {f#(x, f(y, z)) -> f#(f(x, y), z)} Weak: { f(x, f(y, z)) -> f(f(x, y), z), f(f(a(), a()), x) -> f(a(), f(b(), f(a(), x)))} SPSC: Simple Projection: pi(f#) = 1 Strict: {} Qed