Module Kappa_terms.Alg_expr

type pervasives_bool = bool
type ('mix, 'id) e =
  1. | 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
  2. | UN_ALG_OP of Kappa_data_structures.Operator.un_alg_op * ('mix, 'id) e Kappa_data_structures.Loc.annoted
  3. | STATE_ALG_OP of Kappa_data_structures.Operator.state_alg_op
  4. | ALG_VAR of 'id
  5. | KAPPA_INSTANCE of 'mix
  6. | TOKEN_ID of 'id
  7. | CONST of Kappa_data_structures.Nbr.t
  8. | 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
  9. | DIFF_TOKEN of ('mix, 'id) e Kappa_data_structures.Loc.annoted * 'id
  10. | DIFF_KAPPA_INSTANCE of ('mix, 'id) e Kappa_data_structures.Loc.annoted * 'mix
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

Smart constructor

val int : int -> ('a, 'b) e Kappa_data_structures.Loc.annoted
val float : float -> ('a, 'b) e Kappa_data_structures.Loc.annoted

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

val has_mix : ?var_decls:('b -> ('c, 'b) e) -> ('a, 'b) e -> 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 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 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

Syntactic equality up to positions but not associativity and comutativity