package coq-core
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha512=9a35311acec2a806730b94ac7dceabc88837f235c52a14c026827d9b89433bd7fa9555a9fc6829aa49edfedb24c8bbaf1411ebf463b74a50aeb17cba47745b6b
doc/coq-core.pretyping/Reductionops/index.html
Module ReductionopsSource
Reduction Functions.
module CredNative :
Primred.RedNative
with type elem = EConstr.t
and type args = EConstr.t array
and type evd = Evd.evar_map
and type uinstance = EConstr.EInstance.tMachinery to customize the behavior of the reduction
Support for reduction effects
val declare_reduction_effect :
effect_name ->
(Environ.env -> Evd.evar_map -> Constr.constr -> unit) ->
unitval reduction_effect_hook :
Environ.env ->
Evd.evar_map ->
Names.Constant.t ->
Constr.constr Lazy.t ->
unittype e_reduction_function =
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
Evd.evar_map * EConstr.constrtype stack_reduction_function =
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.constr * EConstr.constr listGeneric Optimized Reduction Function using Closures
Same as (strong whd_beta[delta][iota]), but much faster on big terms
Lazy strategy, weak head reduction
Removes cast and put into applicative form
Head normal forms
Various reduction functions
val hnf_prod_app :
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.constr ->
EConstr.constrval hnf_prod_appvect :
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.constr array ->
EConstr.constrval hnf_prod_applist :
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.constr list ->
EConstr.constrval hnf_lam_app :
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.constr ->
EConstr.constrval hnf_lam_appvect :
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.constr array ->
EConstr.constrval hnf_lam_applist :
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.constr list ->
EConstr.constrval splay_prod :
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
(Names.Name.t Context.binder_annot * EConstr.constr) list * EConstr.constrval splay_lam :
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
(Names.Name.t Context.binder_annot * EConstr.constr) list * EConstr.constrval splay_prod_assum :
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.rel_context * EConstr.constrval splay_arity :
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
(Names.Name.t Context.binder_annot * EConstr.constr) list * EConstr.ESorts.tRaises Reduction.NotArity
Raises Reduction.NotArity
val splay_prod_n :
Environ.env ->
Evd.evar_map ->
int ->
EConstr.constr ->
EConstr.rel_context * EConstr.constrRaises Invalid_argument
val splay_lam_n :
Environ.env ->
Evd.evar_map ->
int ->
EConstr.constr ->
EConstr.rel_context * EConstr.constrRaises Invalid_argument
val dest_arity :
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.rel_context * EConstr.ESorts.tRaises Reduction.NotArity
val find_conclusion :
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
(EConstr.constr, EConstr.constr, EConstr.ESorts.t, EConstr.EInstance.t)
Constr.kind_of_termQuerying the kernel conversion oracle: opaque/transparent constants
Conversion Functions (uses closures, lazy strategy)
val is_conv :
?reds:TransparentState.t ->
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.constr ->
boolval is_conv_leq :
?reds:TransparentState.t ->
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.constr ->
boolval is_fconv :
?reds:TransparentState.t ->
Evd.conv_pb ->
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.constr ->
boolval check_conv :
?pb:Evd.conv_pb ->
?ts:TransparentState.t ->
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.constr ->
boolcheck_conv Checks universe constraints only. pb defaults to CUMUL and ts to a full transparent state.
val infer_conv :
?catch_incon:bool ->
?pb:Evd.conv_pb ->
?ts:TransparentState.t ->
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.constr ->
Evd.evar_map optioninfer_conv Adds necessary universe constraints to the evar map. pb defaults to CUMUL and ts to a full transparent state.
val infer_conv_ustate :
?catch_incon:bool ->
?pb:Evd.conv_pb ->
?ts:TransparentState.t ->
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.constr ->
UnivProblem.Set.t optionval vm_infer_conv :
?pb:Evd.conv_pb ->
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.constr ->
Evd.evar_map optionConversion with inference of universe constraints
val native_infer_conv :
?pb:Evd.conv_pb ->
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.constr ->
Evd.evar_map optionval infer_conv_gen :
(Evd.conv_pb ->
l2r:bool ->
Evd.evar_map ->
TransparentState.t ->
(Constr.constr, Evd.evar_map) Reduction.generic_conversion_function) ->
?catch_incon:bool ->
?pb:Evd.conv_pb ->
?ts:TransparentState.t ->
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.constr ->
Evd.evar_map optioninfer_conv_gen behaves like infer_conv but is parametrized by a conversion function. Used to pretype vm and native casts.
Heuristic for Conversion with Evar
Meta-related reduction functions
val meta_instance :
Environ.env ->
meta_instance_subst ->
EConstr.constr Evd.freelisted ->
EConstr.constr