sig
type rule = private Mk of Term.term * Term.term
val mk : Term.term * Term.term -> Rule.rule
val compare : Rule.rule -> Rule.rule -> int
val eq : Rule.rule -> Rule.rule -> bool
val fprintf : Rule.rule Useful.fprintf
module OrdRul :
sig
type t = rule
val compare : t -> t -> int
val fprintf : t Useful.fprintf
end
module RulSet :
sig
type elt = rule
type t
val empty : t
val is_empty : t -> bool
val mem : elt -> t -> bool
val add : elt -> t -> t
val singleton : elt -> t
val remove : elt -> t -> t
val union : t -> t -> t
val inter : t -> t -> t
val diff : t -> t -> t
val compare : t -> t -> int
val equal : t -> t -> bool
val subset : t -> t -> bool
val iter : (elt -> unit) -> t -> unit
val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
val for_all : (elt -> bool) -> t -> bool
val exists : (elt -> bool) -> t -> bool
val filter : (elt -> bool) -> t -> t
val partition : (elt -> bool) -> t -> t * t
val cardinal : t -> int
val elements : t -> elt list
val min_elt : t -> elt
val max_elt : t -> elt
val choose : t -> elt
val split : elt -> t -> t * bool * t
val map : (elt -> elt) -> t -> t
val map_filter : (elt -> elt option) -> t -> t
val find : (elt -> bool) -> t -> elt
val find_opt : (elt -> 'a option) -> t -> 'a option
val of_list : elt list -> t
val of_list_map : ('a -> elt) -> 'a list -> t
val fprintf : t Useful.fprintf
val union_map : ('a -> t) -> 'a list -> t
end
val symbols_of_rule : Rule.rule -> Symb.SymbolSet.t
val symbols_of_rules : Rule.RulSet.t -> Symb.SymbolSet.t
end