Maple 2018 does it by restart; A := log((1+x[1]/(1+x[1]+(1/2)*x[2]+(1/4)*x[3]))*(1+x[2]/(1+x[2]+ (1/2)*x[3]+(1/4)*x[1]))*(1+x[3]/(1+x[3]+(1/2)*x[2]+(1/4)*x[3]))): H := VectorCalculus:-Hessian(A, [x[1], x[2], x[3]]): LinearAlgebra:-IsDefinite(H, query = 'negative_semidefinite') assuming x[1]>=0,x[1]<=1,x[2]>=0,x[2]<=1,x[3]>=0,x[3]<=1; > true Addition. Maple cracks the Wolfgang's modification too, but only for concrete values of $n$: restart; n := 25: xx := [seq(x[j], j = 1 .. n)]: A := log(mul(1+x[k]/(1+add(q^j*x[k+j], j = 0 .. n-1)), k = 1 .. n)): H := VectorCalculus:-Hessian(A, xx): LinearAlgebra:-IsDefinite(H, query = 'negative_semidefinite') assuming seq(x[s]>=0,s=1..n),seq(x[s]<=1,s=1..n),q>0,q<1 > true