Module React.Make
Functor building a concrete implementation of basic operations on rewrite rules.
Parameters
Signature
type t
= R.t
The type of reaction rules.
type ac
= R.ac
The type of application conditions.
type label
= R.label
The type of reaction rule lables.
exception
NOT_VALID of react_error
val name : t -> string
Returns the name of a rewrite rule.
val make : name:string -> lhs:Big.t -> rhs:Big.t -> ?conds:ac list -> label -> Fun.t option -> t
Create a new reaction rule.
val to_string : t -> string
String representation of a rewrite rule.
val is_valid : t -> bool
Validity check.
val is_valid_exn : t -> bool
Same as
is_valid
but an exception is raised instead of returningfalse
.- raises NOT_VALID
when the reaction rule is not valid.
val string_of_react_err : react_error -> string
Convert to string the output of the validity check.
val is_enabled : Big.t -> t -> bool
is_enabled b r
checks if rewrite ruler
can be applied to bigraphb
.
val filter_iso : (Big.t * label * t list) list -> (Big.t * label * t list) list
Merge isomorphic occurrences
val apply : Big.t -> t list -> Big.t option
Apply a list of reaction rules in sequence. Non-enabled rules are ignored.
val fix : Big.t -> t list -> Big.t * int
fix b r_list
applies the rewrite rules in listr_list
to bigraphb
until a fixed pointb'
is reached. The result is fixed pointb'
and the number of rewriting steps performed. Note,b
is returned when no rewriting is performed.
val step : Big.t -> t list -> (Big.t * label * t list) list * int
All the possible evolutions in one step. Total number of occurrences also returned.
module Memo : sig ... end
Memoised interface