Packages

p

ap.theories

bitvectors

package bitvectors

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Type Members

  1. trait AtomSplitHandler extends AnyRef

    Interface for handling different kinds of bit-vector atoms in the ModCastSplitter.

  2. case class GaloisField(p: IdealInt) extends ModRing with Field with Product with Serializable

    Galois fields of cardinality p, for some prime number p.

  3. class ModRing extends Ring with RingWithOrder with CommutativeRing with RingWithIntConversions

    Modular arithmetic in the interval [lower, upper].

  4. case class SignedBVRing(bits: Int) extends ModRing with EuclidianRing with Product with Serializable

    Ring of signed fixed-size bit-vectors

  5. case class UnsignedBVRing(bits: Int) extends ModRing with EuclidianRing with Product with Serializable

    Ring of unsigned fixed-size bit-vectors

Value Members

  1. object BitwiseOpIntervalPropagator

    BitwiseOpIntervalPropagator handles interval constraint propagation between the arguments and results of bit-wise operators, currently bv_and.

  2. object BitwiseOpSplitter extends TermBasedSaturationProcedure

    Class responsible for splitting bit-wise operators, moving gradually towards a fully bit-blasted representation of the operator.

  3. object CastAtomSplitter extends TermBasedSaturationProcedure

    Splitter handles the splitting of mod_cast, l_shift_cast, r_shift_cast.

  4. object ExtractArithEncoder extends TheoryProcedure

    ExtractArithEncoder translates bv_extract to an existentially quantified equation

  5. object ExtractIntervalPropagator

    ExtractIntervalPropagator handles interval constraint propagation between the arguments and results of extract atoms.

  6. object ExtractPartitioner extends TheoryProcedure

    Partition extract-atoms for given terms to eliminate overlapping extracts.

  7. object InEqSimplifier

    Class implementing some bit-vector-specific simplification rules for inequalities over zero-one variables: s >= 2*t - 1 --> s >= t and 2*s >= t --> s >= t.

    Class implementing some bit-vector-specific simplification rules for inequalities over zero-one variables: s >= 2*t - 1 --> s >= t and 2*s >= t --> s >= t.

    TODO: can those rules be implemented within the ModReducer?

  8. object LShiftCastSplitHandler extends AtomSplitHandler

    Splitter handles the splitting of l_shift_cast-operations, when no other inference steps are possible anymore.

  9. object ModCastSplitHandler extends AtomSplitHandler

    Splitter handles the splitting of mod_cast-operations, when no other inference steps are possible anymore.

  10. object ModPlugin extends Plugin
  11. object ModPostprocessor extends CollectingVisitor[Sort, IExpression]

    Post-processing of bit-vector formulas to make them correctly typed.

  12. object ModPreprocessor

    Pre-processing of formulas

  13. object ModReducer

    Reducer for modular arithmetic

  14. object ModRing

    Modular arithmetic in the interval [lower, upper].

  15. object ModuloArithmetic extends Theory

    Theory for performing bounded modulo-arithmetic (arithmetic modulo some number N).

    Theory for performing bounded modulo-arithmetic (arithmetic modulo some number N). This in particular includes bit-vector/machine arithmetic.

  16. object ModuloArithmeticConstants
  17. object RShiftCastSplitHandler extends AtomSplitHandler

    Splitter handles the splitting of r_shift_cast-operations, when no other inference steps are possible anymore.

Ungrouped