Module Pattern

module Pattern: sig .. end
Domain to navigate in the graph

type link = 
| UnSpec
| Free
| Link of int * int
type cc 
type t = cc 
type for domain points
type id 
val debug_print_id : Format.formatter -> id -> unit
module ObsMap: sig .. end
module Env: sig .. end
module PreEnv: sig .. end
type work 
Create a connected component

type of a PreEnv during a pattern construction

val empty_cc : Signature.s -> cc
val begin_new : PreEnv.t -> work
Starts creation
val new_node : work -> int -> Agent.t * work
new_node wk node_type
val new_link : work -> Agent.t * int -> Agent.t * int -> work
new_link wk (node, site_id) (node', site_id')
val new_free : work -> Agent.t * int -> work
val new_internal_state : work -> Agent.t * int -> int -> work
new_link_type work (node,site) type
val finish_new : ?origin:Operator.rev_dep ->
work -> PreEnv.t * Renaming.t * cc * id

Use a connected component

val compare_canonicals : id -> id -> int
val is_equal_canonicals : id -> id -> bool
val print_cc : ?dotnet:bool ->
?full_species:bool ->
new_syntax:bool ->
?sigs:Signature.s ->
?cc_id:id -> with_id:bool -> Format.formatter -> t -> unit
val print : new_syntax:bool ->
?domain:Env.t ->
with_id:bool -> Format.formatter -> id -> unit
print ~domain ?with_id:None form cc
val id_to_yojson : id -> Yojson.Basic.json
val id_of_yojson : Yojson.Basic.json -> id
val reconstruction_navigation : t -> Navigation.abstract Navigation.t
val find_ty : cc -> int -> int
Abstraction leak, please do not use
val automorphisms : t -> Renaming.t list
val embeddings_to_fully_specified : Env.t -> id -> cc -> Renaming.t list
val size_of_cc : cc -> int
val add_fully_specified_to_graph : Signature.s -> Edges.t -> cc -> Edges.t * Renaming.t
val fold : (pos:int -> agent_type:int -> 'a -> 'a) ->
(pos:int -> site:int -> link * int -> 'a -> 'a) ->
cc -> 'a -> 'a
val finalize : max_sharing:bool ->
PreEnv.t -> Contact_map.t -> Env.t * PreEnv.stat
val infs : t -> t -> t list
val matchings : t -> t -> Renaming.t list
val merge_on_inf : PreEnv.t ->
Renaming.t ->
t ->
t ->
t option * (t * int * t * int * int * bool) option
val length : t -> int
module Set: SetMap.Set  with type elt=id