13 template<
typename Rational,
typename Poly>
15 auto uvit = m.
find(uv);
16 assert(uvit != m.
end());
23 template<
typename Rational,
typename Poly>
26 assert(ufit != m.
end());
27 assert(ufit->second.isUFModel());
28 std::vector<SortValue> args;
29 for (
const auto& term: ufi.
args()) {
30 if(term.isUVariable()) {
31 auto it = m.
find(term.asUVariable());
32 assert(it != m.
end());
36 }
else if(term.isUFInstance()) {
49 template<
typename Rational,
typename Poly>
69 CARL_LOG_DEBUG(
"carl.model.evaluation",
"-> " << lhs <<
" != " << rhs);
72 CARL_LOG_DEBUG(
"carl.model.evaluation",
"-> " << lhs <<
" == " << rhs);
#define CARL_LOG_DEBUG(channel, msg)
carl is the main namespace for the library.
void evaluate_inplace(ModelValue< Rational, Poly > &res, BVTerm &bvt, const Model< Rational, Poly > &m)
Evaluates a bitvector term to a ModelValue over a Model.
Represent a collection of assignments/mappings from variables to values.
auto find(const typename Map::key_type &key) const
const ModelValue< Rational, Poly > & evaluated(const typename Map::key_type &key) const
Return the ModelValue for the given key, evaluated if it's a ModelSubstitution and evaluatable,...
Represent a sum type/variant over the different kinds of values that can be assigned to the different...
const SortValue & asSortValue() const
const UFModel & asUFModel() const
const carl::Sort & sort() const noexcept
Implements an uninterpreted equality, that is an equality of either two uninterpreted function instan...
const UTerm & rhs() const
const UTerm & lhs() const
Implements an uninterpreted function instance.
const UninterpretedFunction & uninterpretedFunction() const
const std::vector< UTerm > & args() const
SortValue get(const std::vector< SortValue > &_args) const
UFInstance asUFInstance() const
bool isUFInstance() const
UVariable asUVariable() const
Implements an uninterpreted variable.