CBMC
|
#include <invariant_set.h>
Public Types | |
typedef std::set< std::pair< unsigned, unsigned > > | ineq_sett |
typedef interval_templatet< mp_integer > | boundst |
typedef std::map< unsigned, boundst > | bounds_mapt |
Public Member Functions | |
invariant_sett (value_setst &_value_sets, inv_object_storet &_object_store, const namespacet &_ns) | |
void | output (std::ostream &out) const |
bool | make_union (const invariant_sett &other_invariants) |
void | strengthen (const exprt &expr) |
void | make_true () |
void | make_false () |
void | make_threaded () |
void | apply_code (const codet &code) |
void | modifies (const exprt &lhs) |
void | assignment (const exprt &lhs, const exprt &rhs) |
tvt | implies (const exprt &expr) const |
void | simplify (exprt &expr) const |
Static Public Member Functions | |
static void | intersection (ineq_sett &dest, const ineq_sett &other) |
static void | remove (ineq_sett &dest, unsigned a) |
Public Attributes | |
unsigned_union_find | eq_set |
ineq_sett | le_set |
ineq_sett | ne_set |
bounds_mapt | bounds_map |
bool | threaded |
bool | is_false |
Protected Member Functions | |
tvt | implies_rec (const exprt &expr) const |
void | strengthen_rec (const exprt &expr) |
void | add_type_bounds (const exprt &expr, const typet &type) |
void | add_bounds (unsigned a, const boundst &bound) |
void | get_bounds (unsigned a, boundst &dest) const |
bool | make_union_bounds_map (const bounds_mapt &other) |
void | modifies (unsigned a) |
std::string | to_string (unsigned a) const |
bool | get_object (const exprt &expr, unsigned &n) const |
exprt | get_constant (const exprt &expr) const |
bool | has_eq (const std::pair< unsigned, unsigned > &p) const |
bool | has_le (const std::pair< unsigned, unsigned > &p) const |
bool | has_ne (const std::pair< unsigned, unsigned > &p) const |
tvt | is_eq (std::pair< unsigned, unsigned > p) const |
tvt | is_le (std::pair< unsigned, unsigned > p) const |
tvt | is_lt (std::pair< unsigned, unsigned > p) const |
tvt | is_ge (std::pair< unsigned, unsigned > p) const |
tvt | is_gt (std::pair< unsigned, unsigned > p) const |
tvt | is_ne (std::pair< unsigned, unsigned > p) const |
void | add (const std::pair< unsigned, unsigned > &p, ineq_sett &dest) |
void | add_le (const std::pair< unsigned, unsigned > &p) |
void | add_ne (const std::pair< unsigned, unsigned > &p) |
void | add_eq (const std::pair< unsigned, unsigned > &eq) |
void | add_eq (ineq_sett &dest, const std::pair< unsigned, unsigned > &eq, const std::pair< unsigned, unsigned > &ineq) |
Static Protected Member Functions | |
static void | nnf (exprt &expr, bool negate=false) |
Protected Attributes | |
value_setst & | value_sets |
inv_object_storet & | object_store |
const namespacet & | ns |
Definition at line 79 of file invariant_set.h.
typedef std::map<unsigned, boundst> invariant_sett::bounds_mapt |
Definition at line 94 of file invariant_set.h.
Definition at line 93 of file invariant_set.h.
typedef std::set<std::pair<unsigned, unsigned> > invariant_sett::ineq_sett |
Definition at line 86 of file invariant_set.h.
|
inline |
Definition at line 100 of file invariant_set.h.
|
protected |
Definition at line 181 of file invariant_set.cpp.
|
inlineprotected |
Definition at line 198 of file invariant_set.h.
|
protected |
Definition at line 203 of file invariant_set.cpp.
|
protected |
Definition at line 240 of file invariant_set.cpp.
|
inlineprotected |
Definition at line 260 of file invariant_set.h.
|
inlineprotected |
Definition at line 265 of file invariant_set.h.
Definition at line 353 of file invariant_set.cpp.
void invariant_sett::apply_code | ( | const codet & | code | ) |
Definition at line 1052 of file invariant_set.cpp.
Definition at line 1035 of file invariant_set.cpp.
|
protected |
Definition at line 675 of file invariant_set.cpp.
Definition at line 831 of file invariant_set.cpp.
|
protected |
Definition at line 150 of file invariant_set.cpp.
|
inlineprotected |
Definition at line 219 of file invariant_set.h.
|
inlineprotected |
Definition at line 224 of file invariant_set.h.
|
inlineprotected |
Definition at line 229 of file invariant_set.h.
Definition at line 580 of file invariant_set.cpp.
Definition at line 587 of file invariant_set.cpp.
Definition at line 151 of file invariant_set.h.
|
protected |
Definition at line 278 of file invariant_set.cpp.
|
inlineprotected |
Definition at line 242 of file invariant_set.h.
|
inlineprotected |
Definition at line 248 of file invariant_set.h.
|
protected |
Definition at line 292 of file invariant_set.cpp.
|
inlineprotected |
Definition at line 237 of file invariant_set.h.
|
inlineprotected |
Definition at line 253 of file invariant_set.h.
|
inline |
Definition at line 127 of file invariant_set.h.
|
inline |
Definition at line 135 of file invariant_set.h.
|
inline |
Definition at line 119 of file invariant_set.h.
bool invariant_sett::make_union | ( | const invariant_sett & | other_invariants | ) |
Definition at line 890 of file invariant_set.cpp.
|
protected |
Definition at line 941 of file invariant_set.cpp.
void invariant_sett::modifies | ( | const exprt & | lhs | ) |
Definition at line 981 of file invariant_set.cpp.
|
protected |
Definition at line 973 of file invariant_set.cpp.
|
staticprotected |
Definition at line 699 of file invariant_set.cpp.
void invariant_sett::output | ( | std::ostream & | out | ) | const |
Definition at line 310 of file invariant_set.cpp.
|
inlinestatic |
Definition at line 167 of file invariant_set.h.
void invariant_sett::simplify | ( | exprt & | expr | ) | const |
Definition at line 813 of file invariant_set.cpp.
void invariant_sett::strengthen | ( | const exprt & | expr | ) |
Definition at line 375 of file invariant_set.cpp.
|
protected |
Definition at line 382 of file invariant_set.cpp.
|
protected |
Definition at line 885 of file invariant_set.cpp.
bounds_mapt invariant_sett::bounds_map |
Definition at line 95 of file invariant_set.h.
unsigned_union_find invariant_sett::eq_set |
Definition at line 83 of file invariant_set.h.
bool invariant_sett::is_false |
Definition at line 98 of file invariant_set.h.
ineq_sett invariant_sett::le_set |
Definition at line 87 of file invariant_set.h.
ineq_sett invariant_sett::ne_set |
Definition at line 90 of file invariant_set.h.
|
protected |
Definition at line 190 of file invariant_set.h.
|
protected |
Definition at line 189 of file invariant_set.h.
bool invariant_sett::threaded |
Definition at line 97 of file invariant_set.h.
|
protected |
Definition at line 188 of file invariant_set.h.