TypingThis 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
val sort_of : Environ.env -> Evd.evar_map -> EConstr.types -> Evd.evar_map * EConstr.ESorts.tTypecheck a type and return its sort
val check : Environ.env -> Evd.evar_map -> EConstr.constr -> EConstr.types -> Evd.evar_mapTypecheck a term has a given type (assuming the type is OK)
val type_of_variable : Environ.env -> Names.variable -> EConstr.typesType 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_sprop : EConstr.unsafe_judgmentval judge_of_prop : EConstr.unsafe_judgmentval judge_of_set : EConstr.unsafe_judgmentval judge_of_variable : Environ.env -> Names.Id.t -> EConstr.unsafe_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 judge_of_int : Environ.env -> Uint63.t -> EConstr.unsafe_judgmentval judge_of_float : Environ.env -> Float64.t -> EConstr.unsafe_judgmentval judge_of_string : Environ.env -> Pstring.t -> 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 * 'constr |
val 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