Module Rewrite.Defined_cst
type t= defined_cst
val ty : t -> Type.tval rules : t -> rule_setval rules_seq : t -> rule Sequence.tval rules_term_seq : t -> Term.rule Sequence.tval rules_lit_seq : t -> Lit.rule Sequence.tval defined_positions : t -> Defined_pos.Arr.tval level : t -> intval declare : ?level:int -> ID.t -> rule_set -> tdeclare id rulesmakesida defined constant with the given (initial) set of rules- raises Invalid_argument
if the ID is already a skolem or a constructor, or if the list of rules is empty
val declare_or_add : ID.t -> rule -> unitdeclare_or_add id ruledefinesidif it's not already a defined constant, and addruleto it
val declare_proj : proof:Proof.t -> Ind_ty.projector -> unitDeclare an inductive projector
val declare_cstor : proof:Proof.t -> Ind_ty.constructor -> unitAdd a rewrite rule
cstor (proj1 x)…(projn x) --> x
val add_term_rule : t -> Term.rule -> unitval add_term_rule_l : t -> Term.rule list -> unitval add_lit_rule : t -> Lit.rule -> unitval add_lit_rule_l : t -> Lit.rule list -> unitval add_eq_rule : Lit.rule -> unitAdd a rule on (dis)equality
val add_eq_rule_l : Lit.rule list -> unit