sig
type agent_name = int
type site_name = int
type internal_state = int
type binding_type = Instantiation.agent_name * Instantiation.site_name
type abstract = Matching.Agent.t
type concrete = Agent.t
type 'a site = 'a * Instantiation.site_name
type 'a test =
Is_Here of 'a
| Has_Internal of 'a Instantiation.site * Instantiation.internal_state
| Is_Free of 'a Instantiation.site
| Is_Bound of 'a Instantiation.site
| Has_Binding_type of 'a Instantiation.site * Instantiation.binding_type
| Is_Bound_to of 'a Instantiation.site * 'a Instantiation.site
type 'a action =
Create of 'a *
(Instantiation.site_name * Instantiation.internal_state option) list
| Mod_internal of 'a Instantiation.site * Instantiation.internal_state
| Bind of 'a Instantiation.site * 'a Instantiation.site
| Bind_to of 'a Instantiation.site * 'a Instantiation.site
| Free of 'a Instantiation.site
| Remove of 'a
type 'a binding_state =
ANY
| FREE
| BOUND
| BOUND_TYPE of Instantiation.binding_type
| BOUND_to of 'a Instantiation.site
type 'a event = {
tests : 'a Instantiation.test list list;
actions : 'a Instantiation.action list;
side_effects_src :
('a Instantiation.site * 'a Instantiation.binding_state) list;
side_effects_dst : 'a Instantiation.site list;
connectivity_tests : 'a Instantiation.test list;
}
val empty_event : 'a Instantiation.event
val rename_abstract_test :
int ->
Renaming.t ->
Instantiation.abstract Instantiation.test ->
Instantiation.abstract Instantiation.test
val rename_abstract_action :
int ->
Renaming.t ->
Instantiation.abstract Instantiation.action ->
Instantiation.abstract Instantiation.action
val rename_abstract_event :
int ->
Renaming.t ->
Instantiation.abstract Instantiation.event ->
Instantiation.abstract Instantiation.event
val rename_abstract_side_effect :
int ->
Renaming.t ->
(Matching.Agent.t * 'a) * Matching.Agent.t Instantiation.binding_state ->
(Matching.Agent.t * 'a) * Matching.Agent.t Instantiation.binding_state
val concretize_test :
Matching.t * int Mods.IntMap.t ->
Instantiation.abstract Instantiation.test ->
Instantiation.concrete Instantiation.test
val concretize_action :
Matching.t * int Mods.IntMap.t ->
Instantiation.abstract Instantiation.action ->
Instantiation.concrete Instantiation.action
val try_concretize_action :
Matching.t * int Mods.IntMap.t ->
Instantiation.abstract Instantiation.action ->
Instantiation.concrete Instantiation.action option
val concretize_event :
Matching.t * int Mods.IntMap.t ->
Instantiation.abstract Instantiation.event ->
Instantiation.concrete Instantiation.event
val matching_abstract_concrete :
Instantiation.abstract Instantiation.event ->
Instantiation.concrete Instantiation.event -> Renaming.t option
val subst_map_agent_in_concrete_test :
(int -> int) ->
Instantiation.concrete Instantiation.test ->
Instantiation.concrete Instantiation.test
val subst_agent_in_concrete_test :
int ->
int ->
Instantiation.concrete Instantiation.test ->
Instantiation.concrete Instantiation.test
val subst_map_agent_in_concrete_action :
(int -> int) ->
Instantiation.concrete Instantiation.action ->
Instantiation.concrete Instantiation.action
val subst_agent_in_concrete_action :
int ->
int ->
Instantiation.concrete Instantiation.action ->
Instantiation.concrete Instantiation.action
val subst_map_agent_in_concrete_side_effect :
(int -> int) ->
Instantiation.concrete Instantiation.site *
Instantiation.concrete Instantiation.binding_state ->
Instantiation.concrete Instantiation.site *
Instantiation.concrete Instantiation.binding_state
val subst_agent_in_concrete_side_effect :
int ->
int ->
Instantiation.concrete Instantiation.site *
Instantiation.concrete Instantiation.binding_state ->
Instantiation.concrete Instantiation.site *
Instantiation.concrete Instantiation.binding_state
val subst_map_agent_in_concrete_event :
(int -> int) ->
Instantiation.concrete Instantiation.event ->
Instantiation.concrete Instantiation.event
val subst_map2_agent_in_concrete_event :
(int -> int) ->
(int -> int) ->
Instantiation.concrete Instantiation.event ->
Instantiation.concrete Instantiation.event
val subst_agent_in_concrete_event :
int ->
int ->
Instantiation.concrete Instantiation.event ->
Instantiation.concrete Instantiation.event
val print_concrete_test :
?sigs:Signature.s ->
Format.formatter -> Instantiation.concrete Instantiation.test -> unit
val print_concrete_action :
?sigs:Signature.s ->
Format.formatter -> Instantiation.concrete Instantiation.action -> unit
val print_concrete_binding_state :
?sigs:Signature.s ->
Format.formatter ->
Instantiation.concrete Instantiation.binding_state -> unit
val test_to_json :
('a -> Yojson.Basic.json) -> 'a Instantiation.test -> Yojson.Basic.json
val test_of_json :
(Yojson.Basic.json -> 'a) -> Yojson.Basic.json -> 'a Instantiation.test
val action_to_json :
('a -> Yojson.Basic.json) -> 'a Instantiation.action -> Yojson.Basic.json
val action_of_json :
(Yojson.Basic.json -> 'a) -> Yojson.Basic.json -> 'a Instantiation.action
val event_to_json :
('a -> Yojson.Basic.json) -> 'a Instantiation.event -> Yojson.Basic.json
val event_of_json :
(Yojson.Basic.json -> 'a) -> Yojson.Basic.json -> 'a Instantiation.event
end