Module Reduction

None of these functions do eta reduction

val beta_applist : Constr.constr -> Constr.constr list -> Constr.constr

Builds an application node, reducing beta redexes it may produce.

val beta_appvect : Constr.constr -> Constr.constr array -> Constr.constr

Builds an application node, reducing beta redexes it may produce.

Builds an application node, reducing beta redexe it may produce.

val hnf_prod_applist : Environ.env -> Constr.types -> Constr.constr list -> Constr.types

Pseudo-reduction rule Prod(x,A,B) a --> Bx\a

val hnf_prod_applist_decls : Environ.env -> int -> Constr.types -> Constr.constr list -> Constr.types

In hnf_prod_applist_decls n c args, c is supposed to (whd-)reduce to the form ∀Γ.t with Γ of length n and possibly with let-ins; it returns t with the assumptions of Γ instantiated by args and the local definitions of Γ expanded.

val betazeta_appvect : int -> Constr.constr -> Constr.constr array -> Constr.constr

Compatibility alias for Term.lambda_appvect_decls

val whd_decompose_prod : Environ.env -> Constr.types -> Constr.rel_context * Constr.types
val whd_decompose_prod_decls : Environ.env -> Constr.types -> Constr.rel_context * Constr.types
val whd_decompose_lambda : Environ.env -> Constr.constr -> Constr.rel_context * Constr.constr
val whd_decompose_lambda_decls : Environ.env -> Constr.constr -> Constr.rel_context * Constr.constr
val whd_decompose_lambda_n_assum : Environ.env -> int -> Constr.constr -> Constr.rel_context * Constr.constr

This is typically the function to use to extract the context of a Fix not already in normal form up to and including the decreasing argument, counting as many lambda's as given by the decreasing index + 1

exception NotArity
val dest_arity : Environ.env -> Constr.types -> Term.arity
val is_arity : Environ.env -> Constr.types -> bool

Deprecated

Re-deprecated in 8.19

val hnf_decompose_prod : Environ.env -> Constr.types -> Constr.rel_context * Constr.types
val hnf_decompose_prod_decls : Environ.env -> Constr.types -> Constr.rel_context * Constr.types
val hnf_decompose_lambda : Environ.env -> Constr.constr -> Constr.rel_context * Constr.constr
val hnf_decompose_lambda_decls : Environ.env -> Constr.constr -> Constr.rel_context * Constr.constr
val hnf_decompose_lambda_n_decls : Environ.env -> int -> Constr.constr -> Constr.rel_context * Constr.constr