Implicit constraints in convex optimization

Hello, I would I like to ask a theoretical question: Consider a convex optimization problem where ln(x) appears in the objective function (among other things) where x is a scalar. Then the constraint x >= 0 is -implicit- in that it need not be explicitly formulated in CVX. I have checked in a variety of numerical examples that the default solver works correctly without explicitly modeling the constraint x >= 0. My question is: Where can I find a proof of this that it always works correctly? I have checked Professor Boyd’s book but I couldn’t find the proof. Furthermore: Does that work in all convex optimization problems and for what kinds of solution algorithms? Thanks.

Because when you actually model logarithm in conic form, which is what CVX does, then the definition of the cone (in this case exponential cone) imposes the extra restriction. You can read in 5 Exponential cone optimization — MOSEK Modeling Cookbook 3.3.1 , esp. section 5.2.2.

Thank you for the response - that makes sense. Still the literature is very sparse on this important topic of implicit constraints.

There isn’t really such a thing as implicit constraints in the mathematical formulation of optimization problems. The documentation of CVX, CVXPY or any other modeling tool should tell you what additional constraints each atom has. Then the cone in the final conic model is a completely explicit set. These two pieces of information should agree, which mostly is the responsibility of the documentation of the higher-level tool. That’s all.

For example the documentation of quad_over_lin in Reference guide — CVX Users' Guide says “In CVX specification, adds constraint that (y>0)” etc.

Thank you for your remark.

However, I disagree that the concept of ‘implicit constraints’ is void in mathematical formulations (and that is precisely my point that it warrants a rigorous treatment, which right now is scarce). For example: Implicit (e.g., nonnegativity) constraints are immensely helpful to simplify a dual formulation (as it can save you a bunch on dual variables). I can give several examples on this (i.e., on eliminating explicit constraints being desirable when they are implicit by the functions).

One can imagine a general theorem on implicit constraints in formulating duals (which right now does not exist, as far as I know).

What is even less clear though is what is a general approach for eliminating explicit constraints (and making them implicit) from an algorithmic (rather than a duality) perspective. That would be very helpful to enable simpler algorithms for some problems.