object PresburgerTools
A collection of tools for analysing and transforming formulae in Presburger arithmetic
- Alphabetic
- By Inheritance
- PresburgerTools
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def bounds(objective: LinearCombination, constraint: Conjunction): Option[(IdealInt, IdealInt)]
Check whether the function
objective
has both a lower and an upper bound subject toconstraint
, and return such bounds. - def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
- def containsBVNonlin(f: Formula): Boolean
- def containsTheories(f: Formula): Boolean
- def distinctInterpretation[T <: Term](terms: Set[T], order: TermOrder): Map[ConstantTerm, IdealInt]
Find an interpretation of the constants in the given terms that will make all terms evaluate to pairwise distinct integers.
- def elimQuantifiersWithPreds(c: Conjunction): Conjunction
Quantifier elimination procedure that can also handle uninterpreted predicates, provided that predicates never occur in the scope of quantifiers.
Quantifier elimination procedure that can also handle uninterpreted predicates, provided that predicates never occur in the scope of quantifiers. Quantifiers above predicate occurrences are left in the formula. The method can also handle formulas with bit-vector arithmetic or non-linear multiplication, and is optimised for post-processing of interpolants.
- def eliminatePredicates(c: Conjunction, axioms: Conjunction, order: TermOrder): Conjunction
Compute the most general quantifier-free formula without uninterpreted predicates that implies the given formula, modulo the given axioms.
Compute the most general quantifier-free formula without uninterpreted predicates that implies the given formula, modulo the given axioms. If the input formula or the axioms contain quantifiers, this might not terminate.
- def enumDisjuncts(disjunction: Conjunction): Iterator[Conjunction]
Enumerate the disjuncts of a formula that already is in DNF.
- def enumModels(formula: Conjunction): Iterator[Conjunction]
Enumerate the models of a given formula.
Enumerate the models of a given formula. Currently, we assume that the formula does not contain predicates and only existential quantifiers (this could be relaxed)
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- def hasCountermodel(rawFormula: Conjunction): Option[Conjunction]
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- def isExistentialPresburger(f: Formula): Boolean
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isPresburger(f: Formula): Boolean
- def isQFPresburger(f: Formula): Boolean
- def isQFPresburgerConjunction(f: Conjunction): Boolean
- def isSatisfiable(rawFormula: Conjunction): Boolean
- def isValid(rawFormula: Conjunction): Boolean
- def lowerBound(objective: LinearCombination, constraint: Conjunction): Option[IdealInt]
Check whether the function
objective
has a lower bound subject toconstraint
, and return such a bound. - def miniScope(c: Conjunction): Conjunction
- def minimiseFormula(c: Conjunction): Conjunction
Minimise the given formula by eliminating unnecessary disjuncts.
Minimise the given formula by eliminating unnecessary disjuncts. This is a stronger version of the simplification performed by
ReduceWithConjunction
, and also simplifies formulaea & (b | c) & (b | c')
wherec & c'
is unsatisfiable. - final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def nonDNFEnumDisjuncts(formula: Conjunction): Iterator[Conjunction]
Enumerate the disjuncts of a formula (which might not be in DNF).
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toDNF(formula: Conjunction): Conjunction
Turn a formula into DNF.
Turn a formula into DNF. The DNF might not be complete in the sense that a formula
a & b | a & c
might only be normalised toa & (b | c)
- def toPrenex(c: Conjunction): Conjunction
Convert a given formula to prenex form.
Convert a given formula to prenex form. TODO: do something special for divisibilities?
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)