Module Objective.Value

type limit_kind =
  1. | Above
  2. | Below
    (*

    Type used to discriminate between limits from above or below.

    *)
type t =
  1. | Minfinity
  2. | Pinfinity
  3. | Value of Expr.t
  4. | Limit of limit_kind * Expr.t
    (*

    This case occurs when we try to optimize a strict bound. For instance, we have a constraint of the form x < 2, there is no maximum for x but 2 is an upper bound. So 2 is a limit from below of the possible model values.

    *)
  5. | Unknown
    (*

    The value of the objective function has not yet been determined.

    *)
val pp : t Fmt.t