sig
  module Lsd = LockStepDriver
  type term = Term.t
  type 'a map = 'Term.TermHashtbl.t
  type set = Term.TermSet.t
  val write_dot_to :
    string ->
    string -> string -> (Format.formatter -> '-> unit) -> '-> unit
  module type Graph =
    sig
      module Domain : InvGenDomain.Domain
      type graph
      val mk : InvGenGraph.term -> InvGenGraph.set -> InvGenGraph.Graph.graph
      val has_svars : InvGenGraph.Graph.graph -> bool
      val mine :
        bool ->
        bool ->
        Analysis.param ->
        TransSys.t ->
        (TransSys.t -> unit) ->
        (TransSys.t * InvGenGraph.Graph.graph * InvGenGraph.set *
         InvGenGraph.set)
        list
      val clone : InvGenGraph.Graph.graph -> InvGenGraph.Graph.graph
      val term_count : InvGenGraph.Graph.graph -> int
      val class_count : InvGenGraph.Graph.graph -> int
      val is_stale : InvGenGraph.Graph.graph -> bool
      val drop_class_member :
        InvGenGraph.Graph.graph ->
        InvGenGraph.term -> InvGenGraph.term -> unit
      val fmt_graph_dot : Format.formatter -> InvGenGraph.Graph.graph -> unit
      val fmt_graph_classes_dot :
        Format.formatter -> InvGenGraph.Graph.graph -> unit
      val check_graph : InvGenGraph.Graph.graph -> bool
      val terms_of :
        InvGenGraph.Graph.graph ->
        (InvGenGraph.term -> bool) -> InvGenGraph.term list
      val equalities_of :
        InvGenGraph.Graph.graph ->
        (InvGenGraph.term -> bool) ->
        (InvGenGraph.term * (InvGenGraph.term * InvGenGraph.term)) list
      val relations_of :
        InvGenGraph.Graph.graph ->
        (InvGenGraph.term * unit) list ->
        (InvGenGraph.term -> bool) -> (InvGenGraph.term * unit) list
      val stabilize :
        InvGenGraph.Graph.graph ->
        TransSys.t -> (InvGenGraph.term -> bool) -> Lsd.base -> unit
      val step_stabilize :
        bool ->
        InvGenGraph.Graph.graph ->
        TransSys.t ->
        (InvGenGraph.term -> bool) ->
        Lsd.step -> ((Term.t * Certificate.t) list -> unit) -> Term.t list
    end
  module Bool : Graph
  module Int : Graph
  module Real : Graph
  module EqOnly :
    sig module Bool : Graph module Int : Graph module Real : Graph end
end