sig
type t
and ext = Term.Var.Set.t
val eq : t -> t -> bool
val pp : t Pretty.printer
val empty : t
val is_empty : t -> bool
val is_dependent : t -> Term.t -> bool
val is_independent : t -> Term.t -> bool
val iter : (Fact.Equal.t -> unit) -> t -> unit
val fold : (Fact.Equal.t -> 'a -> 'a) -> t -> 'a -> 'a
val for_all : (Fact.Equal.t -> bool) -> t -> bool
val exists : (Fact.Equal.t -> bool) -> t -> bool
val to_list : t -> Fact.Equal.t list
val equality : t -> Term.t -> Fact.Equal.t
val apply : t -> Jst.Eqtrans.t
val find : t -> Jst.Eqtrans.t
val inv : t -> Jst.Eqtrans.t
val dep : t -> Term.t -> Term.Var.Set.t
val ext : t -> ext
module Dep :
sig
type eqs = t
val iter : eqs -> (Fact.Equal.t -> unit) -> Term.t -> unit
val fold : eqs -> (Fact.Equal.t -> 'a -> 'a) -> Term.t -> 'a -> 'a
val for_all : eqs -> (Fact.Equal.t -> bool) -> Term.t -> bool
val exists : eqs -> (Fact.Equal.t -> bool) -> Term.t -> bool
val choose : eqs -> (Fact.Equal.t -> bool) -> Term.t -> Fact.Equal.t
end
val restrict : t -> Term.t -> unit
type config = Partition.t * t
val update : config -> Fact.Equal.t -> unit
val diff : t -> t -> t
val copy : t -> t
end