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