sig
  type 'a atom =
      Tbool of 'a * bool
    | Tint of 'a * int list
    | Tenum of 'a * 'a list
  type 'a term =
      Tatom of 'Expr0.O.Expr.atom
    | Texternal of (int * bool)
    | Tcst of bool
  type 'a conjunction = Conjunction of 'Expr0.O.Expr.term list | Cfalse
  type 'a disjunction =
      Disjunction of 'Expr0.O.Expr.conjunction list
    | Dtrue
  val map_atom : ('-> 'b) -> 'Expr0.O.Expr.atom -> 'Expr0.O.Expr.atom
  val map_term : ('-> 'b) -> 'Expr0.O.Expr.term -> 'Expr0.O.Expr.term
  val map_conjunction :
    ('-> 'b) -> 'Expr0.O.Expr.conjunction -> 'Expr0.O.Expr.conjunction
  val map_disjunction :
    ('-> 'b) -> 'Expr0.O.Expr.disjunction -> 'Expr0.O.Expr.disjunction
  val term_of_vint : '-> 'Int.t -> Reg.Minterm.t -> 'Expr0.O.Expr.term
  val term_of_venum :
    ('a, [> 'Env.typ ], [> 'Env.typdef ], 'b, 'c) Env.O.t ->
    '-> 'Enum.t -> Reg.Minterm.t -> 'Expr0.O.Expr.term
  val term_of_idcondb :
    ('a, [> 'Env.typ ], [> 'Env.typdef ], 'b, 'c) Env.O.t ->
    int * bool -> 'Expr0.O.Expr.term
  val bool_of_tbool : Cudd.Man.tbool -> bool
  val mand :
    'Expr0.O.Expr.term list Pervasives.ref -> 'Expr0.O.Expr.term -> unit
  val conjunction_of_minterm :
    ('a, [> 'Env.typ ], [> 'Env.typdef ], 'b, 'c) Env.O.t ->
    Cudd.Man.tbool array -> 'Expr0.O.Expr.conjunction
  val disjunction_of_bdd :
    ('a, [> 'Env.typ ], [> 'Env.typdef ], 'b, 'c) Env.O.t ->
    'Cudd.Bdd.t -> 'Expr0.O.Expr.disjunction
  val print_term :
    ?print_external_idcondb:(Format.formatter -> int * bool -> unit) ->
    ('a, [> 'Env.typ ], [> 'Env.typdef ], 'b, 'c) Env.O.t ->
    Format.formatter -> 'Expr0.O.Expr.term -> unit
  val print_conjunction :
    ?print_external_idcondb:(Format.formatter -> int * bool -> unit) ->
    ('a, [> 'Env.typ ], [> 'Env.typdef ], 'b, 'c) Env.O.t ->
    Format.formatter -> 'Expr0.O.Expr.conjunction -> unit
  val print_disjunction :
    ?print_external_idcondb:(Format.formatter -> int * bool -> unit) ->
    ('a, [> 'Env.typ ], [> 'Env.typdef ], 'b, 'c) Env.O.t ->
    Format.formatter -> 'Expr0.O.Expr.disjunction -> unit
end