sig
  type 'a t = {
    mutable abstract0 : 'Apron.Abstract0.t;
    mutable env : Apron.Environment.t;
  }
  type box1 = {
    mutable interval_array : Apron.Interval.t array;
    mutable box1_env : Apron.Environment.t;
  }
  val copy :
    'Apron.Manager.t -> 'Apron.Abstract1.t -> 'Apron.Abstract1.t
  val size : 'Apron.Manager.t -> 'Apron.Abstract1.t -> int
  val minimize : 'Apron.Manager.t -> 'Apron.Abstract1.t -> unit
  val canonicalize : 'Apron.Manager.t -> 'Apron.Abstract1.t -> unit
  val hash : 'Apron.Manager.t -> 'Apron.Abstract1.t -> int
  val approximate : 'Apron.Manager.t -> 'Apron.Abstract1.t -> int -> unit
  external fdump : 'Apron.Manager.t -> 'Apron.Abstract1.t -> unit
    = "camlidl_abstract1_ap_abstract1_fdump"
  val print : Format.formatter -> 'Apron.Abstract1.t -> unit
  external bottom :
    'Apron.Manager.t -> Apron.Environment.t -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_bottom"
  external top :
    'Apron.Manager.t -> Apron.Environment.t -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_top"
  external of_box :
    'Apron.Manager.t ->
    Apron.Environment.t ->
    Apron.Var.t array -> Apron.Interval.t array -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_of_box"
  val manager : 'Apron.Abstract1.t -> 'Apron.Manager.t
  val env : 'Apron.Abstract1.t -> Apron.Environment.t
  val abstract0 : 'Apron.Abstract1.t -> 'Apron.Abstract0.t
  val is_bottom : 'Apron.Manager.t -> 'Apron.Abstract1.t -> bool
  val is_top : 'Apron.Manager.t -> 'Apron.Abstract1.t -> bool
  external is_leq :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> 'Apron.Abstract1.t -> bool
    = "camlidl_abstract1_ap_abstract1_is_leq"
  external is_eq :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> 'Apron.Abstract1.t -> bool
    = "camlidl_abstract1_ap_abstract1_is_eq"
  external sat_lincons :
    'Apron.Manager.t -> 'Apron.Abstract1.t -> Apron.Lincons1.t -> bool
    = "camlidl_abstract1_ap_abstract1_sat_lincons"
  external sat_tcons :
    'Apron.Manager.t -> 'Apron.Abstract1.t -> Apron.Tcons1.t -> bool
    = "camlidl_abstract1_ap_abstract1_sat_tcons"
  external sat_interval :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> Apron.Var.t -> Apron.Interval.t -> bool
    = "camlidl_abstract1_ap_abstract1_sat_interval"
  external is_variable_unconstrained :
    'Apron.Manager.t -> 'Apron.Abstract1.t -> Apron.Var.t -> bool
    = "camlidl_abstract1_ap_abstract1_is_variable_unconstrained"
  external bound_variable :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> Apron.Var.t -> Apron.Interval.t
    = "camlidl_abstract1_ap_abstract1_bound_variable"
  external bound_linexpr :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> Apron.Linexpr1.t -> Apron.Interval.t
    = "camlidl_abstract1_ap_abstract1_bound_linexpr"
  external bound_texpr :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> Apron.Texpr1.t -> Apron.Interval.t
    = "camlidl_abstract1_ap_abstract1_bound_texpr"
  val to_box :
    'Apron.Manager.t -> 'Apron.Abstract1.t -> Apron.Abstract1.box1
  val to_lincons_array :
    'Apron.Manager.t -> 'Apron.Abstract1.t -> Apron.Lincons1.earray
  val to_tcons_array :
    'Apron.Manager.t -> 'Apron.Abstract1.t -> Apron.Tcons1.earray
  val to_generator_array :
    'Apron.Manager.t -> 'Apron.Abstract1.t -> Apron.Generator1.earray
  external meet :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> 'Apron.Abstract1.t -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_meet"
  external meet_array :
    'Apron.Manager.t -> 'Apron.Abstract1.t array -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_meet_array"
  external meet_lincons_array :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> Apron.Lincons1.earray -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_meet_lincons_array"
  external meet_tcons_array :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> Apron.Tcons1.earray -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_meet_tcons_array"
  external join :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> 'Apron.Abstract1.t -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_join"
  external join_array :
    'Apron.Manager.t -> 'Apron.Abstract1.t array -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_join_array"
  external add_ray_array :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> Apron.Generator1.earray -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_add_ray_array"
  external meet_with :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> 'Apron.Abstract1.t -> unit
    = "camlidl_abstract1_ap_abstract1_meet_with"
  external meet_lincons_array_with :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> Apron.Lincons1.earray -> unit
    = "camlidl_abstract1_ap_abstract1_meet_lincons_array_with"
  external meet_tcons_array_with :
    'Apron.Manager.t -> 'Apron.Abstract1.t -> Apron.Tcons1.earray -> unit
    = "camlidl_abstract1_ap_abstract1_meet_tcons_array_with"
  external join_with :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> 'Apron.Abstract1.t -> unit
    = "camlidl_abstract1_ap_abstract1_join_with"
  external add_ray_array_with :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> Apron.Generator1.earray -> unit
    = "camlidl_abstract1_ap_abstract1_add_ray_array_with"
  external assign_linexpr_array :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    Apron.Var.t array ->
    Apron.Linexpr1.t array ->
    'Apron.Abstract1.t option -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_assign_linexpr_array"
  external substitute_linexpr_array :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    Apron.Var.t array ->
    Apron.Linexpr1.t array ->
    'Apron.Abstract1.t option -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_substitute_linexpr_array"
  external assign_texpr_array :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    Apron.Var.t array ->
    Apron.Texpr1.t array ->
    'Apron.Abstract1.t option -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_assign_texpr_array"
  external substitute_texpr_array :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    Apron.Var.t array ->
    Apron.Texpr1.t array ->
    'Apron.Abstract1.t option -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_substitute_texpr_array"
  external assign_linexpr_array_with :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    Apron.Var.t array ->
    Apron.Linexpr1.t array -> 'Apron.Abstract1.t option -> unit
    = "camlidl_abstract1_ap_abstract1_assign_linexpr_array_with"
  external substitute_linexpr_array_with :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    Apron.Var.t array ->
    Apron.Linexpr1.t array -> 'Apron.Abstract1.t option -> unit
    = "camlidl_abstract1_ap_abstract1_substitute_linexpr_array_with"
  external assign_texpr_array_with :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    Apron.Var.t array ->
    Apron.Texpr1.t array -> 'Apron.Abstract1.t option -> unit
    = "camlidl_abstract1_ap_abstract1_assign_texpr_array_with"
  external substitute_texpr_array_with :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    Apron.Var.t array ->
    Apron.Texpr1.t array -> 'Apron.Abstract1.t option -> unit
    = "camlidl_abstract1_ap_abstract1_substitute_texpr_array_with"
  external forget_array :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> Apron.Var.t array -> bool -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_forget_array"
  external forget_array_with :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> Apron.Var.t array -> bool -> unit
    = "camlidl_abstract1_ap_abstract1_forget_array_with"
  external change_environment :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    Apron.Environment.t -> bool -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_change_environment"
  external minimize_environment :
    'Apron.Manager.t -> 'Apron.Abstract1.t -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_minimize_environment"
  external rename_array :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    Apron.Var.t array -> Apron.Var.t array -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_rename_array"
  external change_environment_with :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> Apron.Environment.t -> bool -> unit
    = "camlidl_abstract1_ap_abstract1_change_environment_with"
  external minimize_environment_with :
    'Apron.Manager.t -> 'Apron.Abstract1.t -> unit
    = "camlidl_abstract1_ap_abstract1_minimize_environment_with"
  external rename_array_with :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> Apron.Var.t array -> Apron.Var.t array -> unit
    = "camlidl_abstract1_ap_abstract1_rename_array_with"
  external expand :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    Apron.Var.t -> Apron.Var.t array -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_expand"
  external fold :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> Apron.Var.t array -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_fold"
  external expand_with :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> Apron.Var.t -> Apron.Var.t array -> unit
    = "camlidl_abstract1_ap_abstract1_expand_with"
  external fold_with :
    'Apron.Manager.t -> 'Apron.Abstract1.t -> Apron.Var.t array -> unit
    = "camlidl_abstract1_ap_abstract1_fold_with"
  external widening :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> 'Apron.Abstract1.t -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_widening"
  external widening_threshold :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    'Apron.Abstract1.t -> Apron.Lincons1.earray -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_widening_threshold"
  external closure :
    'Apron.Manager.t -> 'Apron.Abstract1.t -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_closure"
  external closure_with : 'Apron.Manager.t -> 'Apron.Abstract1.t -> unit
    = "camlidl_abstract1_ap_abstract1_closure_with"
  val of_lincons_array :
    'Apron.Manager.t ->
    Apron.Environment.t -> Apron.Lincons1.earray -> 'Apron.Abstract1.t
  val of_tcons_array :
    'Apron.Manager.t ->
    Apron.Environment.t -> Apron.Tcons1.earray -> 'Apron.Abstract1.t
  val assign_linexpr :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    Apron.Var.t ->
    Apron.Linexpr1.t -> 'Apron.Abstract1.t option -> 'Apron.Abstract1.t
  val substitute_linexpr :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    Apron.Var.t ->
    Apron.Linexpr1.t -> 'Apron.Abstract1.t option -> 'Apron.Abstract1.t
  val assign_texpr :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    Apron.Var.t ->
    Apron.Texpr1.t -> 'Apron.Abstract1.t option -> 'Apron.Abstract1.t
  val substitute_texpr :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    Apron.Var.t ->
    Apron.Texpr1.t -> 'Apron.Abstract1.t option -> 'Apron.Abstract1.t
  val assign_linexpr_with :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    Apron.Var.t -> Apron.Linexpr1.t -> 'Apron.Abstract1.t option -> unit
  val substitute_linexpr_with :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    Apron.Var.t -> Apron.Linexpr1.t -> 'Apron.Abstract1.t option -> unit
  val assign_texpr_with :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    Apron.Var.t -> Apron.Texpr1.t -> 'Apron.Abstract1.t option -> unit
  val substitute_texpr_with :
    'Apron.Manager.t ->
    'Apron.Abstract1.t ->
    Apron.Var.t -> Apron.Texpr1.t -> 'Apron.Abstract1.t option -> unit
  external unify :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> 'Apron.Abstract1.t -> 'Apron.Abstract1.t
    = "camlidl_abstract1_ap_abstract1_unify"
  external unify_with :
    'Apron.Manager.t ->
    'Apron.Abstract1.t -> 'Apron.Abstract1.t -> unit
    = "camlidl_abstract1_ap_abstract1_unify_with"
end