Module Reduction
val whd_all : 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 : Environ.env -> Constr.types -> Constr.constr list -> Constr.types
Pseudo-reduction rule Prod(x,A,B) a --> B
x\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 lengthn
and possibly with let-ins; it returnst
with the assumptions ofΓ
instantiated byargs
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
val dest_arity : Environ.env -> Constr.types -> Term.arity
val is_arity : Environ.env -> Constr.types -> bool
val eta_expand : Environ.env -> Constr.constr -> Constr.types -> Constr.constr
val dest_prod : Environ.env -> Constr.types -> Constr.rel_context * Constr.types
val dest_prod_assum : Environ.env -> Constr.types -> Constr.rel_context * Constr.types
val dest_lam : Environ.env -> Constr.constr -> Constr.rel_context * Constr.constr
val dest_lam_assum : Environ.env -> Constr.constr -> Constr.rel_context * Constr.constr
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