ReductionopsReduction Functions.
val debug_RAKAM : CDebug.tmodule 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.tmodule ReductionBehaviour : sig ... endMachinery to customize the behavior of the reduction
val declare_reduction_effect : 
  effect_name ->
  ( Environ.env -> Evd.evar_map -> Constr.constr -> unit ) ->
  unitval set_reduction_effect : Names.Constant.t -> effect_name -> unitval reduction_effect_hook : 
  Environ.env ->
  Evd.evar_map ->
  Names.Constant.t ->
  Constr.constr Stdlib.Lazy.t ->
  unitmodule Stack : sig ... endtype reduction_function =
  Environ.env ->
  Evd.evar_map ->
  EConstr.constr ->
  EConstr.constrtype 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 listval clos_norm_flags : CClosure.RedFlags.reds -> reduction_functionval clos_whd_flags : CClosure.RedFlags.reds -> reduction_functionval nf_beta : reduction_functionSame as (strong whd_beta[delta][iota]), but much faster on big terms
val nf_betaiota : reduction_functionval nf_betaiotazeta : reduction_functionval nf_zeta : reduction_functionval nf_all : reduction_functionval nf_evar : Evd.evar_map -> EConstr.constr -> EConstr.constrLazy strategy, weak head reduction
val whd_evar : Evd.evar_map -> EConstr.constr -> EConstr.constrval whd_nored : reduction_functionval whd_beta : reduction_functionval whd_betaiota : reduction_functionval whd_betaiotazeta : reduction_functionval whd_all : reduction_functionval whd_allnolet : reduction_functionval whd_betalet : reduction_functionval whd_nored_stack : stack_reduction_functionRemoves cast and put into applicative form
val whd_beta_stack : stack_reduction_functionval whd_betaiota_stack : stack_reduction_functionval whd_betaiotazeta_stack : stack_reduction_functionval whd_all_stack : stack_reduction_functionval whd_allnolet_stack : stack_reduction_functionval whd_betalet_stack : stack_reduction_functionval whd_const : Names.Constant.t -> reduction_functionval whd_delta_stack : stack_reduction_functionval whd_delta : reduction_functionval whd_betadeltazeta_stack : stack_reduction_functionval whd_betadeltazeta : reduction_functionval whd_zeta_stack : stack_reduction_functionval whd_zeta : reduction_functionval shrink_eta : Evd.evar_map -> EConstr.constr -> EConstr.constrval whd_stack_gen : CClosure.RedFlags.reds -> stack_reduction_functionVarious reduction functions
val beta_applist : 
  Evd.evar_map ->
  (EConstr.constr * EConstr.constr list) ->
  EConstr.constrval 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 hnf_decompose_prod : 
  Environ.env ->
  Evd.evar_map ->
  EConstr.constr ->
  (Names.Name.t Context.binder_annot * EConstr.constr) list * EConstr.constrval hnf_decompose_lambda : 
  Environ.env ->
  Evd.evar_map ->
  EConstr.constr ->
  (Names.Name.t Context.binder_annot * EConstr.constr) list * EConstr.constrval hnf_decompose_prod_decls : 
  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
val sort_of_arity : 
  Environ.env ->
  Evd.evar_map ->
  EConstr.constr ->
  EConstr.ESorts.tRaises Reduction.NotArity
val hnf_decompose_prod_n_decls : 
  Environ.env ->
  Evd.evar_map ->
  int ->
  EConstr.constr ->
  EConstr.rel_context * EConstr.constrRaises Invalid_argument
val hnf_decompose_lambda_n_assum : 
  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 reducible_mind_case : Evd.evar_map -> EConstr.constr -> boolval find_conclusion : 
  Environ.env ->
  Evd.evar_map ->
  EConstr.constr ->
  ( EConstr.constr, EConstr.constr, EConstr.ESorts.t, EConstr.EInstance.t )
    Constr.kind_of_termval is_arity : Environ.env -> Evd.evar_map -> EConstr.constr -> boolval is_sort : Environ.env -> Evd.evar_map -> EConstr.types -> boolval contract_fix : Evd.evar_map -> EConstr.fixpoint -> EConstr.constrval contract_cofix : Evd.evar_map -> EConstr.cofixpoint -> EConstr.constrval is_transparent : Environ.env -> Names.Constant.t Names.tableKey -> boolQuerying the kernel conversion oracle: opaque/transparent constants
type conversion_test = Univ.Constraints.t -> Univ.Constraints.tval 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 ) Conversion.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.
val check_hyps_inclusion : 
  Environ.env ->
  Evd.evar_map ->
  Names.GlobRef.t ->
  Constr.named_context ->
  unitTypeops.check_hyps_inclusion but handles evars in the environment.
type state = EConstr.constr * Stack.ttype state_reduction_function = Environ.env -> Evd.evar_map -> state -> stateval pr_state : Environ.env -> Evd.evar_map -> state -> Pp.tval whd_nored_state : state_reduction_functionval whd_betaiota_deltazeta_for_iota_state : 
  TransparentState.t ->
  state_reduction_functionval is_head_evar : Environ.env -> Evd.evar_map -> EConstr.constr -> boolval meta_instance : 
  Environ.env ->
  Evd.evar_map ->
  EConstr.constr Evd.freelisted ->
  EConstr.constrMeta-related reduction functions
val inferred_universes : 
  (UGraph.t * Univ.Constraints.t) Conversion.universe_compareDeprecated
val 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_prod_n : 
  Environ.env ->
  Evd.evar_map ->
  int ->
  EConstr.constr ->
  EConstr.rel_context * EConstr.constrval splay_lam_n : 
  Environ.env ->
  Evd.evar_map ->
  int ->
  EConstr.constr ->
  EConstr.rel_context * EConstr.constr