Module Kappa_terms.Alg_expr

type pervasives_bool = bool
type ('mix, 'id) e =
| BIN_ALG_OP of Kappa_generic_toolset.Operator.bin_alg_op * ('mix'id) e Kappa_generic_toolset.Locality.annot * ('mix'id) e Kappa_generic_toolset.Locality.annot
| UN_ALG_OP of Kappa_generic_toolset.Operator.un_alg_op * ('mix'id) e Kappa_generic_toolset.Locality.annot
| STATE_ALG_OP of Kappa_generic_toolset.Operator.state_alg_op
| ALG_VAR of 'id
| KAPPA_INSTANCE of 'mix
| TOKEN_ID of 'id
| CONST of Kappa_generic_toolset.Nbr.t
| IF of ('mix'id) bool Kappa_generic_toolset.Locality.annot * ('mix'id) e Kappa_generic_toolset.Locality.annot * ('mix'id) e Kappa_generic_toolset.Locality.annot
| DIFF_TOKEN of ('mix'id) e Kappa_generic_toolset.Locality.annot * 'id
| DIFF_KAPPA_INSTANCE of ('mix'id) e Kappa_generic_toolset.Locality.annot * 'mix
and ('mix, 'id) bool =
| TRUE
| FALSE
| BIN_BOOL_OP of Kappa_generic_toolset.Operator.bin_bool_op * ('mix'id) bool Kappa_generic_toolset.Locality.annot * ('mix'id) bool Kappa_generic_toolset.Locality.annot
| UN_BOOL_OP of Kappa_generic_toolset.Operator.un_bool_op * ('mix'id) bool Kappa_generic_toolset.Locality.annot
| COMPARE_OP of Kappa_generic_toolset.Operator.compare_op * ('mix'id) e Kappa_generic_toolset.Locality.annot * ('mix'id) e Kappa_generic_toolset.Locality.annot
val e_to_yojson : filenames:int Kappa_generic_toolset.Mods.StringMap.t -> ('a -> Yojson.Basic.t) -> ('b -> Yojson.Basic.t) -> ('a'b) e -> Yojson.Basic.t
val e_of_yojson : filenames:string array -> (Yojson.Basic.t -> 'a) -> (Yojson.Basic.t -> 'b) -> Yojson.Basic.t -> ('a'b) e
val print : (Format.formatter -> 'a -> unit) -> (Format.formatter -> 'b -> unit) -> (Format.formatter -> 'b -> unit) -> Format.formatter -> ('a'b) e -> unit
val bool_to_yojson : filenames:int Kappa_generic_toolset.Mods.StringMap.t -> ('a -> Yojson.Basic.t) -> ('b -> Yojson.Basic.t) -> ('a'b) bool -> Yojson.Basic.t
val bool_of_yojson : filenames:string array -> (Yojson.Basic.t -> 'a) -> (Yojson.Basic.t -> 'b) -> Yojson.Basic.t -> ('a'b) bool
val print_bool : (Format.formatter -> 'a -> unit) -> (Format.formatter -> 'b -> unit) -> (Format.formatter -> 'b -> unit) -> Format.formatter -> ('a'b) bool -> unit
val const : Kappa_generic_toolset.Nbr.t -> ('a'b) e Kappa_generic_toolset.Locality.annot

Smart constructor

val int : int -> ('a'b) e Kappa_generic_toolset.Locality.annot
val float : float -> ('a'b) e Kappa_generic_toolset.Locality.annot
val add : ('a'b) e Kappa_generic_toolset.Locality.annot -> ('a'b) e Kappa_generic_toolset.Locality.annot -> ('a'b) e Kappa_generic_toolset.Locality.annot
val minus : ('a'b) e Kappa_generic_toolset.Locality.annot -> ('a'b) e Kappa_generic_toolset.Locality.annot -> ('a'b) e Kappa_generic_toolset.Locality.annot
val mult : ('a'b) e Kappa_generic_toolset.Locality.annot -> ('a'b) e Kappa_generic_toolset.Locality.annot -> ('a'b) e Kappa_generic_toolset.Locality.annot
val div : ('a'b) e Kappa_generic_toolset.Locality.annot -> ('a'b) e Kappa_generic_toolset.Locality.annot -> ('a'b) e Kappa_generic_toolset.Locality.annot
val pow : ('a'b) e Kappa_generic_toolset.Locality.annot -> ('a'b) e Kappa_generic_toolset.Locality.annot -> ('a'b) e Kappa_generic_toolset.Locality.annot
val ln : ('a'b) e Kappa_generic_toolset.Locality.annot -> ('a'b) e Kappa_generic_toolset.Locality.annot
val uminus : ('a'b) e Kappa_generic_toolset.Locality.annot -> ('a'b) e Kappa_generic_toolset.Locality.annot
val sin : ('a'b) e Kappa_generic_toolset.Locality.annot -> ('a'b) e Kappa_generic_toolset.Locality.annot
val cos : ('a'b) e Kappa_generic_toolset.Locality.annot -> ('a'b) e Kappa_generic_toolset.Locality.annot
val sqrt : ('a'b) e Kappa_generic_toolset.Locality.annot -> ('a'b) e Kappa_generic_toolset.Locality.annot
val add_dep : (Kappa_generic_toolset.Operator.DepSet.t * Kappa_generic_toolset.Operator.DepSet.t * Kappa_generic_toolset.Operator.DepSet.t array * Kappa_generic_toolset.Operator.DepSet.t array) -> Kappa_generic_toolset.Operator.rev_dep -> ('a, int) e Kappa_generic_toolset.Locality.annot -> Kappa_generic_toolset.Operator.DepSet.t * Kappa_generic_toolset.Operator.DepSet.t * Kappa_generic_toolset.Operator.DepSet.t array * Kappa_generic_toolset.Operator.DepSet.t array

depend in time, depend in event number, depend in given var

val add_dep_bool : (Kappa_generic_toolset.Operator.DepSet.t * Kappa_generic_toolset.Operator.DepSet.t * Kappa_generic_toolset.Operator.DepSet.t array * Kappa_generic_toolset.Operator.DepSet.t array) -> Kappa_generic_toolset.Operator.rev_dep -> ('a, int) bool Kappa_generic_toolset.Locality.annot -> Kappa_generic_toolset.Operator.DepSet.t * Kappa_generic_toolset.Operator.DepSet.t * Kappa_generic_toolset.Operator.DepSet.t array * Kappa_generic_toolset.Operator.DepSet.t array
val setup_alg_vars_rev_dep : unit Kappa_generic_toolset.NamedDecls.t -> (string Kappa_generic_toolset.Locality.annot * ('a, int) e Kappa_generic_toolset.Locality.annot) array -> Kappa_generic_toolset.Operator.DepSet.t * Kappa_generic_toolset.Operator.DepSet.t * Kappa_generic_toolset.Operator.DepSet.t array * Kappa_generic_toolset.Operator.DepSet.t array
val has_mix : ?⁠var_decls:('b -> ('c'b) e) -> ('a'b) e -> pervasives_bool
val is_constant : ('a'b) e Kappa_generic_toolset.Locality.annot -> pervasives_bool
val is_time_homogeneous : ('a'b) e Kappa_generic_toolset.Locality.annot -> pervasives_bool

does not take into account symbolic propagation of expression

val has_progress_dep : only_time:pervasives_bool -> (Kappa_generic_toolset.Operator.DepSet.t * Kappa_generic_toolset.Operator.DepSet.t * Kappa_generic_toolset.Operator.DepSet.t array * Kappa_generic_toolset.Operator.DepSet.t array) -> ('a, int) e Kappa_generic_toolset.Locality.annot -> pervasives_bool
val extract_connected_components : ('a'b) e Kappa_generic_toolset.Locality.annot -> 'a list
val extract_connected_components_bool : ('a'b) bool Kappa_generic_toolset.Locality.annot -> 'a list
val propagate_constant : warning:(pos:Kappa_generic_toolset.Locality.t -> (Format.formatter -> unit) -> unit) -> ?⁠max_time:float -> ?⁠max_events:int -> int list -> (string Kappa_generic_toolset.Locality.annot * ('a, int) e Kappa_generic_toolset.Locality.annot) array -> ('a, int) e Kappa_generic_toolset.Locality.annot -> ('a, int) e Kappa_generic_toolset.Locality.annot
val propagate_constant_bool : warning:(pos:Kappa_generic_toolset.Locality.t -> (Format.formatter -> unit) -> unit) -> ?⁠max_time:float -> ?⁠max_events:int -> int list -> (string Kappa_generic_toolset.Locality.annot * ('a, int) e Kappa_generic_toolset.Locality.annot) array -> ('a, int) bool Kappa_generic_toolset.Locality.annot -> ('a, int) bool Kappa_generic_toolset.Locality.annot
val is_equality_test_time : (Kappa_generic_toolset.Operator.DepSet.t * Kappa_generic_toolset.Operator.DepSet.t * Kappa_generic_toolset.Operator.DepSet.t array * Kappa_generic_toolset.Operator.DepSet.t array) -> ('a, int) bool -> pervasives_bool
val map_on_mixture : ('a -> ('c'b) e) -> ('a'b) e Kappa_generic_toolset.Locality.annot -> ('c'b) e Kappa_generic_toolset.Locality.annot
val map_bool_on_mixture : ('a -> ('c'b) e) -> ('a'b) bool Kappa_generic_toolset.Locality.annot -> ('c'b) bool Kappa_generic_toolset.Locality.annot
val fold_on_mixture : ('a -> 'b -> 'a) -> 'a -> ('b'c) e Kappa_generic_toolset.Locality.annot -> 'a
val fold_bool_on_mixture : ('a -> 'b -> 'a) -> 'a -> ('b'c) bool Kappa_generic_toolset.Locality.annot -> 'a
val equal : ('a'b) e Kappa_generic_toolset.Locality.annot -> ('a'b) e Kappa_generic_toolset.Locality.annot -> pervasives_bool

Syntactic equality up to positions but not associativity and comutativity

val equal_bool : ('a'b) bool Kappa_generic_toolset.Locality.annot -> ('a'b) bool Kappa_generic_toolset.Locality.annot -> pervasives_bool