Package org.sosy_lab.java_smt.api
Interface BitvectorFormulaManager
-
- All Known Implementing Classes:
AbstractBitvectorFormulaManager
public interface BitvectorFormulaManagerManager for dealing with formulas of the bitvector sort.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description BitvectorFormulaadd(BitvectorFormula number1, BitvectorFormula number2)BitvectorFormulaand(BitvectorFormula bits1, BitvectorFormula bits2)Creates a formula representing an AND of the two arguments.BitvectorFormulaconcat(BitvectorFormula number, BitvectorFormula append)BooleanFormuladistinct(List<BitvectorFormula> pBits)All given bitvectors are pairwise unequal.BitvectorFormuladivide(BitvectorFormula number1, BitvectorFormula number2, boolean signed)BooleanFormulaequal(BitvectorFormula number1, BitvectorFormula number2)BitvectorFormulaextend(BitvectorFormula number, int extensionBits, boolean signed)Extend a bitvector to the left (add most significant bits).BitvectorFormulaextract(BitvectorFormula number, int msb, int lsb, boolean signed)intgetLength(BitvectorFormula number)BooleanFormulagreaterOrEquals(BitvectorFormula number1, BitvectorFormula number2, boolean signed)BooleanFormulagreaterThan(BitvectorFormula number1, BitvectorFormula number2, boolean signed)BooleanFormulalessOrEquals(BitvectorFormula number1, BitvectorFormula number2, boolean signed)BooleanFormulalessThan(BitvectorFormula number1, BitvectorFormula number2, boolean signed)BitvectorFormulamakeBitvector(int length, long pI)Convert a number into a bitvector with given size.BitvectorFormulamakeBitvector(int length, BigInteger pI)Convert a number into a bitvector with given size.BitvectorFormulamakeBitvector(int length, NumeralFormula.IntegerFormula pI)Convert/Cast a numeral formula into a bitvector with given size.BitvectorFormulamakeVariable(int length, String pVar)Creates a variable with exactly the given name and bitwidth.BitvectorFormulamakeVariable(FormulaType.BitvectorType type, String pVar)BitvectorFormulamodulo(BitvectorFormula number1, BitvectorFormula number2, boolean signed)BitvectorFormulamultiply(BitvectorFormula number1, BitvectorFormula number2)BitvectorFormulanegate(BitvectorFormula number)BitvectorFormulanot(BitvectorFormula bits)Creates a formula representing a negation of the argument.BitvectorFormulaor(BitvectorFormula bits1, BitvectorFormula bits2)Creates a formula representing an OR of the two arguments.BitvectorFormulashiftLeft(BitvectorFormula number, BitvectorFormula toShift)BitvectorFormulashiftRight(BitvectorFormula number, BitvectorFormula toShift, boolean signed)Return a term representing the (arithmetic if signed is true) right shift of number by toShift.BitvectorFormulasubtract(BitvectorFormula number1, BitvectorFormula number2)NumeralFormula.IntegerFormulatoIntegerFormula(BitvectorFormula pI, boolean signed)Interpret a signed/unsigned bitvector formula as an integer formula.BitvectorFormulaxor(BitvectorFormula bits1, BitvectorFormula bits2)
-
-
-
Method Detail
-
makeBitvector
BitvectorFormula makeBitvector(int length, long pI)
Convert a number into a bitvector with given size.- Throws:
IllegalArgumentException- if the number is out of range for the given length.
-
makeBitvector
BitvectorFormula makeBitvector(int length, BigInteger pI)
Convert a number into a bitvector with given size.- Throws:
IllegalArgumentException- if the number is out of range for the given length.
-
makeBitvector
BitvectorFormula makeBitvector(int length, NumeralFormula.IntegerFormula pI)
Convert/Cast a numeral formula into a bitvector with given size.If the numeral formula is too large for the given length, we cut off the largest bits and only use the smallest bits.
-
toIntegerFormula
NumeralFormula.IntegerFormula toIntegerFormula(BitvectorFormula pI, boolean signed)
Interpret a signed/unsigned bitvector formula as an integer formula.
-
makeVariable
BitvectorFormula makeVariable(int length, String pVar)
Creates a variable with exactly the given name and bitwidth.Please make sure that the given name is valid in SMT-LIB2. Take a look at
FormulaManager.isValidName(java.lang.String)for further information.This method does not quote or unquote the given name, but uses the plain name "AS IS".
Formula.toString()can return a different String than the given one.
-
makeVariable
BitvectorFormula makeVariable(FormulaType.BitvectorType type, String pVar)
- See Also:
makeVariable(int, String)
-
getLength
int getLength(BitvectorFormula number)
-
negate
BitvectorFormula negate(BitvectorFormula number)
-
add
BitvectorFormula add(BitvectorFormula number1, BitvectorFormula number2)
-
subtract
BitvectorFormula subtract(BitvectorFormula number1, BitvectorFormula number2)
-
divide
BitvectorFormula divide(BitvectorFormula number1, BitvectorFormula number2, boolean signed)
-
modulo
BitvectorFormula modulo(BitvectorFormula number1, BitvectorFormula number2, boolean signed)
-
multiply
BitvectorFormula multiply(BitvectorFormula number1, BitvectorFormula number2)
-
equal
BooleanFormula equal(BitvectorFormula number1, BitvectorFormula number2)
-
greaterThan
BooleanFormula greaterThan(BitvectorFormula number1, BitvectorFormula number2, boolean signed)
-
greaterOrEquals
BooleanFormula greaterOrEquals(BitvectorFormula number1, BitvectorFormula number2, boolean signed)
-
lessThan
BooleanFormula lessThan(BitvectorFormula number1, BitvectorFormula number2, boolean signed)
-
lessOrEquals
BooleanFormula lessOrEquals(BitvectorFormula number1, BitvectorFormula number2, boolean signed)
-
not
BitvectorFormula not(BitvectorFormula bits)
Creates a formula representing a negation of the argument.- Parameters:
bits- Formula- Returns:
!f1
-
and
BitvectorFormula and(BitvectorFormula bits1, BitvectorFormula bits2)
Creates a formula representing an AND of the two arguments.- Parameters:
bits1- a Formulabits2- a Formula- Returns:
f1 & f2
-
or
BitvectorFormula or(BitvectorFormula bits1, BitvectorFormula bits2)
Creates a formula representing an OR of the two arguments.- Parameters:
bits1- a Formulabits2- a Formula- Returns:
f1 | f2
-
xor
BitvectorFormula xor(BitvectorFormula bits1, BitvectorFormula bits2)
-
shiftRight
BitvectorFormula shiftRight(BitvectorFormula number, BitvectorFormula toShift, boolean signed)
Return a term representing the (arithmetic if signed is true) right shift of number by toShift.
-
shiftLeft
BitvectorFormula shiftLeft(BitvectorFormula number, BitvectorFormula toShift)
-
concat
BitvectorFormula concat(BitvectorFormula number, BitvectorFormula append)
-
extract
BitvectorFormula extract(BitvectorFormula number, int msb, int lsb, boolean signed)
- Parameters:
number- The bitvector to extract.msb- Upper index. Must be greater than or equal to 0 and less than the bit-width of number.lsb- Lower index. Must be less than or equal to msb and greater or equal to 0.signed- Whether the extension should depend on the sign bit. Note: Some SMT-Solvers ignore this. (i.e. Boolector)
-
extend
BitvectorFormula extend(BitvectorFormula number, int extensionBits, boolean signed)
Extend a bitvector to the left (add most significant bits).- Parameters:
number- The bitvector to extend.extensionBits- How many bits to add.signed- Whether the extension should depend on the sign bit.
-
distinct
BooleanFormula distinct(List<BitvectorFormula> pBits)
All given bitvectors are pairwise unequal.
-
-