Module Kappa_runtime.Instances
include Instances_sig.S
val receive_message : message -> t -> t
val empty : Kappa_terms.Model.t -> t
val debug_print : Format.formatter -> t -> unit
Updating the roots
val incorporate_extra_pattern : t -> Kappa_terms.Pattern.id -> Kappa_generic_toolset.IntCollection.t -> unit
val break_apart_cc : t -> Kappa_mixtures.Edges.t -> ?mod_connectivity_store:Roots.mod_ccs_cache -> (int * int) option -> unit
val merge_cc : t -> ?mod_connectivity_store:Roots.mod_ccs_cache -> (int * int) option -> unit
val update_roots : t -> bool -> Kappa_terms.Pattern.Set.t -> Kappa_mixtures.Edges.t -> Roots.mod_ccs_cache -> Kappa_terms.Pattern.id -> int -> unit
Checking instances
val is_valid : t -> Kappa_terms.Pattern.id -> int -> bool
Counting instances
val number_of_instances : ?rule_id:int -> t -> Kappa_terms.Pattern.id array -> int
number_of_instances ?rule_id state patterns
val number_of_unary_instances_in_cc : ?rule_id:int -> t -> (Kappa_terms.Pattern.id * Kappa_terms.Pattern.id) -> int -> int
number_of_unary_instances_in_cc ?rule_id state (pat1, pat2) cc
Picking instances
val pick_unary_instance_in_cc : ?rule_id:int -> t -> Random.State.t -> (Kappa_terms.Pattern.id * Kappa_terms.Pattern.id) -> int -> int * int
pick_unary_instance_in_cc state random_state (pat1, pat2) cc
Returns a pair of roots corresponding topat1
andpat2
respectively. Optimized for currying before thecc
argument. In case of failure, one of the resulting roots is set to(-1)
.
val fold_picked_instance : ?rule_id:int -> t -> Random.State.t -> Kappa_terms.Pattern.id array -> init:'a -> (int -> Kappa_terms.Pattern.id -> int -> 'a -> 'a option) -> 'a option
fold_picked_instances state random_state patterns ~init f
withf pat_id_in_array pat corresponding_root acc
. Monadic fold function that callsf
for every root of a random embedding frompatterns
in the mixture. This function is lazy in the sense it stops to draw roots when the accumulator besomes `None`.
Enumerating instances
val fold_instances : ?rule_id:int -> ?excp:(Kappa_terms.Pattern.id * int) -> t -> Kappa_terms.Pattern.id array -> init:'a -> (int array -> 'a -> 'a) -> 'a
fold_enumerated_instances state patterns ~init f
withf roots acc
. Folds through every rectangular instance of an array of patterns.
val fold_unary_instances : ?rule_id:int -> t -> (Kappa_terms.Pattern.id * Kappa_terms.Pattern.id) -> init:'a -> ((int * int) -> 'a -> 'a) -> 'a
fold_unary_instances state (pat1, pat2) ~init f
withf (root1, root2) acc
.