Package

ap.theories

bitvectors

Permalink

package bitvectors

Visibility
  1. Public
  2. All

Type Members

  1. trait AtomSplitHandler extends AnyRef

    Permalink

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

    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

    Permalink

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

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

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

    Permalink

    Modular arithmetic in the interval [lower, upper].

    Modular arithmetic in the interval [lower, upper].

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

    Permalink

    Ring of signed fixed-size bit-vectors

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

    Permalink

    Ring of unsigned fixed-size bit-vectors

Value Members

  1. object BitwiseOpIntervalPropagator

    Permalink

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

  2. object BitwiseOpSplitter extends TermBasedSaturationProcedure

    Permalink

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

  3. object CastAtomSplitter extends TermBasedSaturationProcedure

    Permalink

    Splitter handles the splitting of mod_cast, l_shift_cast, r_shift_cast.

    Splitter handles the splitting of mod_cast, l_shift_cast, r_shift_cast.

  4. object ExtractArithEncoder extends TheoryProcedure

    Permalink

    ExtractArithEncoder translates bv_extract to an existentially quantified equation

  5. object ExtractIntervalPropagator

    Permalink

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

  6. object ExtractPartitioner extends TheoryProcedure

    Permalink

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

  7. object InEqSimplifier

    Permalink

    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

    Permalink

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

  9. object ModCastSplitHandler extends AtomSplitHandler

    Permalink

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

  10. object ModPlugin extends Plugin

    Permalink
  11. object ModPostprocessor extends CollectingVisitor[Sort, IExpression]

    Permalink

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

  12. object ModPreprocessor

    Permalink

    Pre-processing of formulas

  13. object ModReducer

    Permalink

    Reducer for modular arithmetic

  14. object ModRing

    Permalink

    Modular arithmetic in the interval [lower, upper].

    Modular arithmetic in the interval [lower, upper].

  15. object ModuloArithmetic extends Theory

    Permalink

    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

    Permalink
  17. object RShiftCastSplitHandler extends AtomSplitHandler

    Permalink

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

Ungrouped