YES(?,O(n^2)) Problem: f(0()) -> s(0()) f(s(0())) -> s(s(0())) f(s(0())) -> *(s(s(0())),f(0())) f(+(x,s(0()))) -> +(s(s(0())),f(x)) f(+(x,y)) -> *(f(x),f(y)) Proof: Complexity Transformation Processor: strict: f(0()) -> s(0()) f(s(0())) -> s(s(0())) f(s(0())) -> *(s(s(0())),f(0())) f(+(x,s(0()))) -> +(s(s(0())),f(x)) f(+(x,y)) -> *(f(x),f(y)) weak: Matrix Interpretation Processor: dimension: 1 max_matrix: 1 interpretation: [+](x0, x1) = x0 + x1 + 1, [*](x0, x1) = x0 + x1, [s](x0) = x0, [f](x0) = x0, [0] = 0 orientation: f(0()) = 0 >= 0 = s(0()) f(s(0())) = 0 >= 0 = s(s(0())) f(s(0())) = 0 >= 0 = *(s(s(0())),f(0())) f(+(x,s(0()))) = x + 1 >= x + 1 = +(s(s(0())),f(x)) f(+(x,y)) = x + y + 1 >= x + y = *(f(x),f(y)) problem: strict: f(0()) -> s(0()) f(s(0())) -> s(s(0())) f(s(0())) -> *(s(s(0())),f(0())) f(+(x,s(0()))) -> +(s(s(0())),f(x)) weak: f(+(x,y)) -> *(f(x),f(y)) Matrix Interpretation Processor: dimension: 1 max_matrix: 1 interpretation: [+](x0, x1) = x0 + x1 + 1, [*](x0, x1) = x0 + x1, [s](x0) = x0, [f](x0) = x0 + 1, [0] = 1 orientation: f(0()) = 2 >= 1 = s(0()) f(s(0())) = 2 >= 1 = s(s(0())) f(s(0())) = 2 >= 3 = *(s(s(0())),f(0())) f(+(x,s(0()))) = x + 3 >= x + 3 = +(s(s(0())),f(x)) f(+(x,y)) = x + y + 2 >= x + y + 2 = *(f(x),f(y)) problem: strict: f(s(0())) -> *(s(s(0())),f(0())) f(+(x,s(0()))) -> +(s(s(0())),f(x)) weak: f(0()) -> s(0()) f(s(0())) -> s(s(0())) f(+(x,y)) -> *(f(x),f(y)) Matrix Interpretation Processor: dimension: 2 max_matrix: [1 1] [0 1] interpretation: [1 1] [1 1] [0] [+](x0, x1) = [0 1]x0 + [0 1]x1 + [1], [1 0] [1 0] [*](x0, x1) = [0 0]x0 + [0 0]x1, [1 0] [0] [s](x0) = [0 0]x0 + [1], [1 1] [f](x0) = [0 1]x0, [0] [0] = [1] orientation: [1] [1] f(s(0())) = [1] >= [0] = *(s(s(0())),f(0())) [1 2] [3] [1 2] [1] f(+(x,s(0()))) = [0 1]x + [2] >= [0 1]x + [2] = +(s(s(0())),f(x)) [1] [0] f(0()) = [1] >= [1] = s(0()) [1] [0] f(s(0())) = [1] >= [1] = s(s(0())) [1 2] [1 2] [1] [1 1] [1 1] f(+(x,y)) = [0 1]x + [0 1]y + [1] >= [0 0]x + [0 0]y = *(f(x),f(y)) problem: strict: f(s(0())) -> *(s(s(0())),f(0())) weak: f(+(x,s(0()))) -> +(s(s(0())),f(x)) f(0()) -> s(0()) f(s(0())) -> s(s(0())) f(+(x,y)) -> *(f(x),f(y)) Matrix Interpretation Processor: dimension: 2 max_matrix: [1 1] [0 1] interpretation: [+](x0, x1) = x0 + x1, [1 0] [1 0] [*](x0, x1) = [0 0]x0 + [0 0]x1, [1 0] [0] [s](x0) = [0 0]x0 + [1], [1 1] [0] [f](x0) = [0 1]x0 + [1], [0] [0] = [0] orientation: [1] [0] f(s(0())) = [2] >= [0] = *(s(s(0())),f(0())) [1 1] [1] [1 1] [0] f(+(x,s(0()))) = [0 1]x + [2] >= [0 1]x + [2] = +(s(s(0())),f(x)) [0] [0] f(0()) = [1] >= [1] = s(0()) [1] [0] f(s(0())) = [2] >= [1] = s(s(0())) [1 1] [1 1] [0] [1 1] [1 1] f(+(x,y)) = [0 1]x + [0 1]y + [1] >= [0 0]x + [0 0]y = *(f(x),f(y)) problem: strict: weak: f(s(0())) -> *(s(s(0())),f(0())) f(+(x,s(0()))) -> +(s(s(0())),f(x)) f(0()) -> s(0()) f(s(0())) -> s(s(0())) f(+(x,y)) -> *(f(x),f(y)) Qed