ComInductiveEntry points for the vernacular commands Inductive and CoInductive
val do_mutual_inductive : 
  template:bool option ->
  Constrexpr.cumul_univ_decl_expr option ->
  (Vernacexpr.one_inductive_expr * Vernacexpr.notation_declaration list) list ->
  cumulative:bool ->
  poly:bool ->
  ?typing_flags:Declarations.typing_flags ->
  private_ind:bool ->
  uniform:uniform_inductive_flag ->
  Declarations.recursivity_kind ->
  unitUser-interface API
Prepare a "match" template for a given inductive type. For each branch of the match, we list the constructor name followed by enough pattern variables. Not_found is raised if the given string isn't the qualid of a known inductive type.
val make_cases : Names.inductive -> string list listmodule Mind_decl : sig ... endval interp_mutual_inductive : 
  env:Environ.env ->
  template:bool option ->
  Constrexpr.cumul_univ_decl_expr option ->
  (Vernacexpr.one_inductive_expr * Vernacexpr.notation_declaration list) list ->
  cumulative:bool ->
  poly:bool ->
  ?typing_flags:Declarations.typing_flags ->
  private_ind:bool ->
  uniform:uniform_inductive_flag ->
  Declarations.recursivity_kind ->
  Mind_decl.telaborates an inductive declaration (the first half of do_mutual_inductive)
val interp_mutual_inductive_constr : 
  sigma:Evd.evar_map ->
  template:bool option ->
  udecl:UState.universe_decl ->
  variances:Entries.variance_entry ->
  ctx_params:( EConstr.t, EConstr.t ) Context.Rel.Declaration.pt list ->
  indnames:Names.Id.t list ->
  arities:EConstr.t list ->
  arityconcl:(bool * EConstr.ESorts.t) option list ->
  constructors:(Names.Id.t list * Constr.constr list) list ->
  env_ar_params:Environ.env ->
  cumulative:bool ->
  poly:bool ->
  private_ind:bool ->
  finite:Declarations.recursivity_kind ->
  Entries.mutual_inductive_entry
  * UnivNames.universe_binders
  * Univ.ContextSet.tthe post-elaboration part of interp_mutual_inductive, mainly dealing with universe levels
Internal API, exported for Record
val compute_template_inductive : 
  user_template:bool option ->
  env_ar_params:Environ.env ->
  ctx_params:( Constr.constr, Constr.constr ) Context.Rel.Declaration.pt list ->
  univ_entry:UState.universes_entry ->
  Entries.one_inductive_entry ->
  Sorts.t option ->
  Entries.inductive_universes_entry * Univ.ContextSet.tcompute_template_inductive computes whether an inductive can be template polymorphic.
val maybe_unify_params_in : 
  Environ.env ->
  Evd.evar_map ->
  ninds:int ->
  nparams:int ->
  binders:int ->
  EConstr.t ->
  Evd.evar_mapnparams is the number of parameters which aren't treated as uniform, ie the length of params (including letins) where the env is uniform params, inductives, params, binders.
val variance_of_entry : 
  cumulative:bool ->
  variances:Entries.variance_entry ->
  Entries.inductive_universes_entry ->
  Entries.variance_entry optionWill return None if non-cumulative, and resize if there are more universes than originally specified. If monomorphic, cumulative is treated as false.
module Internal : sig ... end