Module Kappa_terms.Instantiation
type agent_name= inttype site_name= inttype internal_state= inttype binding_type= agent_name * site_nametype abstract= Matching.Agent.tin a rule
type concrete= Kappa_mixtures.Agent.tin a simulation state
type 'a site= 'a * site_nametype 'a test=|Is_Here of 'a|Has_Internal of 'a site * internal_state|Is_Free of 'a site|Is_Bound of 'a site|Has_Binding_type of 'a site * binding_type|Is_Bound_to of 'a site * 'a sitetype 'a action=|Create of 'a * (site_name * internal_state option) list|Mod_internal of 'a site * internal_state|Bind of 'a site * 'a site|Bind_to of 'a site * 'a site|Free of 'a site|Remove of 'atype 'a binding_state=|ANY|FREE|BOUND|BOUND_TYPE of binding_type|BOUND_to of 'a sitetype 'a event={tests : 'a test list list;The tests written in the rule (pattern by pattern)
actions : 'a action list;The modifications written in the rule
side_effects_src : ('a site * 'a binding_state) list;the site of the agents mentioned in the rule where there is a side effects
side_effects_dst : 'a site list;the site of agents not mentionned in the rule that have been freed by side effect
connectivity_tests : 'a test list;witness that patterns where connected (unary instances only of course)
}
val empty_event : 'a eventval rename_abstract_test : debugMode:bool -> int -> Kappa_generic_toolset.Renaming.t -> abstract test -> abstract testval rename_abstract_action : debugMode:bool -> int -> Kappa_generic_toolset.Renaming.t -> abstract action -> abstract actionval rename_abstract_event : debugMode:bool -> int -> Kappa_generic_toolset.Renaming.t -> abstract event -> abstract eventval rename_abstract_side_effect : debugMode:bool -> int -> Kappa_generic_toolset.Renaming.t -> ((Matching.Agent.t * 'a) * Matching.Agent.t binding_state) -> (Matching.Agent.t * 'a) * Matching.Agent.t binding_stateval concretize_test : debugMode:bool -> (Matching.t * int Kappa_generic_toolset.Mods.IntMap.t) -> abstract test -> concrete testval concretize_action : debugMode:bool -> (Matching.t * int Kappa_generic_toolset.Mods.IntMap.t) -> abstract action -> concrete actionval try_concretize_action : debugMode:bool -> (Matching.t * int Kappa_generic_toolset.Mods.IntMap.t) -> abstract action -> concrete action optionSame than
concretize_action, except that it returnsNoneif the provided injection's domain does not contain a fresh agent that is involved in the action that is being concretized.
val concretize_event : debugMode:bool -> (Matching.t * int Kappa_generic_toolset.Mods.IntMap.t) -> abstract event -> concrete eventval matching_abstract_concrete : debugMode:bool -> abstract event -> concrete event -> Kappa_generic_toolset.Renaming.t optionval subst_map_agent_in_concrete_test : (int -> int) -> concrete test -> concrete testval subst_agent_in_concrete_test : int -> int -> concrete test -> concrete testval subst_map_agent_in_concrete_action : (int -> int) -> concrete action -> concrete actionval subst_agent_in_concrete_action : int -> int -> concrete action -> concrete actionval subst_map_agent_in_concrete_side_effect : (int -> int) -> (concrete site * concrete binding_state) -> concrete site * concrete binding_stateval subst_agent_in_concrete_side_effect : int -> int -> (concrete site * concrete binding_state) -> concrete site * concrete binding_stateval subst_map_agent_in_concrete_event : (int -> int) -> concrete event -> concrete eventval subst_map2_agent_in_concrete_event : (int -> int) -> (int -> int) -> concrete event -> concrete eventval subst_agent_in_concrete_event : int -> int -> concrete event -> concrete eventval print_concrete_test : ?sigs:Kappa_mixtures.Signature.s -> Format.formatter -> concrete test -> unitval print_concrete_action : ?sigs:Kappa_mixtures.Signature.s -> Format.formatter -> concrete action -> unitval print_concrete_binding_state : ?sigs:Kappa_mixtures.Signature.s -> Format.formatter -> concrete binding_state -> unitval json_dictionnary : stringval test_to_json : ('a -> Yojson.Basic.t) -> 'a test -> Yojson.Basic.tval test_of_json : (Yojson.Basic.t -> 'a) -> Yojson.Basic.t -> 'a testval write_test : (Bi_outbuf.t -> 'a -> unit) -> Bi_outbuf.t -> 'a test -> unitval read_test : (Yojson.Basic.lexer_state -> Lexing.lexbuf -> 'a) -> Yojson.Basic.lexer_state -> Lexing.lexbuf -> 'a testval action_to_json : ('a -> Yojson.Basic.t) -> 'a action -> Yojson.Basic.tval action_of_json : (Yojson.Basic.t -> 'a) -> Yojson.Basic.t -> 'a actionval write_action : (Bi_outbuf.t -> 'a -> unit) -> Bi_outbuf.t -> 'a action -> unitval read_action : (Yojson.Basic.lexer_state -> Lexing.lexbuf -> 'a) -> Yojson.Basic.lexer_state -> Lexing.lexbuf -> 'a actionval event_to_json : ('a -> Yojson.Basic.t) -> 'a event -> Yojson.Basic.tval event_of_json : (Yojson.Basic.t -> 'a) -> Yojson.Basic.t -> 'a eventval write_event : (Bi_outbuf.t -> 'a -> unit) -> Bi_outbuf.t -> 'a event -> unitval read_event : (Yojson.Basic.lexer_state -> Lexing.lexbuf -> 'a) -> Yojson.Basic.lexer_state -> Lexing.lexbuf -> 'a event