sig
type path_defined_in =
LHS of (Ckappa_sig.c_rule_id * Cckappa_sig.enriched_rule)
| RHS of (Ckappa_sig.c_rule_id * Cckappa_sig.enriched_rule)
| Pattern
type event =
Dummy
| Check_rule of Ckappa_sig.c_rule_id
| See_a_new_bond of
((Ckappa_sig.c_agent_name * Ckappa_sig.c_site_name *
Ckappa_sig.c_state) *
(Ckappa_sig.c_agent_name * Ckappa_sig.c_site_name *
Ckappa_sig.c_state))
| Modified_sites of (Ckappa_sig.c_agent_name * Ckappa_sig.c_site_name)
type step = {
site_out : Ckappa_sig.c_site_name;
site_in : Ckappa_sig.c_site_name;
agent_type_in : Ckappa_sig.c_agent_name;
}
type path = {
agent_id : Ckappa_sig.c_agent_id;
relative_address : Communication.step list;
site : Ckappa_sig.c_site_name;
}
type path_in_pattern = {
defined_in : Communication.path_defined_in;
path : Communication.path;
}
type output =
Cannot_exist
| May_exist of Communication.path
| Located of Ckappa_sig.c_agent_id
val get_defined_in :
Communication.path_in_pattern -> Communication.path_defined_in
val get_agent_id : Communication.path_in_pattern -> Ckappa_sig.c_agent_id
val get_site : Communication.path_in_pattern -> Ckappa_sig.c_site_name
val get_relative_address :
Communication.path_in_pattern -> Communication.step list
module type PathMap =
sig
type 'a t
val empty : 'a -> 'a Communication.PathMap.t
val add :
Communication.path ->
'a -> 'a Communication.PathMap.t -> 'a Communication.PathMap.t
val find :
Communication.path -> 'a Communication.PathMap.t -> 'a option
end
module PathMap : PathMap
type precondition
type 'a fold =
Remanent_parameters_sig.parameters ->
Exception.method_handler ->
Ckappa_sig.c_agent_name ->
Ckappa_sig.c_site_name ->
Exception.method_handler *
((Remanent_parameters_sig.parameters ->
Ckappa_sig.c_state ->
Ckappa_sig.c_agent_name * Ckappa_sig.c_site_name * Ckappa_sig.c_state ->
Exception.method_handler * 'a -> Exception.method_handler * 'a) ->
Exception.method_handler -> 'a -> Exception.method_handler * 'a)
Usual_domains.flat_lattice
val dummy_precondition : Communication.precondition
val is_the_rule_applied_for_the_first_time :
Communication.precondition -> Usual_domains.maybe_bool
val the_rule_is_applied_for_the_first_time :
Remanent_parameters_sig.parameters ->
Exception.method_handler ->
Communication.precondition ->
Exception.method_handler * Communication.precondition
val the_rule_is_not_applied_for_the_first_time :
Remanent_parameters_sig.parameters ->
Exception.method_handler ->
Communication.precondition ->
Exception.method_handler * Communication.precondition
type prefold = { fold : 'a. 'a Communication.fold; }
val refine_information_about_state_of_sites_in_precondition :
Communication.precondition ->
(Remanent_parameters_sig.parameters ->
Exception.method_handler ->
Analyzer_headers.global_dynamic_information ->
Communication.path ->
Ckappa_sig.c_state list Usual_domains.flat_lattice ->
Exception.method_handler * Analyzer_headers.global_dynamic_information *
Ckappa_sig.c_state list Usual_domains.flat_lattice) ->
Communication.precondition
val get_potential_partner :
Communication.precondition ->
Exception.method_handler ->
Ckappa_sig.c_agent_name ->
Ckappa_sig.c_site_name ->
Ckappa_sig.c_state ->
Exception.method_handler * Communication.precondition *
(Ckappa_sig.c_agent_name * Ckappa_sig.c_site_name * Ckappa_sig.c_state)
Usual_domains.flat_lattice
val fold_over_potential_partners :
Remanent_parameters_sig.parameters ->
Exception.method_handler ->
Communication.precondition ->
Ckappa_sig.c_agent_name ->
Ckappa_sig.c_site_name ->
(Remanent_parameters_sig.parameters ->
Ckappa_sig.c_state ->
Ckappa_sig.c_agent_name * Ckappa_sig.c_site_name * Ckappa_sig.c_state ->
Exception.method_handler * 'a -> Exception.method_handler * 'a) ->
'a ->
Exception.method_handler * Communication.precondition *
'a Usual_domains.top_or_not
val overwrite_potential_partners_map :
Remanent_parameters_sig.parameters ->
Exception.method_handler ->
Communication.precondition ->
(Exception.method_handler ->
Ckappa_sig.c_agent_name ->
Ckappa_sig.c_site_name ->
Ckappa_sig.c_state ->
Exception.method_handler *
(Ckappa_sig.c_agent_name * Ckappa_sig.c_site_name * Ckappa_sig.c_state)
Usual_domains.flat_lattice) ->
Communication.prefold ->
Exception.method_handler * Communication.precondition
val get_state_of_site :
Exception.method_handler ->
Communication.precondition ->
Analyzer_headers.global_static_information ->
Analyzer_headers.global_dynamic_information ->
Communication.path_in_pattern ->
Exception.method_handler * Analyzer_headers.global_dynamic_information *
Communication.precondition *
Ckappa_sig.c_state list Usual_domains.flat_lattice
val follow_path_inside_cc :
Remanent_parameters_sig.parameters ->
Exception.method_handler ->
Cckappa_sig.kappa_handler ->
Cckappa_sig.mixture ->
Communication.path -> Exception.method_handler * Communication.output
val get_state_of_site_in_precondition :
('static -> Analyzer_headers.global_static_information) ->
('dynamic -> Analyzer_headers.global_dynamic_information) ->
(Analyzer_headers.global_dynamic_information -> 'dynamic -> 'c) ->
Exception.method_handler ->
'static ->
'dynamic ->
Ckappa_sig.c_rule_id * Cckappa_sig.enriched_rule ->
Ckappa_sig.c_agent_id ->
Ckappa_sig.c_site_name ->
Communication.precondition ->
Exception.method_handler * 'c * Communication.precondition *
Ckappa_sig.c_state list
val get_state_of_site_in_postcondition :
('static -> Analyzer_headers.global_static_information) ->
('dynamic -> Analyzer_headers.global_dynamic_information) ->
(Analyzer_headers.global_dynamic_information -> 'dynamic -> 'b) ->
Exception.method_handler ->
'static ->
'dynamic ->
Ckappa_sig.c_rule_id * Cckappa_sig.enriched_rule ->
Ckappa_sig.c_agent_id ->
Ckappa_sig.c_site_name ->
Communication.precondition ->
Exception.method_handler * 'b * Communication.precondition *
Ckappa_sig.c_state list
val add_rule :
?local_trace:bool ->
Remanent_parameters_sig.parameters ->
Cckappa_sig.compil ->
Cckappa_sig.kappa_handler ->
Exception.method_handler ->
Ckappa_sig.c_rule_id ->
Communication.event list ->
Exception.method_handler * Communication.event list
type site_working_list
val init_sites_working_list :
Remanent_parameters_sig.parameters ->
Exception.method_handler ->
Exception.method_handler * Communication.site_working_list
val clear_sites_working_list :
Remanent_parameters_sig.parameters ->
Exception.method_handler ->
Communication.site_working_list ->
Exception.method_handler * Communication.site_working_list
val add_site :
Remanent_parameters_sig.parameters ->
Exception.method_handler ->
Ckappa_sig.c_agent_name ->
Ckappa_sig.c_site_name ->
Communication.site_working_list ->
Exception.method_handler * Communication.site_working_list
val fold_sites :
((Ckappa_sig.c_agent_name * Ckappa_sig.c_site_name, unit, 'a, 'a)
Int_storage.ternary, Communication.site_working_list, 'a, 'a)
Int_storage.ternary
end