package theories
Package object making available some of the objects in sub-packages
- Alphabetic
- By Inheritance
- theories
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Package Members
Type Members
- class ADT extends SMTLinearisableTheory
Theory solver for algebraic data-types.
- class DivZero extends Theory
Theory representing the SMT-LIB semantics of division and modulo by zero.
Theory representing the SMT-LIB semantics of division and modulo by zero. According to SMT-LIB, division is a total function, and division by zero has to be represented as a unary uninterpreted function.
- type ExtArray = theories.arrays.ExtArray
Extensional arrays
- class Heap extends SMTLinearisableTheory
- class IntValueEnumTheory extends Theory
A theory for explicitly enumerating all values of integer terms.
A theory for explicitly enumerating all values of integer terms. The proof procedure that will take care of the splitting will be given the priority specified by
splitterCost
. The splitting of the value range of terms will initially be binary; once the range of possible values of a term has been narrowed down to at mostcompleteSplitBound
values, in a single step the range will be split into all individual values. In order to initiate splitting, literalsIntValueEnumTheory.enumPred(t)
have to be added to a proof goal. - trait MulTheory extends Theory
Trait for theories providing general, non-linear multiplication.
- abstract class SaturationProcedure extends Theory
Class to simplify the implementation of saturation procedures as part of theory plugins.
Class to simplify the implementation of saturation procedures as part of theory plugins. A saturation procedure is a procedure waiting for patterns to occur in a proof goal (e.g., formulas of a certain shape), and can apply proof rules for every such occurrence. Saturation will be implemented by adding tasks to the task queue of every goal, so that the prover can globally schedule the different rules to be applied.
This procedure does not take into account that applications points might get rewritten during the proof process; e.g., a variable
x
could turn intoy
when the equationx = y
appears. In such cases, the saturation rule could get applied repeatedly for the same point. - type SimpleArray = theories.arrays.SimpleArray
Untyped arrays
- trait Theory extends AnyRef
trait for representing signature and axioms of theories, e.g., the theory of arrays.
trait for representing signature and axioms of theories, e.g., the theory of arrays. This is used to make sure that theory symbols are unique.
- abstract class TheoryBuilder extends AnyRef
Interface to construct theory objects with complex parameters.
- class TheoryCollector extends CollectingVisitor[Unit, Unit] with Cloneable
Class to find out which theories where used in a given set of formulae/expressions
Value Members
- val ExtArray: theories.arrays.ExtArray.type
Extensional arrays
- val GroebnerMultiplication: theories.nia.GroebnerMultiplication.type
Non-linear arithmetic, support for general multiplication
- val ModuloArithmetic: theories.bitvectors.ModuloArithmetic.type
Bit-vectors and modular arithmetic
- val SimpleArray: theories.arrays.SimpleArray.type
Untyped arrays
- object ADT
- object BitShiftMultiplication extends MulTheory
Multiplication by means of axioms describing shift-and-add
- object DivZero
- object FunctionalConsistency extends Theory
A dummy theory that represents the functional consistency axioms for functional predicates.
- object Heap
- object Incompleteness
Temporary hack to track incompleteness of theory implementations.
- object IntValueEnumTheory
- object MulTheory
- object SaturationProcedure
- object Theory
- object TheoryBuilder
- object TheoryRegistry
Class for keeping track of instantiated theories.