sidekick/src/cc/Sidekick_cc.mli

33 lines
694 B
OCaml

(** Congruence Closure Implementation *)
module View = Sidekick_sigs_cc.View
open Sidekick_sigs_cc
module type ARG = ARG
module type S = sig
include S
val create :
?stat:Stat.t -> ?size:[ `Small | `Big ] -> term_store -> proof_trace -> t
(** Create a new congruence closure.
@param term_store used to be able to create new terms. All terms
interacting with this congruence closure must belong in this term state
as well. *)
(**/**)
module Debug_ : sig
val pp : t Fmt.printer
(** Print the whole CC *)
end
(**/**)
end
module Make (A : ARG) :
S
with module T = A.T
and module Lit = A.Lit
and module Proof_trace = A.Proof_trace