Abstract Interpretation Domain.
The interface offered by a domain, allows code to manipulate domains without knowing their exact type...
ai_history_baset::trace_ptrt trace_ptrt
void output(std::ostream &out, const ai_baset &, const namespacet &) const final override
invariant_sett invariant_set
void make_top() final override
all states – the analysis doesn't use this directly (see make_entry) and domains may refuse to implem...
bool is_bottom() const override final
void make_entry() final override
Make this domain a reasonable entry-point state For most domains top is sufficient.
bool is_top() const override final
void make_bottom() final override
no states
invariant_set_domaint(value_setst &value_sets, inv_object_storet &object_store, const namespacet &ns)
virtual void transform(const irep_idt &function_from, trace_ptrt trace_from, const irep_idt &function_to, trace_ptrt trace_to, ai_baset &ai, const namespacet &ns) final override
how function calls are treated: a) there is an edge from each call site to the function head b) there...
bool merge(const invariant_set_domaint &other, trace_ptrt, trace_ptrt)