MAYBE Problem: double(0()) -> 0() double(s(x)) -> s(s(double(x))) half(0()) -> 0() half(s(0())) -> 0() half(s(s(x))) -> s(half(x)) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) if(0(),y,z) -> y if(s(x),y,z) -> z half(double(x)) -> x Proof: Complexity Transformation Processor: strict: double(0()) -> 0() double(s(x)) -> s(s(double(x))) half(0()) -> 0() half(s(0())) -> 0() half(s(s(x))) -> s(half(x)) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) if(0(),y,z) -> y if(s(x),y,z) -> z half(double(x)) -> x weak: Matrix Interpretation Processor: dimension: 1 max_matrix: 1 interpretation: [if](x0, x1, x2) = x0 + x1 + x2, [-](x0, x1) = x0 + x1, [half](x0) = x0 + 1, [s](x0) = x0, [double](x0) = x0, [0] = 0 orientation: double(0()) = 0 >= 0 = 0() double(s(x)) = x >= x = s(s(double(x))) half(0()) = 1 >= 0 = 0() half(s(0())) = 1 >= 0 = 0() half(s(s(x))) = x + 1 >= x + 1 = s(half(x)) -(x,0()) = x >= x = x -(s(x),s(y)) = x + y >= x + y = -(x,y) if(0(),y,z) = y + z >= y = y if(s(x),y,z) = x + y + z >= z = z half(double(x)) = x + 1 >= x = x problem: strict: double(0()) -> 0() double(s(x)) -> s(s(double(x))) half(s(s(x))) -> s(half(x)) -(x,0()) -> x -(s(x),s(y)) -> -(x,y) if(0(),y,z) -> y if(s(x),y,z) -> z weak: half(0()) -> 0() half(s(0())) -> 0() half(double(x)) -> x Matrix Interpretation Processor: dimension: 1 max_matrix: 1 interpretation: [if](x0, x1, x2) = x0 + x1 + x2 + 1, [-](x0, x1) = x0 + x1, [half](x0) = x0, [s](x0) = x0, [double](x0) = x0 + 1, [0] = 1 orientation: double(0()) = 2 >= 1 = 0() double(s(x)) = x + 1 >= x + 1 = s(s(double(x))) half(s(s(x))) = x >= x = s(half(x)) -(x,0()) = x + 1 >= x = x -(s(x),s(y)) = x + y >= x + y = -(x,y) if(0(),y,z) = y + z + 2 >= y = y if(s(x),y,z) = x + y + z + 1 >= z = z half(0()) = 1 >= 1 = 0() half(s(0())) = 1 >= 1 = 0() half(double(x)) = x + 1 >= x = x problem: strict: double(s(x)) -> s(s(double(x))) half(s(s(x))) -> s(half(x)) -(s(x),s(y)) -> -(x,y) weak: double(0()) -> 0() -(x,0()) -> x if(0(),y,z) -> y if(s(x),y,z) -> z half(0()) -> 0() half(s(0())) -> 0() half(double(x)) -> x Matrix Interpretation Processor: dimension: 1 max_matrix: 1 interpretation: [if](x0, x1, x2) = x0 + x1 + x2, [-](x0, x1) = x0 + x1, [half](x0) = x0, [s](x0) = x0 + 1, [double](x0) = x0, [0] = 0 orientation: double(s(x)) = x + 1 >= x + 2 = s(s(double(x))) half(s(s(x))) = x + 2 >= x + 1 = s(half(x)) -(s(x),s(y)) = x + y + 2 >= x + y = -(x,y) double(0()) = 0 >= 0 = 0() -(x,0()) = x >= x = x if(0(),y,z) = y + z >= y = y if(s(x),y,z) = x + y + z + 1 >= z = z half(0()) = 0 >= 0 = 0() half(s(0())) = 1 >= 0 = 0() half(double(x)) = x >= x = x problem: strict: double(s(x)) -> s(s(double(x))) weak: half(s(s(x))) -> s(half(x)) -(s(x),s(y)) -> -(x,y) double(0()) -> 0() -(x,0()) -> x if(0(),y,z) -> y if(s(x),y,z) -> z half(0()) -> 0() half(s(0())) -> 0() half(double(x)) -> x Open