Reduction
None of these functions do eta reduction
val whd_all : ?evars:CClosure.evar_handler -> Environ.env -> Constr.constr -> Constr.constr
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.
val beta_app : Constr.constr -> Constr.constr -> Constr.constr
Builds an application node, reducing beta redexe it may produce.
val hnf_prod_applist : ?evars:CClosure.evar_handler -> Environ.env -> Constr.types -> Constr.constr list -> Constr.types
Pseudo-reduction rule Prod(x,A,B) a --> Bx\a
val hnf_prod_applist_decls : ?evars:CClosure.evar_handler -> 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 : ?evars:CClosure.evar_handler -> Environ.env -> Constr.types -> Constr.rel_context * Constr.types
val whd_decompose_prod_decls : ?evars:CClosure.evar_handler -> Environ.env -> Constr.types -> Constr.rel_context * Constr.types
val whd_decompose_lambda : ?evars:CClosure.evar_handler -> Environ.env -> Constr.constr -> Constr.rel_context * Constr.constr
val whd_decompose_lambda_decls : ?evars:CClosure.evar_handler -> Environ.env -> Constr.constr -> Constr.rel_context * Constr.constr
val whd_decompose_lambda_n_assum : ?evars:CClosure.evar_handler -> 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
val dest_arity : ?evars:CClosure.evar_handler -> Environ.env -> Constr.types -> Term.arity
val is_arity : ?evars:CClosure.evar_handler -> Environ.env -> Constr.types -> bool
val eta_expand : ?evars:CClosure.evar_handler -> Environ.env -> Constr.constr -> Constr.types -> Constr.constr