TypingSourceThis module provides the typing machine with existential variables and universes.
val type_of :
?refresh:bool ->
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
Evd.evar_map * EConstr.typesTypecheck a term and return its type + updated evars, optionally refreshing universes
Typecheck a type and return its sort
Typecheck a term has a given type (assuming the type is OK)
Type of a variable.
val solve_evars :
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
Evd.evar_map * EConstr.constrSolve existential variables using typing
val check_allowed_sort :
Environ.env ->
Evd.evar_map ->
Names.inductive EConstr.puniverses ->
EConstr.constr ->
EConstr.constr ->
Evd.evar_map * EConstr.ERelevance.tRaise an error message if incorrect elimination for this inductive (first constr is term to match, second is return predicate)
val check_type_fixpoint :
?loc:Loc.t ->
Environ.env ->
Evd.evar_map ->
Names.Name.t EConstr.binder_annot array ->
EConstr.types array ->
EConstr.unsafe_judgment array ->
Evd.evar_mapRaise an error message if bodies have types not unifiable with the expected ones
val check_actual_type :
Environ.env ->
Evd.evar_map ->
EConstr.unsafe_judgment ->
EConstr.types ->
Evd.evar_mapVariant of check that assumes that the argument term is well-typed.
val type_judgment :
Environ.env ->
Evd.evar_map ->
EConstr.unsafe_judgment ->
Evd.evar_map * EConstr.unsafe_type_judgmentval judge_of_apply :
Environ.env ->
Evd.evar_map ->
EConstr.unsafe_judgment ->
EConstr.unsafe_judgment array ->
Evd.evar_map * EConstr.unsafe_judgmentval judge_of_abstraction :
Environ.env ->
Evd.evar_map ->
Names.Name.t ->
EConstr.unsafe_type_judgment ->
EConstr.unsafe_judgment ->
EConstr.unsafe_judgmentval judge_of_product :
Environ.env ->
Evd.evar_map ->
Names.Name.t ->
EConstr.unsafe_type_judgment ->
EConstr.unsafe_type_judgment ->
EConstr.unsafe_judgmentval judge_of_projection :
Environ.env ->
Evd.evar_map ->
Names.Projection.t ->
EConstr.unsafe_judgment ->
EConstr.unsafe_judgmentval checked_appvect :
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.constr array ->
Evd.evar_map * EConstr.constrval checked_applist :
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.constr list ->
Evd.evar_map * EConstr.constrval recheck_against :
Environ.env ->
Evd.evar_map ->
EConstr.constr ->
EConstr.constr ->
Evd.evar_map * EConstr.typeshack
type ('constr, 'types, 'r) bad_relevance = | BadRelevanceBinder of 'r * ('constr, 'types, 'r) Context.Rel.Declaration.pt| BadRelevanceCase of 'r * 'constrval bad_relevance_msg :
(Environ.env
* Evd.evar_map
* (EConstr.constr, EConstr.types, EConstr.ERelevance.t) bad_relevance)
CWarnings.msgTemplate typing
val get_template_parameters :
Environ.env ->
Evd.evar_map ->
Names.inductive ->
EConstr.unsafe_judgment array ->
Evd.evar_map * Inductive.param_univs