Kappa_terms.Alg_expr
type ('mix, 'id) e =
| BIN_ALG_OP of Kappa_data_structures.Operator.bin_alg_op
* ('mix, 'id) e Kappa_data_structures.Loc.annoted
* ('mix, 'id) e Kappa_data_structures.Loc.annoted
| UN_ALG_OP of Kappa_data_structures.Operator.un_alg_op
* ('mix, 'id) e Kappa_data_structures.Loc.annoted
| STATE_ALG_OP of Kappa_data_structures.Operator.state_alg_op
| ALG_VAR of 'id
| KAPPA_INSTANCE of 'mix
| TOKEN_ID of 'id
| CONST of Kappa_data_structures.Nbr.t
| IF of ('mix, 'id) bool Kappa_data_structures.Loc.annoted
* ('mix, 'id) e Kappa_data_structures.Loc.annoted
* ('mix, 'id) e Kappa_data_structures.Loc.annoted
| DIFF_TOKEN of ('mix, 'id) e Kappa_data_structures.Loc.annoted * 'id
| DIFF_KAPPA_INSTANCE of ('mix, 'id) e Kappa_data_structures.Loc.annoted * 'mix
and ('mix, 'id) bool =
| TRUE
| FALSE
| BIN_BOOL_OP of Kappa_data_structures.Operator.bin_bool_op
* ('mix, 'id) bool Kappa_data_structures.Loc.annoted
* ('mix, 'id) bool Kappa_data_structures.Loc.annoted
| UN_BOOL_OP of Kappa_data_structures.Operator.un_bool_op
* ('mix, 'id) bool Kappa_data_structures.Loc.annoted
| COMPARE_OP of Kappa_data_structures.Operator.compare_op
* ('mix, 'id) e Kappa_data_structures.Loc.annoted
* ('mix, 'id) e Kappa_data_structures.Loc.annoted
val e_to_yojson :
filenames:int Kappa_data_structures.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 :
(Stdlib.Format.formatter -> 'a -> unit) ->
(Stdlib.Format.formatter -> 'b -> unit) ->
(Stdlib.Format.formatter -> 'b -> unit) ->
Stdlib.Format.formatter ->
('a, 'b) e ->
unit
val bool_to_yojson :
filenames:int Kappa_data_structures.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 :
(Stdlib.Format.formatter -> 'a -> unit) ->
(Stdlib.Format.formatter -> 'b -> unit) ->
(Stdlib.Format.formatter -> 'b -> unit) ->
Stdlib.Format.formatter ->
('a, 'b) bool ->
unit
val const :
Kappa_data_structures.Nbr.t ->
('a, 'b) e Kappa_data_structures.Loc.annoted
Smart constructor
val int : int -> ('a, 'b) e Kappa_data_structures.Loc.annoted
val float : float -> ('a, 'b) e Kappa_data_structures.Loc.annoted
val add :
('a, 'b) e Kappa_data_structures.Loc.annoted ->
('a, 'b) e Kappa_data_structures.Loc.annoted ->
('a, 'b) e Kappa_data_structures.Loc.annoted
val minus :
('a, 'b) e Kappa_data_structures.Loc.annoted ->
('a, 'b) e Kappa_data_structures.Loc.annoted ->
('a, 'b) e Kappa_data_structures.Loc.annoted
val mult :
('a, 'b) e Kappa_data_structures.Loc.annoted ->
('a, 'b) e Kappa_data_structures.Loc.annoted ->
('a, 'b) e Kappa_data_structures.Loc.annoted
val div :
('a, 'b) e Kappa_data_structures.Loc.annoted ->
('a, 'b) e Kappa_data_structures.Loc.annoted ->
('a, 'b) e Kappa_data_structures.Loc.annoted
val pow :
('a, 'b) e Kappa_data_structures.Loc.annoted ->
('a, 'b) e Kappa_data_structures.Loc.annoted ->
('a, 'b) e Kappa_data_structures.Loc.annoted
val ln :
('a, 'b) e Kappa_data_structures.Loc.annoted ->
('a, 'b) e Kappa_data_structures.Loc.annoted
val uminus :
('a, 'b) e Kappa_data_structures.Loc.annoted ->
('a, 'b) e Kappa_data_structures.Loc.annoted
val sin :
('a, 'b) e Kappa_data_structures.Loc.annoted ->
('a, 'b) e Kappa_data_structures.Loc.annoted
val cos :
('a, 'b) e Kappa_data_structures.Loc.annoted ->
('a, 'b) e Kappa_data_structures.Loc.annoted
val sqrt :
('a, 'b) e Kappa_data_structures.Loc.annoted ->
('a, 'b) e Kappa_data_structures.Loc.annoted
val add_dep :
(Kappa_data_structures.Operator.DepSet.t
* Kappa_data_structures.Operator.DepSet.t
* Kappa_data_structures.Operator.DepSet.t array
* Kappa_data_structures.Operator.DepSet.t array) ->
Kappa_data_structures.Operator.rev_dep ->
('a, int) e Kappa_data_structures.Loc.annoted ->
Kappa_data_structures.Operator.DepSet.t
* Kappa_data_structures.Operator.DepSet.t
* Kappa_data_structures.Operator.DepSet.t array
* Kappa_data_structures.Operator.DepSet.t array
depend in time, depend in event number, depend in given var
val add_dep_bool :
(Kappa_data_structures.Operator.DepSet.t
* Kappa_data_structures.Operator.DepSet.t
* Kappa_data_structures.Operator.DepSet.t array
* Kappa_data_structures.Operator.DepSet.t array) ->
Kappa_data_structures.Operator.rev_dep ->
('a, int) bool Kappa_data_structures.Loc.annoted ->
Kappa_data_structures.Operator.DepSet.t
* Kappa_data_structures.Operator.DepSet.t
* Kappa_data_structures.Operator.DepSet.t array
* Kappa_data_structures.Operator.DepSet.t array
val setup_alg_vars_rev_dep :
unit Kappa_data_structures.NamedDecls.t ->
(string Kappa_data_structures.Loc.annoted
* ('a, int) e Kappa_data_structures.Loc.annoted)
array ->
Kappa_data_structures.Operator.DepSet.t
* Kappa_data_structures.Operator.DepSet.t
* Kappa_data_structures.Operator.DepSet.t array
* Kappa_data_structures.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_data_structures.Loc.annoted ->
pervasives_bool
val is_time_homogeneous :
('a, 'b) e Kappa_data_structures.Loc.annoted ->
pervasives_bool
does not take into account symbolic propagation of expression
val has_progress_dep :
only_time:pervasives_bool ->
(Kappa_data_structures.Operator.DepSet.t
* Kappa_data_structures.Operator.DepSet.t
* Kappa_data_structures.Operator.DepSet.t array
* Kappa_data_structures.Operator.DepSet.t array) ->
('a, int) e Kappa_data_structures.Loc.annoted ->
pervasives_bool
val extract_connected_components :
('a, 'b) e Kappa_data_structures.Loc.annoted ->
'a list
val extract_connected_components_bool :
('a, 'b) bool Kappa_data_structures.Loc.annoted ->
'a list
val propagate_constant :
warning:
(pos:Kappa_data_structures.Loc.t ->
(Stdlib.Format.formatter -> unit) ->
unit) ->
?max_time:float ->
?max_events:int ->
updated_vars:int list ->
vars:
(string Kappa_data_structures.Loc.annoted
* ('a, int) e Kappa_data_structures.Loc.annoted)
array ->
('a, int) e Kappa_data_structures.Loc.annoted ->
('a, int) e Kappa_data_structures.Loc.annoted
val propagate_constant_bool :
warning:
(pos:Kappa_data_structures.Loc.t ->
(Stdlib.Format.formatter -> unit) ->
unit) ->
?max_time:float ->
?max_events:int ->
updated_vars:int list ->
vars:
(string Kappa_data_structures.Loc.annoted
* ('a, int) e Kappa_data_structures.Loc.annoted)
array ->
('a, int) bool Kappa_data_structures.Loc.annoted ->
('a, int) bool Kappa_data_structures.Loc.annoted
val is_equality_test_time :
(Kappa_data_structures.Operator.DepSet.t
* Kappa_data_structures.Operator.DepSet.t
* Kappa_data_structures.Operator.DepSet.t array
* Kappa_data_structures.Operator.DepSet.t array) ->
('a, int) bool ->
pervasives_bool
val map_on_mixture :
('a -> ('c, 'b) e) ->
('a, 'b) e Kappa_data_structures.Loc.annoted ->
('c, 'b) e Kappa_data_structures.Loc.annoted
val map_bool_on_mixture :
('a -> ('c, 'b) e) ->
('a, 'b) bool Kappa_data_structures.Loc.annoted ->
('c, 'b) bool Kappa_data_structures.Loc.annoted
val fold_on_mixture :
('a -> 'b -> 'a) ->
'a ->
('b, 'c) e Kappa_data_structures.Loc.annoted ->
'a
val fold_bool_on_mixture :
('a -> 'b -> 'a) ->
'a ->
('b, 'c) bool Kappa_data_structures.Loc.annoted ->
'a
val equal :
('a, 'b) e Kappa_data_structures.Loc.annoted ->
('a, 'b) e Kappa_data_structures.Loc.annoted ->
pervasives_bool
Syntactic equality up to positions but not associativity and comutativity
val equal_bool :
('a, 'b) bool Kappa_data_structures.Loc.annoted ->
('a, 'b) bool Kappa_data_structures.Loc.annoted ->
pervasives_bool