Module Kappa_terms.LKappa
type ('a, 'annot) link=|ANY_FREE|LNK_VALUE of int * 'annot|LNK_FREE|LNK_ANY|LNK_SOME|LNK_TYPE of 'a * 'aport * agent_type
type switching=|Linked of int|Freed|Maintained|Erasedtype rule_internal=|I_ANY|I_ANY_CHANGED of int|I_ANY_ERASED|I_VAL_CHANGED of int * int|I_VAL_ERASED of inttype rule_agent={ra_type : int;ra_erased : bool;ra_ports : ((int, int * int) link Kappa_generic_toolset.Locality.annot * switching) array;ra_ints : rule_internal array;ra_syntax : (((int, int * int) link Kappa_generic_toolset.Locality.annot * switching) array * rule_internal array) option;}A representation of 'left-hand-side' agent that stores how everything is transformed. In an observable (a mixture in an alg_expr), everything is
Maintained(represented byI_VAL_CHANGED (i,i)for internal states).The field ra_syntax represents how the user describe the agent before compilation. Therefore,
compil_of_astin this module generates rule_agent where ra_syntax isSome (Array.copy ra_ports, Array.copy ra_ints).
type rule_mixture= rule_agent list
val forbid_modification : Kappa_generic_toolset.Locality.t -> 'a option -> unitval several_internal_states : Kappa_generic_toolset.Locality.t -> 'aval not_enough_specified : status:string -> side:string -> string -> (string * Kappa_generic_toolset.Locality.t) -> 'aval several_occurence_of_site : string -> (string * Kappa_generic_toolset.Locality.t) -> 'aval counter_misused : string -> (string * Kappa_generic_toolset.Locality.t) -> 'aval link_only_one_occurence : int -> Kappa_generic_toolset.Locality.t -> 'aval agent_to_erased : Kappa_mixtures.Signature.s -> rule_agent -> rule_agentval to_erased : Kappa_mixtures.Signature.s -> rule_mixture -> rule_mixtureval to_maintained : rule_mixture -> rule_mixtureval to_raw_mixture : Kappa_mixtures.Signature.s -> rule_mixture -> Raw_mixture.tval copy_rule_agent : rule_agent -> rule_agentval print_rule_mixture : noCounters:bool -> Kappa_mixtures.Signature.s -> ltypes:bool -> Raw_mixture.t -> Format.formatter -> rule_mixture -> unit
type rule={r_mix : rule_mixture;r_created : Raw_mixture.t;r_delta_tokens : ((rule_mixture, int) Alg_expr.e Kappa_generic_toolset.Locality.annot * int) list;r_rate : (rule_mixture, int) Alg_expr.e Kappa_generic_toolset.Locality.annot;r_un_rate : ((rule_mixture, int) Alg_expr.e Kappa_generic_toolset.Locality.annot * (rule_mixture, int) Alg_expr.e Kappa_generic_toolset.Locality.annot option) option;r_editStyle : bool;}
val print_link : ('a -> Format.formatter -> 'a -> unit) -> (Format.formatter -> 'a -> unit) -> (Format.formatter -> 'b -> unit) -> Format.formatter -> ('a, 'b) link -> unitval link_to_json : ('a -> 'a -> Yojson.Basic.t) -> ('a -> Yojson.Basic.t) -> ('b -> Yojson.Basic.t list) -> ('a, 'b) link -> Yojson.Basic.tFragile: the list MUST NOT be a singleton
val link_of_json : ('a -> Yojson.Basic.t -> 'a) -> (Yojson.Basic.t -> 'a) -> (Yojson.Basic.t list -> 'b) -> Yojson.Basic.t -> ('a, 'b) linkval print_rates : noCounters:bool -> Kappa_mixtures.Signature.s -> (Format.formatter -> int -> unit) -> (Format.formatter -> int -> unit) -> Format.formatter -> rule -> unitval print_rule : noCounters:bool -> full:bool -> Kappa_mixtures.Signature.s -> (Format.formatter -> int -> unit) -> (Format.formatter -> int -> unit) -> Format.formatter -> rule -> unitval rule_to_json : filenames:int Kappa_generic_toolset.Mods.StringMap.t -> rule -> Yojson.Basic.tval rule_of_json : filenames:string array -> Yojson.Basic.t -> ruleval max_link_id : rule_mixture -> int