Module S.TermIndex
type ttype elt= C.WithPos.t
module Leaf : Logtk.Index_intf.LEAF with type elt = eltval name : stringval empty : unit -> tval is_empty : t -> boolval size : t -> intval add : t -> Logtk.Index_intf.term -> elt -> tval add_seq : t -> (Logtk.Index_intf.term * elt) Iter.t -> tval add_list : t -> (Logtk.Index_intf.term * elt) list -> tval remove : t -> Logtk.Index_intf.term -> elt -> tval update_leaf : t -> Logtk.Index_intf.term -> (elt -> bool) -> tval remove_seq : t -> (Logtk.Index_intf.term * elt) Iter.t -> tval remove_list : t -> (Logtk.Index_intf.term * elt) list -> tval iter : t -> (Logtk.Index_intf.term -> elt -> unit) -> unitval fold : t -> ('a -> Logtk.Index_intf.term -> elt -> 'a) -> 'a -> 'aval retrieve_unifiables : t Logtk.Scoped.t -> Logtk.Index_intf.term Logtk.Scoped.t -> (Logtk.Index_intf.term * elt * Logtk.Unif_subst.t) Iter.tRetrieves a decidable fragment of unifiables. Only one unifier per subterm.
val retrieve_unifiables_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.tRetrieves all unifiables. The set of unifiers is potentially infinite. Because HO unification is undecidable, the sequence is intersperced with `None`s to ensure termination for each element of the sequence.
val retrieve_generalizations : ?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.tval retrieve_specializations : ?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.tval to_dot : elt CCFormat.printer -> t CCFormat.printerprint oneself in DOT into the given file