Module IndTyping

val typecheck_inductive : Environ.env -> sec_univs:Univ.Level.t array option -> Entries.mutual_inductive_entry -> Environ.env * Declarations.universes * Declarations.template_universes option * Univ.Variance.t array option * Names.Id.t array option option * Constr.rel_context * ((Declarations.inductive_arity * Constr.types array) * (Constr.rel_context * (Constr.rel_context * Constr.types) array) * Sorts.family) array

Type checking for some inductive entry. Returns:

  • environment with inductives + parameters in rel context
  • abstracted universes
  • checked variance info (variance for section universes is at the beginning of the array)
  • record entry (checked to be OK)
  • parameters
  • for each inductive, (arity * constructors) (with params) * (indices * splayed constructor types) (both without params) * top allowed elimination
val template_polymorphic_univs : ctor_levels:Univ.LSet.t -> Univ.ContextSet.t -> Constr.rel_context -> Univ.Universe.t -> (Univ.LSet.t * Univ.Level.t option list) option