Module Logtk.Int_lit
Arithmetic Integer Literal
type term
= Term.t
Type Decls
Basics
val make : op -> Z.t Monome.t -> Z.t Monome.t -> t
val make_no_simp : op -> Z.t Monome.t -> Z.t Monome.t -> t
val mk_eq : Z.t Monome.t -> Z.t Monome.t -> t
val mk_neq : Z.t Monome.t -> Z.t Monome.t -> t
val mk_less : Z.t Monome.t -> Z.t Monome.t -> t
val mk_lesseq : Z.t Monome.t -> Z.t Monome.t -> t
val mk_divides : ?sign:bool -> Z.t -> power:int -> Z.t Monome.t -> t
val mk_not_divides : Z.t -> power:int -> Z.t Monome.t -> t
val negate : t -> t
val sign : t -> bool
val polarity : t -> bool
Used for the literal ordering
val is_pos : t -> bool
Used for the literal ordering
val is_neg : t -> bool
val is_eq : t -> bool
val is_neq : t -> bool
val is_eqn : t -> bool
val is_ineq : t -> bool
< or <=
val is_less : t -> bool
< or <=
Operators
val generic_unif : ('subst, Z.t Monome.t) unif -> ('subst, t) unif
Generic unification/matching/variant, given such an operation on monomes
val apply_subst : Subst.Renaming.t -> Subst.t -> t Scoped.t -> t
val apply_subst_no_simp : Subst.Renaming.t -> Subst.t -> t Scoped.t -> t
Same as
apply_subst
but takes careB NOT
simplifying the literal. In practice, mostly useful for comparison purpose.
val matching : ?subst:Subst.t -> t Scoped.t -> t Scoped.t -> Subst.t Sequence.t
checks whether subst(lit_a) is equal to lit_b. Returns alternative substitutions s such that s(lit_a) = lit_b and s contains subst.
val variant : ?subst:Subst.t -> t Scoped.t -> t Scoped.t -> Subst.t Sequence.t
val unify : ?subst:Unif_subst.t -> t Scoped.t -> t Scoped.t -> Unif_subst.t Sequence.t
val subsumes : ?subst:Subst.t -> t Scoped.t -> t Scoped.t -> Subst.t Sequence.t
Find substitutions such that
subst(lit_a)
implieslit_b
. This is more general than matching.
val are_variant : t -> t -> bool
val is_trivial : t -> bool
val is_absurd : t -> bool
val fold_terms : ?pos:Position.t -> ?vars:bool -> ?ty_args:bool -> which:[< `Max | `All ] -> ord:Ordering.t -> subterms:bool -> t -> (term * Position.t) Sequence.t
val max_terms : ord:Ordering.t -> t -> term list
Maximal terms of the literal
val to_form : t -> Term.t SLiteral.t
Conversion into a simple literal
Iterators
module Seq : sig ... end
Focus on a Term
module Focus : sig ... end
module Util : sig ... end