Module Logtk.Precedence
Precedence (total ordering) on symbols
module Weight : sig ... end
module Constr : sig ... end
type tTotal Ordering on a finite number of symbols, plus a few more data (weight for KBO, status for RPC)
type precedence= t
val status : t -> ID.t -> symbol_statusStatus of the symbol
val sel_prec_weight : t -> ID.t -> intval db_weight : t -> Weight.tval lam_weight : t -> Weight.tval arg_coeff : t -> ID.t -> int -> intNth argument coefficient of a symbol (for KBO with argument coefficients).
val add_seq : t -> ID.t Iter.t -> unitval declare_status : t -> ID.t -> symbol_status -> unitChange the status of the given precedence
- raises Error
if the symbol is not in the the precedence already
module Seq : sig ... endinclude Interfaces.PRINT with type t := t
val weight_modarity : signature:Signature.t -> weight_funval weight_constant : weight_funval weight_invfreq : ID.t Iter.t -> weight_funval weight_freq : ID.t Iter.t -> weight_funval weight_invfreqrank : ID.t Iter.t -> weight_funval weight_freqrank : ID.t Iter.t -> weight_funval weight_fun_of_string : signature:Signature.t -> string -> (ID.t * int) Iter.t -> weight_funval set_weight : t -> weight_fun -> unitChange the weight function of the precedence
- since
- 0.5.3
Creation of a precedence from constraints
val create : ?weight:weight_fun -> ?arg_coeff:arg_coeff_fun -> ?db_w:int -> ?lmb_w:int -> [ `total ] Constr.t -> ID.t list -> tmake a precedence from the given constraints. Constraints near the head of the list are more important than constraints close to the tail. Only the very first constraint is assured to be totally satisfied if constraints do not agree with one another.
val default : ID.t list -> tdefault precedence. Default status for symbols is
Lexicographic.