We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^2)). Strict Trs: { f(x, 0()) -> x , f(f(x, y), z) -> f(x, f(y, z)) , f(0(), y) -> y , f(i(x), y) -> i(x) , f(g(x, y), z) -> g(f(x, z), f(y, z)) , f(1(), g(x, y)) -> x , f(2(), g(x, y)) -> y } Obligation: runtime complexity Answer: YES(O(1),O(n^2)) We use the processor 'custom shape polynomial interpretation' to orient following rules strictly. Trs: { f(1(), g(x, y)) -> x , f(2(), g(x, y)) -> y } The induced complexity on above rules (modulo remaining rules) is YES(?,O(n^2)) . These rules are moved into the corresponding weak component(s). Sub-proof: ---------- The following argument positions are considered usable: Uargs(f) = {2}, Uargs(g) = {1, 2} TcT has computed the following constructor-restricted polynomial interpretation. [f](x1, x2) = x1 + x1*x2 + x2 [0]() = 0 [i](x1) = 0 [g](x1, x2) = 1 + x1 + x2 [1]() = 0 [2]() = 0 This order satisfies the following ordering constraints. [f(x, 0())] = x >= x = [x] [f(f(x, y), z)] = x + x*y + y + x*z + x*y*z + y*z + z >= x + x*y + x*y*z + x*z + y + y*z + z = [f(x, f(y, z))] [f(0(), y)] = y >= y = [y] [f(i(x), y)] = y >= = [i(x)] [f(g(x, y), z)] = 1 + x + y + 2*z + x*z + y*z >= 1 + x + x*z + 2*z + y + y*z = [g(f(x, z), f(y, z))] [f(1(), g(x, y))] = 1 + x + y > x = [x] [f(2(), g(x, y))] = 1 + x + y > y = [y] We return to the main proof. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^2)). Strict Trs: { f(x, 0()) -> x , f(f(x, y), z) -> f(x, f(y, z)) , f(0(), y) -> y , f(i(x), y) -> i(x) , f(g(x, y), z) -> g(f(x, z), f(y, z)) } Weak Trs: { f(1(), g(x, y)) -> x , f(2(), g(x, y)) -> y } Obligation: runtime complexity Answer: YES(O(1),O(n^2)) We use the processor 'custom shape polynomial interpretation' to orient following rules strictly. Trs: { f(i(x), y) -> i(x) , f(g(x, y), z) -> g(f(x, z), f(y, z)) } The induced complexity on above rules (modulo remaining rules) is YES(?,O(n^2)) . These rules are moved into the corresponding weak component(s). Sub-proof: ---------- The following argument positions are considered usable: Uargs(f) = {2}, Uargs(g) = {1, 2} TcT has computed the following constructor-restricted polynomial interpretation. [f](x1, x2) = x1 + x1*x2 + 2*x1^2 + x2 [0]() = 0 [i](x1) = 1 [g](x1, x2) = 1 + x1 + x2 [1]() = 1 [2]() = 0 This order satisfies the following ordering constraints. [f(x, 0())] = x + 2*x^2 >= x = [x] [f(f(x, y), z)] = x + 3*x*y + 4*x^2 + y + x*z + x*y*z + 2*x^2*z + y*z + 8*x^2*y + 8*x^3 + 2*x^2*y^2 + 8*x^3*y + 2*x*y^2 + 8*x^4 + 2*y*x + 2*y^2*x + 4*y*x^2 + 2*y^2 + z >= x + x*y + x*y*z + 2*x*y^2 + x*z + 2*x^2 + y + y*z + 2*y^2 + z = [f(x, f(y, z))] [f(0(), y)] = y >= y = [y] [f(i(x), y)] = 3 + 2*y > 1 = [i(x)] [f(g(x, y), z)] = 3 + 5*x + 5*y + 2*z + x*z + y*z + 2*x^2 + 2*x*y + 2*y*x + 2*y^2 > 1 + x + x*z + 2*x^2 + 2*z + y + y*z + 2*y^2 = [g(f(x, z), f(y, z))] [f(1(), g(x, y))] = 5 + 2*x + 2*y > x = [x] [f(2(), g(x, y))] = 1 + x + y > y = [y] We return to the main proof. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^2)). Strict Trs: { f(x, 0()) -> x , f(f(x, y), z) -> f(x, f(y, z)) , f(0(), y) -> y } Weak Trs: { f(i(x), y) -> i(x) , f(g(x, y), z) -> g(f(x, z), f(y, z)) , f(1(), g(x, y)) -> x , f(2(), g(x, y)) -> y } Obligation: runtime complexity Answer: YES(O(1),O(n^2)) We use the processor 'custom shape polynomial interpretation' to orient following rules strictly. Trs: { f(x, 0()) -> x , f(0(), y) -> y } The induced complexity on above rules (modulo remaining rules) is YES(?,O(n^2)) . These rules are moved into the corresponding weak component(s). Sub-proof: ---------- The following argument positions are considered usable: Uargs(f) = {2}, Uargs(g) = {1, 2} TcT has computed the following constructor-restricted polynomial interpretation. [f](x1, x2) = x1 + x1*x2 + x2 [0]() = 1 [i](x1) = 0 [g](x1, x2) = 1 + x1 + x2 [1]() = 0 [2]() = 0 This order satisfies the following ordering constraints. [f(x, 0())] = 2*x + 1 > x = [x] [f(f(x, y), z)] = x + x*y + y + x*z + x*y*z + y*z + z >= x + x*y + x*y*z + x*z + y + y*z + z = [f(x, f(y, z))] [f(0(), y)] = 1 + 2*y > y = [y] [f(i(x), y)] = y >= = [i(x)] [f(g(x, y), z)] = 1 + x + y + 2*z + x*z + y*z >= 1 + x + x*z + 2*z + y + y*z = [g(f(x, z), f(y, z))] [f(1(), g(x, y))] = 1 + x + y > x = [x] [f(2(), g(x, y))] = 1 + x + y > y = [y] We return to the main proof. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(n^2)). Strict Trs: { f(f(x, y), z) -> f(x, f(y, z)) } Weak Trs: { f(x, 0()) -> x , f(0(), y) -> y , f(i(x), y) -> i(x) , f(g(x, y), z) -> g(f(x, z), f(y, z)) , f(1(), g(x, y)) -> x , f(2(), g(x, y)) -> y } Obligation: runtime complexity Answer: YES(O(1),O(n^2)) We use the processor 'custom shape polynomial interpretation' to orient following rules strictly. Trs: { f(f(x, y), z) -> f(x, f(y, z)) } The induced complexity on above rules (modulo remaining rules) is YES(?,O(n^2)) . These rules are moved into the corresponding weak component(s). Sub-proof: ---------- The following argument positions are considered usable: Uargs(f) = {2}, Uargs(g) = {1, 2} TcT has computed the following constructor-restricted polynomial interpretation. [f](x1, x2) = 1 + 2*x1 + 2*x1*x2 + x2 [0]() = 0 [i](x1) = 0 [g](x1, x2) = 1 + x1 + x2 [1]() = 0 [2]() = 0 This order satisfies the following ordering constraints. [f(x, 0())] = 1 + 2*x > x = [x] [f(f(x, y), z)] = 3 + 4*x + 4*x*y + 2*y + 3*z + 4*x*z + 4*x*y*z + 2*y*z > 2 + 4*x + 4*x*y + 4*x*y*z + 2*x*z + 2*y + 2*y*z + z = [f(x, f(y, z))] [f(0(), y)] = 1 + y > y = [y] [f(i(x), y)] = 1 + y > = [i(x)] [f(g(x, y), z)] = 3 + 2*x + 2*y + 3*z + 2*x*z + 2*y*z >= 3 + 2*x + 2*x*z + 2*z + 2*y + 2*y*z = [g(f(x, z), f(y, z))] [f(1(), g(x, y))] = 2 + x + y > x = [x] [f(2(), g(x, y))] = 2 + x + y > y = [y] We return to the main proof. We are left with following problem, upon which TcT provides the certificate YES(O(1),O(1)). Weak Trs: { f(x, 0()) -> x , f(f(x, y), z) -> f(x, f(y, z)) , f(0(), y) -> y , f(i(x), y) -> i(x) , f(g(x, y), z) -> g(f(x, z), f(y, z)) , f(1(), g(x, y)) -> x , f(2(), g(x, y)) -> y } Obligation: runtime complexity Answer: YES(O(1),O(1)) Empty rules are trivially bounded Hurray, we answered YES(O(1),O(n^2))