package KaSim

  1. Overview
  2. Docs

Parameters

Signature

type t
type result =
  1. | Clash
  2. | Corrected
  3. | Blocked
  4. | Success of t
val empty : with_trace:bool -> Random.State.t -> Model.t -> Counter.t -> t
val value_alg : Counter.t -> t -> Primitives.alg_expr -> Nbr.t
val value_bool : Counter.t -> t -> (Pattern.id array list, int) Alg_expr.bool -> bool
val activity : t -> float
val get_edges : t -> Edges.t
val apply_given_rule : outputs:(Data.t -> unit) -> ?rule_id:int -> Model.t -> Counter.t -> t -> Trace.event_kind -> Primitives.elementary_rule -> result
val apply_rule : outputs:(Data.t -> unit) -> maxConsecutiveClash:int -> Model.t -> Counter.t -> t -> int option * bool * t
val force_rule : outputs:(Data.t -> unit) -> Model.t -> Counter.t -> t -> Trace.event_kind -> ?rule_id:int -> Primitives.elementary_rule -> t option
val incorporate_extra_pattern : Pattern.Env.t -> t -> Pattern.id -> t
val overwrite_var : int -> Counter.t -> t -> Primitives.alg_expr -> t
val update_outdated_activities : (int -> float -> float -> unit) -> Model.t -> Counter.t -> t -> int list -> t * int list
val snapshot : Model.t -> Counter.t -> string -> t -> Data.snapshot
val print : Model.t -> Format.formatter -> t -> unit
val get_random_state : t -> Random.State.t
val update_edges_from_actions : outputs:(Data.t -> unit) -> Signature.s -> Counter.t -> Pattern.Env.t -> t -> (Instantiation.concrete Instantiation.action list * Instantiation.concrete Instantiation.site list) -> t
val send_instances_message : Instances.message -> t -> t
type blocking_predicate = int option -> Matching.t -> Instantiation.concrete Instantiation.action list -> bool
val set_events_to_block : blocking_predicate option -> t -> t
val add_tracked : Pattern.id array -> string -> Instantiation.abstract Instantiation.test list list -> t -> t
val remove_tracked : Pattern.id array -> string option -> t -> t
val add_tracked_species : Pattern.id array -> string -> Instantiation.abstract Instantiation.test list list -> t -> t
val remove_tracked_species : string -> t -> t
type stats = {
  1. mixture_stats : Edges.stats;
}
val stats : t -> stats
val print_stats : Format.formatter -> t -> unit
val debug_print : Format.formatter -> t -> unit
val apply_concrete_positive_transformation : Signature.s -> (int, unit) Hashtbl.t -> (Instances.t * Edges.t) -> Instantiation.concrete Primitives.Transformation.t -> Instances.t * Edges.t
val add_outdated_dependencies : Operator.DepSet.t -> t -> t
val debug_print_instances : Format.formatter -> t -> unit
OCaml

Innovation. Community. Security.