I am trying to investigate the details in which Newton polytope reduction is being incorporated in the sum of squares constraints for SumOfSquares/JuMP.
Firstly, is the Newton polytope reduction being exploited automatically? I believe this to be so if I do not impose any symmetries (e.g., imposing the constraint @constraint(model, (constraint), certificate=Certificate.Newton(SOSCone(), MB.MonomialBasis, tuple()))
yields the same number of constraints, scalars, and linear matrix variables being handed to my chosen solver as if I had implemented @constraint(model, (constraint))
, and the bases are the same), but I noticed that in the sparsity.SignSymmetry code it appears to be enforcing the Newton polytope restrictions explicitly (the function “sparsity” in sign.jl in the SumOfSquares Github repo).
Secondly, in my Julia/SumOfSquares installation multiple certificate options, including Certificate.NewtonDegreeBounds, are not available. Is this supposed to be the case for the latest SumOfSquares software, or do I need to unload and reload SumOfSquares due to some strange import glitch? Any illumination on these hopefully simple questions would be greatly appreciated.