module Alg_expr_extra: sig .. end
Primitives for handling rule rates when detecting symmetries
val divide_expr_by_int : ('mix, 'id) Alg_expr.e Locality.annot ->
       int -> ('mix, 'id) Alg_expr.e Locality.annot
val simplify : ('mix, 'id) Alg_expr.e Locality.annot ->
       ('mix, 'id) Alg_expr.e Locality.annot
type ('mix, 'id) corrected_rate_const 
val print : (Format.formatter -> ('mix, 'id) Alg_expr.e Locality.annot option -> unit) ->
       Format.formatter ->
       ('mix, 'id) corrected_rate_const option -> unit
val get_corrected_rate : ('mix, 'id) Alg_expr.e Locality.annot ->
       ('mix, 'id) corrected_rate_const option
val necessarily_equal : ('mix, 'id) corrected_rate_const option ->
       ('mix, 'id) corrected_rate_const option -> bool
derivation
val dep : 'set ->
       ('mix -> 'set -> 'set) ->
       ('id -> 'set -> 'set) ->
       ('set -> 'set -> 'set) ->
       ('id -> 'set) ->
       ?time_var:'mix -> ('mix, 'id) Alg_expr.e Locality.annot -> 'set
val diff_token : ('mix, 'id) Alg_expr.e Locality.annot ->
       'id -> ('mix, 'id) Alg_expr.e Locality.annot
val diff_mixture : ?time_var:'mix ->
       ('mix, 'id) Alg_expr.e Locality.annot ->
       'mix -> ('mix, 'id) Alg_expr.e Locality.annot
val fold_over_mixtures_in_alg_exprs : (Pattern.id -> 'a -> 'a) -> Model.t -> 'a -> 'a