Module Logtk.Rat_lit
Arithmetic Rational Literal
type term= Term.t
Type Decls
type op=|Equal|Lesstype t= private{op : op;left : Q.t Monome.t;right : Q.t Monome.t;}Arithmetic literal (on rationals)
type lit= t
Basics
Operators
val generic_unif : ('subst, Q.t Monome.t) unif -> ('subst, t) unifGeneric unification/matching/variant, given such an operation on monomes
val apply_subst : Subst.Renaming.t -> Subst.t -> t Scoped.t -> tval apply_subst_no_simp : Subst.Renaming.t -> Subst.t -> t Scoped.t -> tSame as
apply_substbut takes careB NOTsimplifying the literal. In practice, mostly useful for comparison purpose.
val matching : ?subst:Subst.t -> t Scoped.t -> t Scoped.t -> Subst.t Sequence.tchecks 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.tval unify : ?subst:Unif_subst.t -> t Scoped.t -> t Scoped.t -> Unif_subst.t Sequence.tval subsumes : ?subst:Subst.t -> t Scoped.t -> t Scoped.t -> Subst.t Sequence.tFind substitutions such that
subst(lit_a)implieslit_b. This is more general than matching.
val are_variant : t -> t -> boolval is_trivial : t -> boolval is_absurd : t -> boolval fold_terms : ?pos:Position.t -> ?vars:bool -> ?ty_args:bool -> which:[< `Max | `All ] -> ord:Ordering.t -> subterms:bool -> t -> (term * Position.t) Sequence.tval max_terms : ord:Ordering.t -> t -> term listMaximal terms of the literal
val to_form : t -> Term.t SLiteral.tConversion into a simple literal
Iterators
module Seq : sig ... endFocus on a Term
module Focus : sig ... end