package colibri2

  1. Overview
  2. Docs

Attach a callback executed when different modifications of the Egraph happens

The callback are not interrupted by other callbacks. They are scheduled to run as soon as possible during the propagation phase

val attach_dom : _ Egraph.t -> ?thterm:ThTerm.t -> ?direct:bool -> Node.t -> 'a Dom.Kind.t -> (Egraph.wt -> Node.t -> unit) -> unit

attach_dom d ?direct n dom callback The callback is scheduled when the domain dom of the equivalence class of n is modified. If direct is true (default) the callback is scheduled immediately if the domain is already set.

val attach_any_dom : _ Egraph.t -> ?thterm:ThTerm.t -> 'a Dom.Kind.t -> (Egraph.wt -> Node.t -> unit) -> unit
val attach_value : _ Egraph.t -> ?thterm:ThTerm.t -> ?direct:bool -> Node.t -> ('a, 'b) Value.Kind.t -> (Egraph.wt -> Node.t -> 'b -> unit) -> unit
val attach_any_value : _ Egraph.t -> ?thterm:ThTerm.t -> ?direct:bool -> Node.t -> (Egraph.wt -> Node.t -> Value.t -> unit) -> unit
val attach_reg_any : _ Egraph.t -> ?thterm:ThTerm.t -> (Egraph.wt -> Node.t -> unit) -> unit
val attach_reg_node : _ Egraph.t -> ?thterm:ThTerm.t -> Node.t -> (Egraph.wt -> Node.t -> unit) -> unit
val attach_reg_sem : _ Egraph.t -> ?thterm:ThTerm.t -> ('a, 'b) ThTerm.Kind.t -> (Egraph.wt -> 'b -> unit) -> unit
val attach_reg_value : _ Egraph.t -> ?thterm:ThTerm.t -> ('a, 'b) Value.Kind.t -> (Egraph.wt -> 'b -> unit) -> unit
val attach_repr : _ Egraph.t -> ?thterm:ThTerm.t -> Node.t -> (Egraph.wt -> Node.t -> unit) -> unit
val attach_any_repr : _ Egraph.t -> ?thterm:ThTerm.t -> (Egraph.wt -> Node.t -> unit) -> unit
val schedule_immediately : _ Egraph.t -> ?thterm:Colibri2_core__.Nodes.ThTerm.t -> (Egraph.wt -> unit) -> unit
OCaml

Innovation. Community. Security.