sig
  type t = { mutable lincons0 : Lincons0.t; mutable env : Environment.t; }
  and earray = {
    mutable lincons0_array : Lincons0.t array;
    mutable array_env : Environment.t;
  }
  type typ = Lincons0.typ = EQ | SUPEQ | SUP | DISEQ | EQMOD of Scalar.t
  val make : Linexpr1.t -> Lincons1.typ -> Lincons1.t
  val copy : Lincons1.t -> Lincons1.t
  val string_of_typ : Lincons1.typ -> string
  val print : Format.formatter -> Lincons1.t -> unit
  val get_typ : Lincons1.t -> Lincons1.typ
  val iter : (Coeff.t -> Var.t -> unit) -> Lincons1.t -> unit
  val get_cst : Lincons1.t -> Coeff.t
  val set_typ : Lincons1.t -> Lincons1.typ -> unit
  val set_list :
    Lincons1.t -> (Coeff.t * Var.t) list -> Coeff.t option -> unit
  val set_array :
    Lincons1.t -> (Coeff.t * Var.t) array -> Coeff.t option -> unit
  val set_cst : Lincons1.t -> Coeff.t -> unit
  external get_coeff : Lincons1.t -> Var.t -> Coeff.t
    = "camlidl_lincons1_ap_lincons1_get_coeff"
  external set_coeff : Lincons1.t -> Var.t -> Coeff.t -> unit
    = "camlidl_lincons1_ap_lincons1_set_coeff"
  external make_unsat : Environment.t -> Lincons1.t
    = "camlidl_lincons1_ap_lincons1_make_unsat"
  external is_unsat : Lincons1.t -> bool
    = "camlidl_lincons1_ap_lincons1_is_unsat"
  external extend_environment : Lincons1.t -> Environment.t -> Lincons1.t
    = "camlidl_lincons1_ap_lincons1_extend_environment"
  external extend_environment_with : Lincons1.t -> Environment.t -> unit
    = "camlidl_lincons1_ap_lincons1_extend_environment_with"
  val get_env : Lincons1.t -> Environment.t
  val get_linexpr1 : Lincons1.t -> Linexpr1.t
  val get_lincons0 : Lincons1.t -> Lincons0.t
  val array_make : Environment.t -> int -> Lincons1.earray
  val array_print :
    ?first:(unit, Format.formatter, unit) Pervasives.format ->
    ?sep:(unit, Format.formatter, unit) Pervasives.format ->
    ?last:(unit, Format.formatter, unit) Pervasives.format ->
    Format.formatter -> Lincons1.earray -> unit
  val array_length : Lincons1.earray -> int
  val array_get_env : Lincons1.earray -> Environment.t
  val array_get : Lincons1.earray -> int -> Lincons1.t
  val array_set : Lincons1.earray -> int -> Lincons1.t -> unit
  external array_extend_environment :
    Lincons1.earray -> Environment.t -> Lincons1.earray
    = "camlidl_lincons1_ap_lincons1_array_extend_environment"
  external array_extend_environment_with :
    Lincons1.earray -> Environment.t -> unit
    = "camlidl_lincons1_ap_lincons1_array_extend_environment_with"
end