sig
module Transformation :
sig
type 'a t =
Agent of 'a
| Freed of 'a Instantiation.site
| Linked of 'a Instantiation.site * 'a Instantiation.site
| NegativeWhatEver of 'a Instantiation.site
| PositiveInternalized of 'a * Instantiation.site_name *
Instantiation.internal_state
| NegativeInternalized of 'a Instantiation.site
val rename :
int ->
Renaming.t ->
Instantiation.abstract Primitives.Transformation.t ->
Instantiation.abstract Primitives.Transformation.t
val concretize :
Matching.t * int Mods.IntMap.t ->
Instantiation.abstract Primitives.Transformation.t ->
Instantiation.concrete Primitives.Transformation.t
val print :
?sigs:Signature.s ->
Format.formatter ->
Instantiation.abstract Primitives.Transformation.t -> unit
val negative_transformations_of_actions :
Signature.s ->
(Instantiation.concrete Instantiation.site ->
Instantiation.concrete Instantiation.site option) ->
Instantiation.concrete Instantiation.action list ->
Instantiation.concrete Primitives.Transformation.t list
val positive_transformations_of_actions :
Signature.s ->
Instantiation.concrete Instantiation.site list ->
Instantiation.concrete Instantiation.action list ->
Instantiation.concrete Primitives.Transformation.t list
end
type alg_expr = (Pattern.id array list, int) Alg_expr.e
type elementary_rule = {
rate : Primitives.alg_expr Locality.annot;
unary_rate :
(Primitives.alg_expr Locality.annot * Primitives.alg_expr option)
option;
connected_components : Pattern.id array;
removed : Instantiation.abstract Primitives.Transformation.t list;
inserted : Instantiation.abstract Primitives.Transformation.t list;
delta_tokens : (Primitives.alg_expr Locality.annot * int) list;
syntactic_rule : int;
instantiations : Instantiation.abstract Instantiation.event;
}
val extract_cc_ids : Primitives.elementary_rule -> Pattern.id array
val extract_abstract_event :
Primitives.elementary_rule -> Instantiation.abstract Instantiation.event
val rule_to_yojson :
filenames:int Mods.StringMap.t ->
Primitives.elementary_rule -> Yojson.Basic.json
val rule_of_yojson :
filenames:string array -> Yojson.Basic.json -> Primitives.elementary_rule
type 'alg_expr print_expr =
Str_pexpr of string Locality.annot
| Alg_pexpr of 'alg_expr Locality.annot
val print_expr_to_yojson :
filenames:int Mods.StringMap.t ->
('a -> Yojson.Basic.json) ->
('b -> Yojson.Basic.json) ->
('a, 'b) Alg_expr.e Primitives.print_expr -> Yojson.Basic.json
val print_expr_of_yojson :
filenames:string array ->
(Yojson.Basic.json -> 'a) ->
(Yojson.Basic.json -> 'b) ->
Yojson.Basic.json -> ('a, 'b) Alg_expr.e Primitives.print_expr
type din_kind = ABSOLUTE | RELATIVE | PROBABILITY
val din_kind_to_yojson : Primitives.din_kind -> Yojson.Basic.json
val din_kind_of_yojson : Yojson.Basic.json -> Primitives.din_kind
val write_din_kind : Bi_outbuf.t -> Primitives.din_kind -> unit
val string_of_din_kind : ?len:int -> Primitives.din_kind -> string
val read_din_kind :
Yojson.Safe.lexer_state -> Lexing.lexbuf -> Primitives.din_kind
val din_kind_of_string : string -> Primitives.din_kind
type modification =
ITER_RULE of Primitives.alg_expr Locality.annot *
Primitives.elementary_rule
| UPDATE of int * Primitives.alg_expr Locality.annot
| SNAPSHOT of Primitives.alg_expr Primitives.print_expr list
| STOP of Primitives.alg_expr Primitives.print_expr list
| CFLOW of string option * Pattern.id array *
Instantiation.abstract Instantiation.test list list
| DIN of Primitives.din_kind *
Primitives.alg_expr Primitives.print_expr list
| DINOFF of Primitives.alg_expr Primitives.print_expr list
| CFLOWOFF of string option * Pattern.id array
| PLOTENTRY
| PRINT of Primitives.alg_expr Primitives.print_expr list *
Primitives.alg_expr Primitives.print_expr list
| SPECIES of Primitives.alg_expr Primitives.print_expr list *
Pattern.id array *
Instantiation.abstract Instantiation.test list list
| SPECIES_OFF of Primitives.alg_expr Primitives.print_expr list
type perturbation = {
alarm : Nbr.t option;
precondition : (Pattern.id array list, int) Alg_expr.bool Locality.annot;
effect : Primitives.modification list;
repeat : (Pattern.id array list, int) Alg_expr.bool Locality.annot;
needs_backtrack : bool;
}
val perturbation_to_yojson :
filenames:int Mods.StringMap.t ->
Primitives.perturbation -> Yojson.Basic.json
val perturbation_of_yojson :
filenames:string array -> Yojson.Basic.json -> Primitives.perturbation
val exists_modification :
(Primitives.modification -> bool) ->
Primitives.perturbation array -> bool
val extract_connected_components_modifications :
Primitives.modification list -> Pattern.id list
val extract_connected_components_bool :
(Pattern.id array list, int) Alg_expr.bool Locality.annot ->
Pattern.id list
val map_expr_rule :
(Primitives.alg_expr Locality.annot -> Primitives.alg_expr Locality.annot) ->
Primitives.elementary_rule -> Primitives.elementary_rule
val map_expr_perturbation :
(Primitives.alg_expr Locality.annot -> Primitives.alg_expr Locality.annot) ->
((Pattern.id array list, int) Alg_expr.bool Locality.annot ->
(Pattern.id array list, int) Alg_expr.bool Locality.annot) ->
Primitives.perturbation -> Primitives.perturbation
val stops_of_perturbation :
Operator.DepSet.t * Operator.DepSet.t * Operator.DepSet.t array *
Operator.DepSet.t array ->
Primitives.perturbation -> (Nbr.t option * Nbr.t) list
end