|
| constant_interval_exprt (exprt lower, exprt upper, typet type) |
|
| constant_interval_exprt (const typet &type) |
|
| constant_interval_exprt (const exprt &lower, const exprt &upper) |
|
bool | is_well_formed () const |
|
const exprt & | get_lower () const |
|
const exprt & | get_upper () const |
|
constant_interval_exprt | handle_constant_unary_expression (const irep_idt &op) const |
| SET OF ARITHMETIC OPERATORS. More...
|
|
constant_interval_exprt | handle_constant_binary_expression (const constant_interval_exprt &other, const irep_idt &) const |
|
constant_interval_exprt | eval (const irep_idt &unary_operator) const |
|
constant_interval_exprt | eval (const irep_idt &binary_operator, const constant_interval_exprt &o) const |
|
constant_interval_exprt | unary_plus () const |
|
constant_interval_exprt | unary_minus () const |
|
constant_interval_exprt | typecast (const typet &type) const |
|
tvt | is_definitely_true () const |
|
tvt | is_definitely_false () const |
|
tvt | logical_and (const constant_interval_exprt &o) const |
|
tvt | logical_or (const constant_interval_exprt &o) const |
|
tvt | logical_xor (const constant_interval_exprt &o) const |
|
tvt | logical_not () const |
|
constant_interval_exprt | plus (const constant_interval_exprt &o) const |
|
constant_interval_exprt | minus (const constant_interval_exprt &other) const |
|
constant_interval_exprt | multiply (const constant_interval_exprt &o) const |
|
constant_interval_exprt | divide (const constant_interval_exprt &o) const |
|
constant_interval_exprt | modulo (const constant_interval_exprt &o) const |
|
constant_interval_exprt | left_shift (const constant_interval_exprt &o) const |
|
constant_interval_exprt | right_shift (const constant_interval_exprt &o) const |
|
constant_interval_exprt | bitwise_not () const |
|
constant_interval_exprt | bitwise_xor (const constant_interval_exprt &o) const |
|
constant_interval_exprt | bitwise_or (const constant_interval_exprt &o) const |
|
constant_interval_exprt | bitwise_and (const constant_interval_exprt &o) const |
|
tvt | less_than (const constant_interval_exprt &o) const |
|
tvt | greater_than (const constant_interval_exprt &o) const |
|
tvt | less_than_or_equal (const constant_interval_exprt &o) const |
|
tvt | greater_than_or_equal (const constant_interval_exprt &o) const |
|
tvt | equal (const constant_interval_exprt &o) const |
|
tvt | not_equal (const constant_interval_exprt &o) const |
|
constant_interval_exprt | increment () const |
|
constant_interval_exprt | decrement () const |
|
bool | is_empty () const |
|
bool | is_single_value_interval () const |
|
std::string | to_string () const |
|
bool | is_top () const |
|
bool | is_bottom () const |
|
constant_interval_exprt | top () const |
|
constant_interval_exprt | bottom () const |
|
bool | has_no_lower_bound () const |
|
bool | has_no_upper_bound () const |
|
min_value_exprt | min () const |
|
max_value_exprt | max () const |
|
constant_exprt | zero () const |
|
bool | is_numeric () const |
|
bool | is_int () const |
|
bool | is_float () const |
|
bool | is_bitvector () const |
|
bool | is_signed () const |
|
bool | is_unsigned () const |
|
bool | contains_zero () const |
|
bool | contains (const constant_interval_exprt &interval) const |
|
bool | is_positive () const |
|
bool | is_zero () const |
|
bool | is_negative () const |
|
| binary_exprt (const exprt &_lhs, const irep_idt &_id, exprt _rhs) |
|
| binary_exprt (exprt _lhs, const irep_idt &_id, exprt _rhs, typet _type) |
|
exprt & | lhs () |
|
const exprt & | lhs () const |
|
exprt & | rhs () |
|
const exprt & | rhs () const |
|
const exprt & | op2 () const =delete |
|
exprt & | op2 ()=delete |
|
const exprt & | op3 () const =delete |
|
exprt & | op3 ()=delete |
|
exprt & | op0 () |
|
const exprt & | op0 () const |
|
exprt & | op1 () |
|
const exprt & | op1 () const |
|
| exprt () |
|
| exprt (const irep_idt &_id) |
|
| exprt (irep_idt _id, typet _type) |
|
| exprt (irep_idt _id, typet _type, operandst &&_operands) |
|
| exprt (const irep_idt &id, typet type, source_locationt loc) |
|
typet & | type () |
| Return the type of the expression. More...
|
|
const typet & | type () const |
|
bool | has_operands () const |
| Return true if there is at least one operand. More...
|
|
operandst & | operands () |
|
const operandst & | operands () const |
|
exprt & | with_source_location (source_locationt location) & |
| Add the source location from location , if it is non-nil. More...
|
|
exprt && | with_source_location (source_locationt location) && |
| Add the source location from location , if it is non-nil. More...
|
|
exprt & | with_source_location (const exprt &other) & |
| Add the source location from other , if it has any. More...
|
|
exprt && | with_source_location (const exprt &other) && |
| Add the source location from other , if it has any. More...
|
|
void | reserve_operands (operandst::size_type n) |
|
void | copy_to_operands (const exprt &expr) |
| Copy the given argument to the end of exprt 's operands. More...
|
|
void | add_to_operands (const exprt &expr) |
| Add the given argument to the end of exprt 's operands. More...
|
|
void | add_to_operands (exprt &&expr) |
| Add the given argument to the end of exprt 's operands. More...
|
|
void | add_to_operands (exprt &&e1, exprt &&e2) |
| Add the given arguments to the end of exprt 's operands. More...
|
|
void | add_to_operands (exprt &&e1, exprt &&e2, exprt &&e3) |
| Add the given arguments to the end of exprt 's operands. More...
|
|
bool | is_constant () const |
| Return whether the expression is a constant. More...
|
|
bool | is_true () const |
| Return whether the expression is a constant representing true . More...
|
|
bool | is_false () const |
| Return whether the expression is a constant representing false . More...
|
|
bool | is_zero () const |
| Return whether the expression is a constant representing 0. More...
|
|
bool | is_one () const |
| Return whether the expression is a constant representing 1. More...
|
|
bool | is_boolean () const |
| Return whether the expression represents a Boolean. More...
|
|
const source_locationt & | find_source_location () const |
| Get a source_locationt from the expression or from its operands (non-recursively). More...
|
|
const source_locationt & | source_location () const |
|
source_locationt & | add_source_location () |
|
void | drop_source_location () |
|
void | visit (class expr_visitort &visitor) |
| These are pre-order traversal visitors, i.e., the visitor is executed on a node before its children have been visited. More...
|
|
void | visit (class const_expr_visitort &visitor) const |
|
void | visit_pre (std::function< void(exprt &)>) |
|
void | visit_pre (std::function< void(const exprt &)>) const |
|
void | visit_post (std::function< void(exprt &)>) |
| These are post-order traversal visitors, i.e., the visitor is executed on a node after its children have been visited. More...
|
|
void | visit_post (std::function< void(const exprt &)>) const |
|
depth_iteratort | depth_begin () |
|
depth_iteratort | depth_end () |
|
const_depth_iteratort | depth_begin () const |
|
const_depth_iteratort | depth_end () const |
|
const_depth_iteratort | depth_cbegin () const |
|
const_depth_iteratort | depth_cend () const |
|
depth_iteratort | depth_begin (std::function< exprt &()> mutate_root) const |
|
const_unique_depth_iteratort | unique_depth_begin () const |
|
const_unique_depth_iteratort | unique_depth_end () const |
|
const_unique_depth_iteratort | unique_depth_cbegin () const |
|
const_unique_depth_iteratort | unique_depth_cend () const |
|
bool | is_nil () const |
|
bool | is_not_nil () const |
|
| irept (const irep_idt &_id) |
|
| irept (const irep_idt &_id, const named_subt &_named_sub, const subt &_sub) |
|
| irept ()=default |
|
const irep_idt & | id () const |
|
const std::string & | id_string () const |
|
void | id (const irep_idt &_data) |
|
const irept & | find (const irep_idt &name) const |
|
irept & | add (const irep_idt &name) |
|
irept & | add (const irep_idt &name, irept irep) |
|
const std::string & | get_string (const irep_idt &name) const |
|
const irep_idt & | get (const irep_idt &name) const |
|
bool | get_bool (const irep_idt &name) const |
|
signed int | get_int (const irep_idt &name) const |
|
std::size_t | get_size_t (const irep_idt &name) const |
|
long long | get_long_long (const irep_idt &name) const |
|
void | set (const irep_idt &name, const irep_idt &value) |
|
void | set (const irep_idt &name, irept irep) |
|
void | set (const irep_idt &name, const long long value) |
|
void | set_size_t (const irep_idt &name, const std::size_t value) |
|
void | remove (const irep_idt &name) |
|
void | move_to_sub (irept &irep) |
|
void | move_to_named_sub (const irep_idt &name, irept &irep) |
|
bool | operator== (const irept &other) const |
|
bool | operator!= (const irept &other) const |
|
void | swap (irept &irep) |
|
bool | operator< (const irept &other) const |
| defines ordering on the internal representation More...
|
|
bool | ordering (const irept &other) const |
| defines ordering on the internal representation More...
|
|
int | compare (const irept &i) const |
| defines ordering on the internal representation comments are ignored More...
|
|
void | clear () |
|
void | make_nil () |
|
subt & | get_sub () |
|
const subt & | get_sub () const |
|
named_subt & | get_named_sub () |
|
const named_subt & | get_named_sub () const |
|
std::size_t | hash () const |
|
std::size_t | full_hash () const |
|
bool | full_eq (const irept &other) const |
|
std::string | pretty (unsigned indent=0, unsigned max_indent=0) const |
|
| sharing_treet (irep_idt _id) |
|
| sharing_treet (irep_idt _id, named_subt _named_sub, subt _sub) |
|
| sharing_treet () |
|
| sharing_treet (const sharing_treet &irep) |
|
| sharing_treet (sharing_treet &&irep) |
|
sharing_treet & | operator= (const sharing_treet &irep) |
|
sharing_treet & | operator= (sharing_treet &&irep) |
|
| ~sharing_treet () |
|
const dt & | read () const |
|
dt & | write () |
|
|
static constant_interval_exprt | singleton (const exprt &x) |
|
static bool | is_valid_bound (const exprt &expr) |
|
static constant_interval_exprt | tvt_to_interval (const tvt &val) |
|
static bool | equal (const exprt &a, const exprt &b) |
| END SET OF ARITHMETIC OPERATORS. More...
|
|
static bool | not_equal (const exprt &a, const exprt &b) |
|
static bool | less_than (const exprt &a, const exprt &b) |
|
static bool | less_than_or_equal (const exprt &a, const exprt &b) |
|
static bool | greater_than (const exprt &a, const exprt &b) |
|
static bool | greater_than_or_equal (const exprt &a, const exprt &b) |
|
static tvt | is_true (const constant_interval_exprt &a) |
|
static tvt | is_false (const constant_interval_exprt &a) |
|
static tvt | logical_and (const constant_interval_exprt &a, const constant_interval_exprt &b) |
|
static tvt | logical_or (const constant_interval_exprt &a, const constant_interval_exprt &b) |
|
static tvt | logical_xor (const constant_interval_exprt &a, const constant_interval_exprt &b) |
|
static tvt | logical_not (const constant_interval_exprt &a) |
|
static constant_interval_exprt | unary_plus (const constant_interval_exprt &a) |
|
static constant_interval_exprt | unary_minus (const constant_interval_exprt &a) |
|
static constant_interval_exprt | plus (const constant_interval_exprt &a, const constant_interval_exprt &b) |
|
static constant_interval_exprt | minus (const constant_interval_exprt &a, const constant_interval_exprt &b) |
|
static constant_interval_exprt | multiply (const constant_interval_exprt &a, const constant_interval_exprt &b) |
|
static constant_interval_exprt | divide (const constant_interval_exprt &a, const constant_interval_exprt &b) |
|
static constant_interval_exprt | modulo (const constant_interval_exprt &a, const constant_interval_exprt &b) |
|
static constant_interval_exprt | left_shift (const constant_interval_exprt &a, const constant_interval_exprt &b) |
|
static constant_interval_exprt | right_shift (const constant_interval_exprt &a, const constant_interval_exprt &b) |
|
static constant_interval_exprt | bitwise_not (const constant_interval_exprt &a) |
|
static constant_interval_exprt | bitwise_xor (const constant_interval_exprt &a, const constant_interval_exprt &b) |
|
static constant_interval_exprt | bitwise_or (const constant_interval_exprt &a, const constant_interval_exprt &b) |
|
static constant_interval_exprt | bitwise_and (const constant_interval_exprt &a, const constant_interval_exprt &b) |
|
static tvt | less_than (const constant_interval_exprt &a, const constant_interval_exprt &b) |
|
static tvt | greater_than (const constant_interval_exprt &a, const constant_interval_exprt &b) |
|
static tvt | less_than_or_equal (const constant_interval_exprt &a, const constant_interval_exprt &b) |
|
static tvt | greater_than_or_equal (const constant_interval_exprt &a, const constant_interval_exprt &b) |
|
static tvt | equal (const constant_interval_exprt &a, const constant_interval_exprt &b) |
|
static tvt | not_equal (const constant_interval_exprt &a, const constant_interval_exprt &b) |
|
static constant_interval_exprt | increment (const constant_interval_exprt &a) |
|
static constant_interval_exprt | decrement (const constant_interval_exprt &a) |
|
static bool | is_empty (const constant_interval_exprt &a) |
|
static bool | is_single_value_interval (const constant_interval_exprt &a) |
|
static bool | is_top (const constant_interval_exprt &a) |
|
static bool | is_bottom (const constant_interval_exprt &a) |
|
static bool | is_min (const constant_interval_exprt &a) |
|
static bool | is_max (const constant_interval_exprt &a) |
|
static constant_interval_exprt | top (const typet &type) |
|
static constant_interval_exprt | bottom (const typet &type) |
|
static bool | is_min (const exprt &expr) |
|
static bool | is_max (const exprt &expr) |
|
static constant_exprt | zero (const typet &type) |
|
static constant_exprt | zero (const exprt &expr) |
|
static constant_exprt | zero (const constant_interval_exprt &interval) |
|
static constant_interval_exprt | get_extremes (const constant_interval_exprt &lhs, const constant_interval_exprt &rhs, const irep_idt &operation) |
|
static exprt | get_extreme (std::vector< exprt > values, bool min=true) |
|
static exprt | get_max (const exprt &a, const exprt &b) |
|
static exprt | get_min (const exprt &a, const exprt &b) |
|
static exprt | get_min (std::vector< exprt > &values) |
|
static exprt | get_max (std::vector< exprt > &values) |
|
static constant_interval_exprt | simplified_interval (exprt &l, exprt &r) |
|
static exprt | simplified_expr (exprt expr) |
|
static bool | is_numeric (const typet &type) |
|
static bool | is_numeric (const exprt &expr) |
|
static bool | is_numeric (const constant_interval_exprt &interval) |
|
static bool | is_int (const typet &type) |
|
static bool | is_int (const exprt &expr) |
|
static bool | is_int (const constant_interval_exprt &interval) |
|
static bool | is_float (const typet &type) |
|
static bool | is_float (const exprt &expr) |
|
static bool | is_float (const constant_interval_exprt &interval) |
|
static bool | is_bitvector (const typet &type) |
|
static bool | is_bitvector (const constant_interval_exprt &interval) |
|
static bool | is_bitvector (const exprt &expr) |
|
static bool | is_signed (const typet &type) |
|
static bool | is_signed (const exprt &expr) |
|
static bool | is_signed (const constant_interval_exprt &interval) |
|
static bool | is_unsigned (const typet &type) |
|
static bool | is_unsigned (const exprt &expr) |
|
static bool | is_unsigned (const constant_interval_exprt &interval) |
|
static bool | is_extreme (const exprt &expr) |
|
static bool | is_extreme (const exprt &expr1, const exprt &expr2) |
|
static bool | contains_extreme (const exprt expr) |
|
static bool | contains_extreme (const exprt expr1, const exprt expr2) |
|
static bool | is_positive (const exprt &expr) |
|
static bool | is_positive (const constant_interval_exprt &interval) |
|
static bool | is_zero (const exprt &expr) |
|
static bool | is_zero (const constant_interval_exprt &interval) |
|
static bool | is_negative (const exprt &expr) |
|
static bool | is_negative (const constant_interval_exprt &interval) |
|
static exprt | abs (const exprt &expr) |
|
static void | check (const exprt &expr, const validation_modet vm=validation_modet::INVARIANT) |
|
static void | validate (const exprt &expr, const namespacet &, const validation_modet vm=validation_modet::INVARIANT) |
|
static void | check (const exprt &, const validation_modet) |
| Check that the expression is well-formed (shallow checks only, i.e., subexpressions and its type are not checked). More...
|
|
static void | validate (const exprt &expr, const namespacet &, const validation_modet vm=validation_modet::INVARIANT) |
| Check that the expression is well-formed, assuming that its subexpressions and type have all ready been checked for well-formedness. More...
|
|
static void | validate_full (const exprt &expr, const namespacet &ns, const validation_modet vm=validation_modet::INVARIANT) |
| Check that the expression is well-formed (full check, including checks of all subexpressions and the type) More...
|
|
static bool | is_comment (const irep_idt &name) |
|
static std::size_t | number_of_non_comments (const named_subt &) |
| count the number of named_sub elements that are not comments More...
|
|
Represents an interval of values.
Bounds should be constant expressions or min_value_exprt for the lower bound or max_value_exprt for the upper bound Also, lower bound should always be <= upper bound
Definition at line 51 of file interval.h.