sig
  type struct_sum =
      Struct of Structure.structure
    | Sum of
        ((string * string) list *
         (string * (Formula.fo_var list * Formula.formula)) list)
  type structure_class = (string * Class.struct_sum list) list
  val struct_sum_str : Class.struct_sum -> string
  val str : Class.structure_class -> string
  val split : Formula.formula -> Class.struct_sum -> Formula.formula
  val split_simplify :
    ?get_ids:bool -> Formula.formula -> Class.struct_sum -> Formula.formula
  val decompose :
    ?get_ids:bool ->
    Formula.formula ->
    Class.struct_sum -> (string * Formula.formula) list list
  val check : string -> Class.structure_class -> Formula.formula -> bool
end