Module type Solver.M
The type of a bigraph matching engine.
val solver_type : solver_t
The type of the solver .
val occurs : target:Big.t -> pattern:Big.t -> bool
occurs ~target ~pattern
returnstrue
if the~pattern
occurs in the~target
,false
otherwise.
val occurrence : target:Big.t -> pattern:Big.t -> occ option
occurrence ~target ~pattern
returns an occurrence if the~pattern
occurs in the~target
. Different occurrences might be returned depending on which external solver is used.- raises NODE_FREE
when the
~pattern
has an empty node set.
val auto : Big.t -> (Iso.t * Iso.t) list
Compute the non-trivial automorphisms of a bigraph. The elements of each output pair are an automorphism over the place graph and an automorphism over the link graph, respectively.
val occurrences : target:Big.t -> pattern:Big.t -> occ list
occurrences ~target ~pattern
returns a list of occurrences. Each occurrence is normalised by picking the smallest occurrence (lexicographic ordering) in the symmetry group.- raises NODE_FREE
when the
~pattern
has an empty node set.
val occurrences_raw : target:Big.t -> pattern:Big.t -> occ list
Same as
Solver.M.occurrences
but without filtering symmetric occurrences out.- raises NODE_FREE
when the
~pattern
has an empty node set.
val equal : Big.t -> Big.t -> bool
equal a b
returnstrue
if bigraphsa
andb
are isomorphic,false
otherwise.
val equal_key : Big.t -> Big.t -> bool
Same as
Solver.M.equal
but with fewer checks prior to the solver invocation. This function is intended to be used after equality over keys has already failed.
module Memo : sig ... end
Memoised interface.