|
ESBMC
Efficient SMT-based Context-Bounded Model Checker
|
#include <big-int/bigint.hh>Go to the source code of this file.
Macros | |
| #define | UINT_X unsigned |
| #define | INT_X int |
| #define | UINT_FUNC(FUNC, LHS, RHS) |
| #define | INT_FUNC(FUNC, LHS, RHS) |
| #define | GET_BIT_INTERVALS(NAME, MIN_UFUNC, MAX_UFUNC, MIN_FUNC, MAX_FUNC) |
Functions | |
| UINT_X | unsigned_max_or (UINT_X a, UINT_X b, UINT_X c, UINT_X d) |
| Adaptation of the algorithm in Henry S. | |
| UINT_X | unsigned_min_or (UINT_X a, UINT_X b, UINT_X c, UINT_X d) |
| Adaptation of the algorithm in Henry S. | |
| UINT_X | unsigned_max_and (UINT_X a, UINT_X b, UINT_X c, UINT_X d) |
| Implementation of the algorithm in Henry S. | |
| UINT_X | unsigned_min_and (UINT_X a, UINT_X b, UINT_X c, UINT_X d) |
| Implementation of the algorithm in Henry S. | |
| UINT_X | unsigned_max_xor (UINT_X a, UINT_X b, UINT_X c, UINT_X d) |
| Implementation of the algorithm in Henry S. | |
| UINT_X | unsigned_min_xor (UINT_X a, UINT_X b, UINT_X c, UINT_X d) |
| Implementation of the algorithm in Henry S. | |
| UINT_X | unsigned_max_not (UINT_X a, UINT_X) |
| Implementation of the algorithm in Henry S. | |
| UINT_X | unsigned_min_not (UINT_X, UINT_X b) |
| Implementation of the algorithm in Henry S. | |
| UINT_X | unsigned_max_left_shift (UINT_X, UINT_X b, UINT_X, UINT_X d) |
| Upper bound on interval left shift. | |
| UINT_X | unsigned_min_left_shift (UINT_X a, UINT_X, UINT_X c, UINT_X) |
| Lower bound on interval left shift. | |
| UINT_X | unsigned_max_right_shift (UINT_X, UINT_X b, UINT_X c, UINT_X) |
| Upper bound on interval right shift. | |
| UINT_X | unsigned_min_right_shift (UINT_X a, UINT_X, UINT_X, UINT_X d) |
| Lower bound on interval right shift. | |
| UINT_X | unsigned_2_unsigned_max_truncate (UINT_X a, UINT_X b, UINT_X n) |
| Upper bound on unsigned to unsigned interval truncation. | |
| UINT_X | unsigned_2_unsigned_min_truncate (UINT_X a, UINT_X b, UINT_X n) |
| Lower bound on unsigned to unsigned interval truncation. | |
| UINT_X | signed_2_unsigned_max_truncate (INT_X a, INT_X b, UINT_X n) |
| Upper bound on signed to unsigned interval truncation. | |
| UINT_X | signed_2_unsigned_min_truncate (INT_X a, INT_X b, UINT_X n) |
| Lower bound on signed to unsigned interval truncation. | |
| UINT_X | signed_2_unsigned_max_extend (INT_X a, INT_X b, UINT_X n) |
| Upper bound on the unsigned extension of an n bit signed interval. | |
| UINT_X | signed_2_unsigned_min_extend (INT_X a, INT_X b, UINT_X n) |
| Lower bound on the unsigned extension of an n bit signed interval. | |
| INT_X | signed_max_or (INT_X a, INT_X b, INT_X c, INT_X d) |
| Implementation of the algorithm in Henry S. | |
| INT_X | signed_min_or (INT_X a, INT_X b, INT_X c, INT_X d) |
| Implementation of the algorithm in Henry S. | |
| INT_X | signed_max_and (INT_X a, INT_X b, INT_X c, INT_X d) |
| Implementation of the algorithm in Henry S. | |
| INT_X | signed_min_and (INT_X a, INT_X b, INT_X c, INT_X d) |
| Implementation of the algorithm in Henry S. | |
| INT_X | signed_max_xor (INT_X a, INT_X b, INT_X c, INT_X d) |
| Original upper bound on signed interval XOR, inspired by the case-based algorithm for signed interval OR in Henry S. | |
| INT_X | signed_min_xor (INT_X a, INT_X b, INT_X c, INT_X d) |
| Original lower bound on signed interval XOR, inspired by the case-based algorithm for signed interval OR in Henry S. | |
| INT_X | signed_max_not (INT_X a, INT_X) |
| Implementation of the algorithm in Henry S. | |
| INT_X | signed_min_not (INT_X, INT_X b) |
| Implementation of the algorithm in Henry S. | |
| INT_X | signed_max_left_shift (INT_X, INT_X b, UINT_X c, UINT_X d) |
| Upper bound on interval left shift. | |
| INT_X | signed_min_left_shift (INT_X a, INT_X, UINT_X c, UINT_X d) |
| Lower bound on interval left shift. | |
| INT_X | signed_max_right_shift (INT_X, INT_X b, UINT_X c, UINT_X d) |
| Upper bound on interval right shift. | |
| INT_X | signed_min_right_shift (INT_X a, INT_X, UINT_X c, UINT_X d) |
| Lower bound on interval right shift. | |
| INT_X | unsigned_2_signed (UINT_X x, UINT_X n) |
| Cast a limited-width unsigned integer to signed integer. | |
| INT_X | unsigned_2_signed_max_truncate (UINT_X a, UINT_X b, UINT_X n) |
| Upper bound on unsigned to signed interval truncation. | |
| INT_X | unsigned_2_signed_min_truncate (UINT_X a, UINT_X b, UINT_X n) |
| Lower bound on unsigned to signed interval truncation. | |
| INT_X | signed_2_signed_max_truncate (INT_X a, INT_X b, UINT_X n) |
| Upper bound on signed to signed interval truncation. | |
| INT_X | signed_2_signed_min_truncate (INT_X a, INT_X b, UINT_X n) |
| Lower bound on signed to signed interval truncation. | |
| INT_X | unsigned_2_signed_max_extend (UINT_X a, UINT_X b, UINT_X n) |
| Upper bound on the signed extension of an n bit unsigned interval. | |
| INT_X | unsigned_2_signed_min_extend (UINT_X a, UINT_X b, UINT_X n) |
| Lower bound on the signed extension of an n bit unsigned interval. | |
| GET_BIT_INTERVALS (interval_bitand, unsigned_min_and, unsigned_max_and, signed_min_and, signed_max_and) GET_BIT_INTERVALS(interval_bitor | |
| signed_max_or | GET_BIT_INTERVALS (interval_bitxor, unsigned_min_xor, unsigned_max_xor, signed_min_xor, signed_max_xor) GET_BIT_INTERVALS(interval_logical_right_shift |
Variables | |
| unsigned_min_or | |
| unsigned_max_or | |
| signed_min_or | |
| signed_max_or | unsigned_min_right_shift |
| signed_max_or | unsigned_max_right_shift |
| signed_max_or | signed_min_right_shift |
| #define GET_BIT_INTERVALS | ( | NAME, | |
| MIN_UFUNC, | |||
| MAX_UFUNC, | |||
| MIN_FUNC, | |||
| MAX_FUNC ) |
| #define INT_FUNC | ( | FUNC, | |
| LHS, | |||
| RHS ) |
| #define INT_X int |
| #define UINT_FUNC | ( | FUNC, | |
| LHS, | |||
| RHS ) |
| #define UINT_X unsigned |
| GET_BIT_INTERVALS | ( | interval_bitand | , |
| unsigned_min_and | , | ||
| unsigned_max_and | , | ||
| signed_min_and | , | ||
| signed_max_and | ) |
| signed_max_or GET_BIT_INTERVALS | ( | interval_bitxor | , |
| unsigned_min_xor | , | ||
| unsigned_max_xor | , | ||
| signed_min_xor | , | ||
| signed_max_xor | ) |
Upper bound on signed to signed interval truncation.
Maximum value of signed truncate(x, n) given n bits and signed x in [a,b]
| a | Min value of variable x |
| b | Max value of variable x |
| n | Number of bits of the result |
Lower bound on signed to signed interval truncation.
Minimum value of signed truncate(x, n) given n bits and signed x in [a,b]
| a | Min value of variable x |
| b | Max value of variable x |
| n | Number of bits of the result |
Upper bound on the unsigned extension of an n bit signed interval.
Maximum value of unsigned extend(x, n) given n bits and signed x in [a,b]
| a | Min value of variable x |
| b | Max value of variable x |
| n | Number of bits of the input |
Upper bound on signed to unsigned interval truncation.
Maximum value of unsigned truncate(x, n) given n bits and signed x in [a,b]
| a | Min value of variable x |
| b | Max value of variable x |
| n | Number of bits of the result |
Lower bound on the unsigned extension of an n bit signed interval.
Minimum value of unsigned extend(x, n) given n bits and signed x in [a,b]
| a | Min value of variable x |
| b | Max value of variable x |
| n | Number of bits of the input |
Lower bound on signed to unsigned interval truncation.
Minimum value of unsigned truncate(x, n) given n bits and signed x in [a,b]
| a | Min value of variable x |
| b | Max value of variable x |
| n | Number of bits of the result |
Implementation of the algorithm in Henry S.
Warren Jr., "Hacker's Delight", 2003
Maximum value of x & y given x in [a,b] and y in [c,d], potentially negative
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
Upper bound on interval left shift.
Maximum value of x << y given x in [a,b] and y in [c,d], potentially negative
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
Implementation of the algorithm in Henry S.
Warren Jr., "Hacker's Delight", 2003
Maximum value of ~x given x in [a,b], potentially negative
| a | Min value of variable x |
| b | Max value of variable x |
Implementation of the algorithm in Henry S.
Warren Jr., "Hacker's Delight", 2003
Maximum value of x | y given x in [a,b] and y in [c,d], potentially negative
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
Upper bound on interval right shift.
Maximum value of x >> y given x in [a,b] and y in [c,d], potentially negative
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
Original upper bound on signed interval XOR, inspired by the case-based algorithm for signed interval OR in Henry S.
Warren Jr., "Hacker's Delight", 2003
Maximum value of x ^ y given x in [a,b] and y in [c,d], potentially negative
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
Implementation of the algorithm in Henry S.
Warren Jr., "Hacker's Delight", 2003
Minimum value of x & y given x in [a,b] and y in [c,d], potentially negative
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
Lower bound on interval left shift.
Minimum value of x << y given x in [a,b] and y in [c,d], potentially negative
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
Implementation of the algorithm in Henry S.
Warren Jr., "Hacker's Delight", 2003
Minimum value of ~x given x in [a,b], potentially negative
| a | Min value of variable x |
| b | Max value of variable x |
Implementation of the algorithm in Henry S.
Warren Jr., "Hacker's Delight", 2003
Minimum value of x | y given x in [a,b] and y in [c,d], potentially negative
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
Lower bound on interval right shift.
Minimum value of x >> y given x in [a,b] and y in [c,d], potentially negative
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
Original lower bound on signed interval XOR, inspired by the case-based algorithm for signed interval OR in Henry S.
Warren Jr., "Hacker's Delight", 2003
Minimum value of x ^ y given x in [a,b] and y in [c,d], potentially negative
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
Cast a limited-width unsigned integer to signed integer.
Compute cas(x, n) given an n-bit unsigned input x
| x | Value to be converted |
| n | Number of bits of the result |
Upper bound on the signed extension of an n bit unsigned interval.
Maximum value of signed extend(x, n) given n bits and unsigned x in [a,b]
| a | Min value of variable x |
| b | Max value of variable x |
| n | Number of bits of the input |
Upper bound on unsigned to signed interval truncation.
Maximum value of signed truncate(x, n) given n bits and unsigned x in [a,b]
| a | Min value of variable x |
| b | Max value of variable x |
| n | Number of bits of the result |
Lower bound on the signed extension of an n bit unsigned interval.
Minimum value of signed extend(x, n) given n bits and unsigned x in [a,b]
| a | Min value of variable x |
| b | Max value of variable x |
| n | Number of bits of the input |
Lower bound on unsigned to signed interval truncation.
Minimum value of signed truncate(x, n) given n bits and unsigned x in [a,b]
| a | Min value of variable x |
| b | Max value of variable x |
| n | Number of bits of the result |
Upper bound on unsigned to unsigned interval truncation.
Maximum value of unsigned truncate(x, n) given n bits and unsigned x in [a,b]
| a | Min value of variable x |
| b | Max value of variable x |
| n | Number of bits of the result |
Lower bound on unsigned to unsigned interval truncation.
Minimum value of unsigned truncate(x, n) given n bits and unsigned x in [a,b]
| a | Min value of variable x |
| b | Max value of variable x |
| n | Number of bits of the result |
Implementation of the algorithm in Henry S.
Warren Jr., "Hacker's Delight", 2003
Maximum value of x & y given x in [a,b] and y in [c,d]
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
Upper bound on interval left shift.
Maximum value of x << y given x in [a,b] and y in [c,d]
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
Implementation of the algorithm in Henry S.
Warren Jr., "Hacker's Delight", 2003
Maximum value of ~x given x in [a,b]
| a | Min value of variable x |
| b | Max value of variable x |
Adaptation of the algorithm in Henry S.
Warren Jr., "Hacker's Delight", 2003 for unsigned integers of any width, by scanning from the least significant bit.
Maximum value of x | y given x in [a,b] and y in [c,d]
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
Upper bound on interval right shift.
Maximum value of x >> y given x in [a,b] and y in [c,d]
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
Implementation of the algorithm in Henry S.
Warren Jr., "Hacker's Delight", 2003
Maximum value of x ^ y given x in [a,b] and y in [c,d]
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
Implementation of the algorithm in Henry S.
Warren Jr., "Hacker's Delight", 2003
Minimum value of x & y given x in [a,b] and y in [c,d]
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
Lower bound on interval left shift.
Minimum value of x << y given x in [a,b] and y in [c,d]
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
Implementation of the algorithm in Henry S.
Warren Jr., "Hacker's Delight", 2003
Minimum value of ~x given x in [a,b]
| a | Min value of variable x |
| b | Max value of variable x |
Adaptation of the algorithm in Henry S.
Warren Jr., "Hacker's Delight", 2003 for unsigned integers of any width, by scanning from the least significant bit.
Minimum value of x | y given x in [a,b] and y in [c,d]
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
Lower bound on interval right shift.
Minimum value of x >> y given x in [a,b] and y in [c,d]
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
Implementation of the algorithm in Henry S.
Warren Jr., "Hacker's Delight", 2003
Minimum value of x ^ y given x in [a,b] and y in [c,d]
| a | Min value of variable x |
| b | Max value of variable x |
| c | Min value of variable y |
| d | Max value of variable y |
| signed_min_or |
| signed_max_or signed_min_right_shift |
| unsigned_max_or |
| signed_max_or unsigned_max_right_shift |
| unsigned_min_or |
| signed_max_or unsigned_min_right_shift |