R<=R12;
and R<=R10+R20;
are both {concave} <= {concave} .
That is because R10, R12, R20
are all concave. R
is the min of concave arguments, so is also concave.
The constraint R<=R12;
must always hold, and therefore can be eliminated from the problem formulation. The same with R<=R10+R20;
. In both cases, these constraints are of the form: min of {something} and {something else} <= {something}
., so of course are always satisfied.
So you’re right. Code 2 is a convex optimization problem, or in any event is equivalent to the convex optimization problem obtained by eliminating the two vacuous constraints.
As to what problem(s) you actually want to solve, I will not hazard a guess.