Module Libzipperposition.Ind_cst
Inductive Constants and Cases
Skolem constants of an inductive type, coversets, etc. required for inductive reasoning.
type tA ground term of an inductive type. It must correspond to a term built with the corresponding
tonly. For instance, a constant of typenatshould be equal tos^n(0)in any model.
exceptionInvalidDecl of stringexceptionNotAnInductiveConstant of Logtk.ID.t
val id_as_cst : Logtk.ID.t -> t optionval id_as_cst_exn : Logtk.ID.t -> tUnsafe version of
as_cst- raises NotAnInductiveConstant
 if it fails
val id_is_cst : Logtk.ID.t -> boolCheck whether the given constant is an inductive constant
val on_new_cst : t Logtk.Signal.tTriggered with new inductive constants
val make_skolem : Logtk.Type.t -> Logtk.ID.tval make : ?depth:int -> is_sub:bool -> Logtk.Type.t -> tMake a new constant of the given type
val is_sub : t -> boolIs the constant a sub-constant (i.e. a subterm of a case in a coverset)?
val id_is_sub : Logtk.ID.t -> boolval equal : t -> t -> boolval compare : t -> t -> intval hash : t -> intval id : t -> Logtk.ID.tval to_term : t -> Logtk.Term.tval ty : t -> Logtk.Type.tval same_type : t -> t -> boolDo these two inductive constants have the same type?
val pp : t CCFormat.printerval depth : t -> intval dominates : t -> t -> booldominates c1 c2ifdepth c1 < depth c2. This way, in coversets, the top constant dominates all sub-constants
Inductive Skolems
type ind_skolem= Logtk.ID.t * Logtk.Type.t
val ind_skolem_compare : ind_skolem -> ind_skolem -> intval ind_skolem_equal : ind_skolem -> ind_skolem -> boolval id_is_ind_skolem : Logtk.ID.t -> Logtk.Type.t -> boolid_is_potential_cst id tyreturnstrueifid:tyis a skolem constant of an inductive type, or if it is already an inductive constant.
val find_ind_skolems : Logtk.Term.t -> ind_skolem Sequence.tfind_ind_skolem termsearches subterms oftermfor constants that are of an inductive type and that are skolems or (already) inductive constants.
val ind_skolem_depth : Logtk.ID.t -> intdepth of the skolem (0 if not an inductive constant)