sig
  val use_monotonic : bool Pervasives.ref
  val print_heur : string -> Formula.real_expr array array -> unit
  val force_competitive : bool Pervasives.ref
  val expanded_description :
    int ->
    Aux.Strings.t ->
    Structure.structure -> Formula.formula -> Formula.formula
  val expanded_form :
    int ->
    Aux.Strings.t ->
    Structure.structure -> Formula.formula -> Formula.formula
  val cache_expanded_form :
    Formula.formula ->
    Structure.structure -> string list -> Formula.formula -> unit
  val suggest_expansion : Structure.structure -> Formula.formula -> bool
  val of_payoff :
    ?force_parsimony:int ->
    ?max_alt_descr:int ->
    ?struc:Structure.structure ->
    ?fluent_preconds:(string * (string list * Formula.formula)) list ->
    float ->
    ?posi_frels:Aux.Strings.t ->
    ?nega_frels:Aux.Strings.t ->
    Aux.Strings.t -> Formula.real_expr -> Formula.real_expr
  val map_constants :
    (float -> float) -> Formula.real_expr -> Formula.real_expr
  val mix_heur :
    Formula.real_expr array array ->
    float -> Formula.real_expr array array -> Formula.real_expr array array
  val default_heuristic :
    ?struc:Structure.structure ->
    ?advr:float -> Arena.game -> Formula.real_expr array array
  val default_heuristic_old :
    ?struc:Structure.structure ->
    ?advr:float -> Arena.game -> Formula.real_expr array array
  val fluents_heuristic : Arena.game -> Formula.real_expr array array
  val is_constant_sum_one : Formula.real_expr array -> bool
  val is_constant_sum : Formula.real_expr array array -> bool
  val compute_heuristic :
    Arena.game * Arena.game_state -> Formula.real_expr array array
end