package coq-core
- Overview
- No Docs
You can search for identifiers within the package.
in-package search v0.2.0
Install
dune-project
Dependency
Authors
Maintainers
Sources
md5=8d852367b54f095d9fbabd000304d450
sha512=46922d5f2eb6802a148a52fd3e7f0be8370c93e7bc33cee05cf4a2044290845b10ccddbaa306f29c808e7c5019700763e37e45ff6deb507b874a4348010fed50
doc/coq-core.pretyping/Indrec/index.html
Module IndrecSource
Errors related to recursors building
type recursion_scheme_error = | NotAllowedCaseAnalysis of bool * Sorts.t * Constr.pinductive| NotMutualInScheme of Names.inductive * Names.inductive| NotAllowedDependentAnalysis of bool * Names.inductive
Eliminations
Build a case analysis elimination scheme in some sort family
type case_analysis = private {case_params : EConstr.rel_context;case_pred : Names.Name.t Context.binder_annot * EConstr.types;case_branches : EConstr.rel_context;case_arity : EConstr.rel_context;case_body : EConstr.t;case_type : EConstr.t;
}val check_valid_elimination :
Environ.env ->
Constr.pinductive ->
dep:bool ->
Sorts.family ->
unitval build_case_analysis_scheme :
Environ.env ->
Evd.evar_map ->
Constr.pinductive ->
dep_flag ->
Sorts.family ->
Evd.evar_map * case_analysisBuild a dependent case elimination predicate unless type is in Prop or is a recursive record with primitive projections.
val build_case_analysis_scheme_default :
Environ.env ->
Evd.evar_map ->
Constr.pinductive ->
Sorts.family ->
Evd.evar_map * case_analysisBuilds a recursive induction scheme (Peano-induction style) in the same sort family as the inductive family; it is dependent if not in Prop or a recursive record with primitive projections.
val build_induction_scheme :
Environ.env ->
Evd.evar_map ->
Constr.pinductive ->
dep_flag ->
Sorts.family ->
Evd.evar_map * Constr.constrBuilds mutual (recursive) induction schemes
val build_mutual_induction_scheme :
Environ.env ->
Evd.evar_map ->
?force_mutual:bool ->
(Constr.pinductive * dep_flag * Sorts.family) list ->
Evd.evar_map * Constr.constr listScheme combinators
weaken_sort_scheme env sigma eq s n c t derives by subtyping from c:t whose conclusion is quantified on Type i at position n of t a scheme quantified on sort s. set asks for s be declared equal to i, otherwise just less or equal to i.
val weaken_sort_scheme :
Environ.env ->
Evd.evar_map ->
bool ->
EConstr.ESorts.t ->
int ->
Constr.constr ->
Constr.types ->
Evd.evar_map * Constr.types * Constr.constrRecursor names utilities