I have what would be a straightforward mixed-integer linear programming problem, except for the fact that some of the constraints are of the form $f(x_1,x_2,x_3,\ldots,x_n) < c$, where $f$ is 'take the maximum of the largest coordinate and the sum of all the smaller ones'
In lisp:
(defn f [& l]
(let [sl (reverse (sort l))]
(max (first sl) (reduce + (rest sl)))))
(f 1 2 3 4 5) -> 10
In three dimensions e.g. I think I can rephrase this for e.g. $f<10$ as
(defn constraint [x,y,z]
(or
(and (<= x 10)
(<= (+ y z) 10))
(and (<= y 10)
(<= (+ x z) 10))
(and (<= z 10)
(<= (+ x y) 10))))
Which is clearly the union of $3$ (or $n$) convex objects (prisms).
Is there a name for this type of constraint? Are there techniques and packages for solving these kinds of problems?