package colibri2
An InvertedPath is a way to go from one subterm of patterns to substitution of triggers. It allows to know which nodes merge can create new substitutions for a pattern and how to find them. Cf Efficient E-matching + modifications
include Colibri2_popop_lib.Popop_stdlib.Datatype with type t := t
include Colibri2_popop_lib.Popop_stdlib.OrderedHashedType with type t := t
val pp : t Colibri2_popop_lib.Pp.pp
val hash_fold_t : t Base.Hash.folder
module M : Colibri2_popop_lib.Map_intf.PMap with type key = t
module H : Colibri2_popop_lib.Exthtbl.Hashtbl.S with type key = t
val exec :
_ Colibri2_core.Egraph.t ->
(Colibri2_core.Ground.Subst.S.t Trigger.M.t
* Colibri2_core.Ground.Subst.S.t Callback.M.t) ->
Colibri2_core.Node.t ->
t ->
Colibri2_core.Ground.Subst.S.t Trigger.M.t
* Colibri2_core.Ground.Subst.S.t Callback.M.t
exec d acc substs n ip
adds to acc
new substitutions to the triggers that are obtained by the execution of the invertedpath
val add_callback :
Colibri2_core.Egraph.wt ->
Pattern.t ->
(Colibri2_core.Egraph.wt -> Colibri2_core.Ground.Subst.t -> unit) ->
unit
add_callback d pat callback
wait for the pattern to be matched
val add_trigger : Colibri2_core.Egraph.wt -> Trigger.t -> unit
add_trigger d trigger
wait for the trigger to be matched
module HPP : Colibri2_core.Datastructure.Memo with type key := PP.t
module HPC : Colibri2_core.Datastructure.Memo with type key := PC.t
module HPT : Colibri2_core.Datastructure.Memo with type key := PT.t
The database of inverted path for each parent-type, needed for variables present unique times
module HPN : Colibri2_core.Datastructure.Memo with type key := PN.t
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>