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.
- abstract class AbstractSaturationProcedure extends Theory
- 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
- type Heap = theories.heaps.Heap
Heaps
- 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 mostcompleteSplitBoundvalues, 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 AbstractSaturationProcedure
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
xcould turn intoywhen the equationx = yappears. In such cases, the saturation rule could get applied repeatedly for the same point. - type SimpleArray = theories.arrays.SimpleArray
Untyped arrays
- abstract class TermBasedSaturationProcedure extends AbstractSaturationProcedure
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 version of a saturation procedure only supports rules whose application points can be specified using a fixed-arity vector of terms, for instance the arguments of certain atoms occurring in a proof goal. The procedure takes simplification of terms occurring in the proof goal into account. It is defined in such a way that application points that occur repeatedly can also lead to repeated application of the rule. Application points are handled by a single task (with priority
basePriority) added to the task queue, which will always pick the application point with the highest priority and apply the defined handler to it. The flagpriorityUpdatesenables continuous updates of the priority of application points. - 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 Heap: theories.heaps.Heap.type
Heaps
- val ModuloArithmetic: theories.bitvectors.ModuloArithmetic.type
Bit-vectors and modular arithmetic
- val SimpleArray: theories.arrays.SimpleArray.type
Untyped arrays
- object ADT
- object AbstractSaturationProcedure
- 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 Incompleteness
Temporary hack to track incompleteness of theory implementations.
- object IntValueEnumTheory
- object MulTheory
- object Theory
- object TheoryBuilder
- object TheoryRegistry
Class for keeping track of instantiated theories.