package coq-core
The Coq Proof Assistant -- Core Binaries and Tools
Install
Dune Dependency
Authors
Maintainers
Sources
coq-8.19.2.tar.gz
md5=5d1187d5e44ed0163f76fb12dabf012e
sha512=91bc81530fa4f6498961583ad51eac5001f139881788b88e360a866ad8e2a6e2c5bce86d1a580ab4cd4782bf49d48318767df82471ce33ba3ac143e5569ad33c
doc/coq-core.pretyping/Indrec/index.html
Module Indrec
Source
Errors related to recursors building
Source
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
Source
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;
}
Source
val check_valid_elimination :
Environ.env ->
Constr.pinductive ->
dep:bool ->
Sorts.family ->
unit
Source
val build_case_analysis_scheme :
Environ.env ->
Evd.evar_map ->
Constr.pinductive ->
dep_flag ->
Sorts.family ->
Evd.evar_map * case_analysis
Build a dependent case elimination predicate unless type is in Prop or is a recursive record with primitive projections.
Source
val build_case_analysis_scheme_default :
Environ.env ->
Evd.evar_map ->
Constr.pinductive ->
Sorts.family ->
Evd.evar_map * case_analysis
Builds 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.
Source
val build_induction_scheme :
Environ.env ->
Evd.evar_map ->
Constr.pinductive ->
dep_flag ->
Sorts.family ->
Evd.evar_map * Constr.constr
Builds mutual (recursive) induction schemes
Source
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 list
Scheme 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
.
Source
val weaken_sort_scheme :
Environ.env ->
Evd.evar_map ->
bool ->
EConstr.ESorts.t ->
int ->
Constr.constr ->
Constr.types ->
Evd.evar_map * Constr.types * Constr.constr
Recursor names utilities
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>