/// This rule simplifies expressions where the operator is applied to an empty set of sub-expressions.
_ => And(Metadata::new(), vec![]), // TODO: (yb33) Change it to a simple vector after we refactor our model,
* Turn a Min into a new variable and post a top-level constraint to ensure the new variable is the minimum.
let mut new_top = Vec::new(); // the new variable must be less than or equal to all the other variables
* Turn a Max into a new variable and post a top level constraint to ensure the new variable is the maximum.
let mut new_top = Vec::new(); // the new variable must be more than or equal to all the other variables
let mut disjunction = Vec::new(); // the new variable must more than or equal to one of the variables