Module Redexpr

Interpretation layer of redexprs such as hnf, cbv, etc.

type red_expr = (EConstr.constrNames.evaluable_global_referencePattern.constr_pattern) Genredexpr.red_expr_gen
val out_with_occurrences : 'a Locus.with_occurrences -> Locus.occurrences * 'a
val reduction_of_red_expr : Environ.env -> red_expr -> Reductionops.e_reduction_function * Constr.cast_kind
val declare_reduction : string -> Reductionops.reduction_function -> unit

Adding a custom reduction (function to be use at the ML level) NB: the effect is permanent.

val declare_red_expr : bool -> string -> red_expr -> unit

Adding a custom reduction (function to be called a vernac command). The boolean flag is the locality.

val set_strategy : bool -> (Conv_oracle.level * Names.evaluable_global_reference list) list -> unit

Sets the expansion strategy of a constant. When the boolean is true, the effect is non-synchronous (i.e. it does not survive section and module closure).

val cbv_vm : Reductionops.reduction_function

call by value normalisation function using the virtual machine