let fprint_linear_cstr ff cstr =
  let fprint_term ff (k, x) =
    Format.fprintf ff "(%i * %a)" k fprint_integer_var x
  in
  match cstr with
  | Eq (terms, n) ->
      Format.fprintf ff "%a = %i"
        (fprint_list " + " fprint_term) terms
        n
  | Le (terms, n) ->
      Format.fprintf ff "%a <= %i"
        (fprint_list " + " fprint_term) terms
        n
  | Ge (terms, n) ->
      Format.fprintf ff "%a >= %i"
        (fprint_list " + " fprint_term) terms
        n