We can generalize our treatment of measures to allow constraint-like expressions as input to enable things like chance-constraints and exceedance probabilities, since all of these entities essentially implement a measure that operates on a constraint-like (i.e., threshold) condition.
Reformulation in these cases will typically involve expanding in-place and typically defining auxiliary constraints and variables (e.g., big-M constraints). This would be a useful feature for better enabling risk measures as well. Programmatically, the paradigm we'll might want to add on is tracking variables and/or constraints that are made by measures to prevent unnecessary duplication
We can generalize our treatment of measures to allow constraint-like expressions as input to enable things like chance-constraints and exceedance probabilities, since all of these entities essentially implement a measure that operates on a constraint-like (i.e., threshold) condition.
Reformulation in these cases will typically involve expanding in-place and typically defining auxiliary constraints and variables (e.g., big-M constraints). This would be a useful feature for better enabling risk measures as well. Programmatically, the paradigm we'll might want to add on is tracking variables and/or constraints that are made by measures to prevent unnecessary duplication