Module TermIndex.Leaf

type t
type elt = elt
val empty : t
val add : t -> Logtk.Index_intf.term -> elt -> t
val remove : t -> Logtk.Index_intf.term -> elt -> t
val update_leaf : t -> Logtk.Index_intf.term -> (elt -> bool) -> t
val is_empty : t -> bool
val iter : t -> (Logtk.Index_intf.term -> elt -> unit) -> unit
val fold : t -> 'a -> ('a -> Logtk.Index_intf.term -> elt -> 'a) -> 'a
val size : t -> int
val fold_unify : t Logtk.Scoped.t -> Logtk.Index_intf.term Logtk.Scoped.t -> (Logtk.Index_intf.term * elt * Logtk.Unif_subst.t) Iter.t
val fold_unify_complete : unif_alg:(Logtk.Term.t Logtk.Scoped.t -> Logtk.Term.t Logtk.Scoped.t -> Logtk.Unif_subst.t option OSeq.t) -> t Logtk.Scoped.t -> Logtk.Index_intf.term Logtk.Scoped.t -> (Logtk.Index_intf.term * elt * Logtk.Unif_subst.t option OSeq.t) Iter.t
val fold_match : ?⁠subst:Logtk.Index_intf.subst -> t Logtk.Scoped.t -> Logtk.Index_intf.term Logtk.Scoped.t -> (Logtk.Index_intf.term * elt * Logtk.Index_intf.subst) Iter.t

Match the indexed terms against the given query term

val fold_matched : ?⁠subst:Logtk.Index_intf.subst -> t Logtk.Scoped.t -> Logtk.Index_intf.term Logtk.Scoped.t -> (Logtk.Index_intf.term * elt * Logtk.Index_intf.subst) Iter.t

Match the query term against the indexed terms