Logtk.Ind_tyAn inductive datatype, defined by a list of constructors (and associated projectors that are defined as partial functions). Inductive types can be mutually recursive.
val section : Util.Section.tA projector for a given constructor and argument position
type t = private {ty_id : ID.t;ty_vars : Type.t HVar.t list;ty_pattern : Type.t;ty_constructors : constructor list;ty_is_rec : bool lazy_t;ty_proof : Proof.t;}An inductive type, along with its set of constructors
val pp : t CCFormat.printerexception NotAnInductiveType of ID.texception NotAnInductiveConstructor of ID.tDeclare the given inductive type.
Unsafe version of as_inductive_ty
val is_inductive_ty : ID.t -> boolas_inductive_ty (list int) will return list, [int] as an inductive type applied to some arguments
val is_inductive_type : Type.t -> boolis_inductive_type ty holds iff ty is an instance of some registered type (registered with declare_ty).
val is_inductive_simple_type : TypedSTerm.t -> boolval is_recursive : t -> boolval is_constructor : ID.t -> booltrue if the symbol is an inductive constructor (zero, successor...)
val as_constructor : ID.t -> (constructor * t) optionif id is a constructor of ity, then as_constructor id returns Some (cstor, ity)
val as_constructor_exn : ID.t -> constructor * tUnsafe version of as_constructor
val contains_inductive_types : Term.t -> booltrue iff the term contains at least one subterm with an inductive type
val projector_idx : projector -> intval projector_cstor : projector -> constructor