12#ifndef CBMC_ABSTRACT_OBJECT_SET_H
13#define CBMC_ABSTRACT_OBJECT_SET_H
16#include <unordered_set>
35 values.insert(std::move(o));
43 for(
auto const &value : rhs)
67 value_sett::size_type
size()
const
67 value_sett::size_type
size()
const {
…}
sharing_ptrt< class abstract_objectt > abstract_object_pointert
Common behaviour for abstract objects modelling values - constants, intervals, etc.
void insert(const abstract_object_sett &rhs)
value_sett::size_type size_type
const_iterator begin() const
value_sett::size_type size() const
void insert(const value_ranget &rhs)
value_sett::value_type value_type
void output(std::ostream &out, const ai_baset &ai, const namespacet &ns) const
void insert(const abstract_object_pointert &o)
value_sett::const_iterator const_iterator
abstract_object_pointert first() const
std::unordered_set< abstract_object_pointert, abstract_hashert, abstract_equalert > value_sett
void insert(abstract_object_pointert &&o)
const_iterator end() const
void push_back(const abstract_object_pointert &v)
bool operator==(const abstract_object_sett &rhs) const
constant_interval_exprt to_interval() const
Calculate the set of values as an interval.
This is the basic interface of the abstract interpreter with default implementations of the core func...
virtual void clear()
Reset the abstract state.
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
Represents an interval of values.
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
virtual const abstract_object_sett & get_values() const =0