sig
  val meet_idcondb :
    ('a, 'b) Bddapron.Mtbdddomain0.man ->
    ('a, [> 'Bddapron.Env.typ ] as 'c, [> 'Bddapron.Env.typdef ] as 'd,
     'e)
    Bddapron.Env.O.t ->
    ('a, ('a, 'c, 'd, 'e) Bddapron.Env.O.t) Bddapron.Cond.O.t ->
    'Bddapron.Mtbdddomain0.t -> int * bool -> 'Bddapron.Mtbdddomain0.t
  val size :
    ('a, 'b) Bddapron.Mtbdddomain0.man -> 'Bddapron.Mtbdddomain0.t -> int
  val print :
    ?print_apron:((int -> string) ->
                  Format.formatter -> 'Apron.Abstract0.t -> unit) ->
    ('a, [> 'Bddapron.Env.typ ], [> 'Bddapron.Env.typdef ], 'e)
    Bddapron.Env.O.t ->
    Format.formatter -> 'Bddapron.Mtbdddomain0.t -> unit
  val bottom :
    ('a, 'b) Bddapron.Mtbdddomain0.man ->
    ('a, [> 'Bddapron.Env.typ ], [> 'Bddapron.Env.typdef ], 'e)
    Bddapron.Env.O.t -> 'Bddapron.Mtbdddomain0.t
  val top :
    ('a, 'b) Bddapron.Mtbdddomain0.man ->
    ('a, [> 'Bddapron.Env.typ ], [> 'Bddapron.Env.typdef ], 'e)
    Bddapron.Env.O.t -> 'Bddapron.Mtbdddomain0.t
  val of_apron :
    ('a, 'b) Bddapron.Mtbdddomain0.man ->
    ('a, [> 'Bddapron.Env.typ ], [> 'Bddapron.Env.typdef ], 'e)
    Bddapron.Env.O.t -> 'Apron.Abstract0.t -> 'Bddapron.Mtbdddomain0.t
  val of_bddapron :
    ('a, 'b) Bddapron.Mtbdddomain0.man ->
    ('a, [> 'Bddapron.Env.typ ], [> 'Bddapron.Env.typdef ], 'e)
    Bddapron.Env.O.t ->
    ('Bddapron.Expr0.Bool.t * 'Apron.Abstract0.t) list ->
    'Bddapron.Mtbdddomain0.t
  val is_bottom :
    ('a, 'b) Bddapron.Mtbdddomain0.man -> 'Bddapron.Mtbdddomain0.t -> bool
  val is_top :
    ('a, 'b) Bddapron.Mtbdddomain0.man -> 'Bddapron.Mtbdddomain0.t -> bool
  val is_leq :
    ('a, 'b) Bddapron.Mtbdddomain0.man ->
    'Bddapron.Mtbdddomain0.t -> 'Bddapron.Mtbdddomain0.t -> bool
  val is_eq :
    ('a, 'b) Bddapron.Mtbdddomain0.man ->
    'Bddapron.Mtbdddomain0.t -> 'Bddapron.Mtbdddomain0.t -> bool
  val to_bddapron :
    ('a, 'b) Bddapron.Mtbdddomain0.man ->
    'Bddapron.Mtbdddomain0.t ->
    ('Bddapron.Expr0.Bool.t * 'Apron.Abstract0.t) list
  val meet :
    ('a, 'b) Bddapron.Mtbdddomain0.man ->
    'Bddapron.Mtbdddomain0.t ->
    'Bddapron.Mtbdddomain0.t -> 'Bddapron.Mtbdddomain0.t
  val join :
    ('a, 'b) Bddapron.Mtbdddomain0.man ->
    'Bddapron.Mtbdddomain0.t ->
    'Bddapron.Mtbdddomain0.t -> 'Bddapron.Mtbdddomain0.t
  val meet_condition :
    ('a, 'b) Bddapron.Mtbdddomain0.man ->
    ('a, [> 'Bddapron.Env.typ ] as 'c, [> 'Bddapron.Env.typdef ] as 'd,
     'e)
    Bddapron.Env.O.t ->
    ('a, ('a, 'c, 'd, 'e) Bddapron.Env.O.t) Bddapron.Cond.O.t ->
    'Bddapron.Mtbdddomain0.t ->
    'Bddapron.Expr0.Bool.t -> 'Bddapron.Mtbdddomain0.t
  val assign_lexpr :
    ?relational:bool ->
    ?nodependency:bool ->
    ('a, 'b) Bddapron.Mtbdddomain0.man ->
    ('a, [> 'Bddapron.Env.typ ] as 'c, [> 'Bddapron.Env.typdef ] as 'd,
     'e)
    Bddapron.Env.O.t ->
    ('a, ('a, 'c, 'd, 'e) Bddapron.Env.O.t) Bddapron.Cond.O.t ->
    'Bddapron.Mtbdddomain0.t ->
    'a list ->
    'Bddapron.Expr0.t list ->
    'Bddapron.Mtbdddomain0.t option -> 'Bddapron.Mtbdddomain0.t
  val substitute_lexpr :
    ('a, 'b) Bddapron.Mtbdddomain0.man ->
    ('a, [> 'Bddapron.Env.typ ] as 'c, [> 'Bddapron.Env.typdef ] as 'd,
     'e)
    Bddapron.Env.O.t ->
    ('a, ('a, 'c, 'd, 'e) Bddapron.Env.O.t) Bddapron.Cond.O.t ->
    'Bddapron.Mtbdddomain0.t ->
    'a list ->
    'Bddapron.Expr0.t list ->
    'Bddapron.Mtbdddomain0.t option -> 'Bddapron.Mtbdddomain0.t
  val forget_list :
    ('a, 'b) Bddapron.Mtbdddomain0.man ->
    ('a, [> 'Bddapron.Env.typ ], [> 'Bddapron.Env.typdef ], 'e)
    Bddapron.Env.O.t ->
    'Bddapron.Mtbdddomain0.t -> 'a list -> 'Bddapron.Mtbdddomain0.t
  val widening :
    ('a, 'b) Bddapron.Mtbdddomain0.man ->
    'Bddapron.Mtbdddomain0.t ->
    'Bddapron.Mtbdddomain0.t -> 'Bddapron.Mtbdddomain0.t
  val widening_threshold :
    ('a, 'b) Bddapron.Mtbdddomain0.man ->
    'Bddapron.Mtbdddomain0.t ->
    'Bddapron.Mtbdddomain0.t ->
    Apron.Lincons0.t array -> 'Bddapron.Mtbdddomain0.t
  val apply_change :
    bottom:'Bddapron.Mtbdddomain0.t ->
    ('a, 'b) Bddapron.Mtbdddomain0.man ->
    'Bddapron.Mtbdddomain0.t ->
    Bddapron.Env.change -> 'Bddapron.Mtbdddomain0.t
  val apply_permutation :
    ('a, 'b) Bddapron.Mtbdddomain0.man ->
    'Bddapron.Mtbdddomain0.t ->
    int array option * Apron.Dim.perm option -> 'Bddapron.Mtbdddomain0.t
end