sig
  type bin_alg_op = MULT | SUM | DIV | MINUS | POW | MODULO | MIN | MAX
  type un_alg_op = LOG | SQRT | EXP | SINUS | COSINUS | TAN | INT | UMINUS
  type state_alg_op =
      CPUTIME
    | TIME_VAR
    | EVENT_VAR
    | NULL_EVENT_VAR
    | TMAX_VAR
    | EMAX_VAR
  type bin_bool_op = AND | OR
  type un_bool_op = NOT
  type compare_op = GREATER | SMALLER | EQUAL | DIFF
  val print_bin_alg_op : Format.formatter -> Operator.bin_alg_op -> unit
  val print_un_alg_op : Format.formatter -> Operator.un_alg_op -> unit
  val print_state_alg_op : Format.formatter -> Operator.state_alg_op -> unit
  val print_bin_bool_op : Format.formatter -> Operator.bin_bool_op -> unit
  val print_un_bool_op : Format.formatter -> Operator.un_bool_op -> unit
  val print_compare_op : Format.formatter -> Operator.compare_op -> unit
  val bin_alg_op_to_json : Operator.bin_alg_op -> Yojson.Basic.json
  val bin_alg_op_of_json : Yojson.Basic.json -> Operator.bin_alg_op
  val un_alg_op_to_json : Operator.un_alg_op -> Yojson.Basic.json
  val un_alg_op_of_json : Yojson.Basic.json -> Operator.un_alg_op
  val state_alg_op_to_json : Operator.state_alg_op -> Yojson.Basic.json
  val state_alg_op_of_json : Yojson.Basic.json -> Operator.state_alg_op
  val bin_bool_op_to_json : Operator.bin_bool_op -> Yojson.Basic.json
  val bin_bool_op_of_json : Yojson.Basic.json -> Operator.bin_bool_op
  val un_bool_op_to_json : Operator.un_bool_op -> Yojson.Basic.json
  val un_bool_op_of_json : Yojson.Basic.json -> Operator.un_bool_op
  val compare_op_to_json : Operator.compare_op -> Yojson.Basic.json
  val compare_op_of_json : Yojson.Basic.json -> Operator.compare_op
  type rev_dep = ALG of int | RULE of int | MODIF of int
  module DepSet :
    sig
      type elt = rev_dep
      type t
      val empty : t
      val is_empty : t -> bool
      val singleton : elt -> t
      val is_singleton : t -> bool
      val add : elt -> t -> t
      val add_with_logs :
        ('parameters, 'error, elt -> t -> 'error * t) SetMap.with_log_wrap
      val remove : elt -> t -> t
      val add_while_testing_freshness :
        ('parameters, 'error, elt -> t -> 'error * bool * t)
        SetMap.with_log_wrap
      val remove_while_testing_existence :
        ('parameters, 'error, elt -> t -> 'error * bool * t)
        SetMap.with_log_wrap
      val remove_with_logs :
        ('parameters, 'error, elt -> t -> 'error * t) SetMap.with_log_wrap
      val split : elt -> t -> t * bool * t
      val union : t -> t -> t
      val disjoint_union : t -> t -> t option
      val inter : t -> t -> t
      val minus : t -> t -> t
      val diff : t -> t -> t
      val minus_with_logs :
        ('parameters, 'error, t -> t -> 'error * t) SetMap.with_log_wrap
      val union_with_logs :
        ('parameters, 'error, t -> t -> 'error * t) SetMap.with_log_wrap
      val disjoint_union_with_logs :
        ('parameters, 'error, t -> t -> 'error * t) SetMap.with_log_wrap
      val inter_with_logs :
        ('parameters, 'error, t -> t -> 'error * t) SetMap.with_log_wrap
      val diff_with_logs :
        ('parameters, 'error, t -> t -> 'error * t) SetMap.with_log_wrap
      val size : t -> int
      val mem : elt -> t -> bool
      val exists : (elt -> bool) -> t -> bool
      val filter : (elt -> bool) -> t -> t
      val filter_with_logs :
        ('parameters, 'error, (elt -> bool) -> t -> 'error * t)
        SetMap.with_log_wrap
      val for_all : (elt -> bool) -> t -> bool
      val partition : (elt -> bool) -> t -> t * t
      val partition_with_logs :
        ('parameters, 'error, (elt -> bool) -> t -> 'error * t * t)
        SetMap.with_log_wrap
      val compare : t -> t -> int
      val equal : t -> t -> bool
      val subset : t -> t -> bool
      val iter : (elt -> unit) -> t -> unit
      val fold : (elt -> '-> 'a) -> t -> '-> 'a
      val fold_inv : (elt -> '-> 'a) -> t -> '-> 'a
      val elements : t -> elt list
      val print : Format.formatter -> t -> unit
      val choose : t -> elt option
      val random : Random.State.t -> t -> elt option
      val min_elt : t -> elt option
      val max_elt : t -> elt option
    end
  val print_rev_dep : Format.formatter -> Operator.rev_dep -> unit
  val rev_dep_to_yojson : Operator.rev_dep -> Yojson.Basic.json
  val rev_dep_of_yojson : Yojson.Basic.json -> Operator.rev_dep
  val depset_to_yojson : Operator.DepSet.t -> Yojson.Basic.json
  val depset_of_yojson : Yojson.Basic.json -> Operator.DepSet.t
end