void operator()(app* a) { if (is_arith_op(a) || a->get_family_id() == m.get_basic_family_id()) { return; } if (m_arith.is_int_real(a)) { m_avars.push_back(a); if (!m_seen.contains(a)) { m_proxies.push_back(a); m_seen.insert(a); } } for (expr* arg : *a) { if (is_app(arg) && !m_seen.contains(arg) && m_arith.is_int_real(arg)) { m_proxies.push_back(to_app(arg)); m_seen.insert(arg); } } }
void operator()(app * n) { if (m_util.is_le(n) || m_util.is_lt(n) || m_util.is_gt(n) || m_util.is_ge(n)) process(n); if (m.is_eq(n) && m_util.is_int_real(n->get_arg(0))) process(n); }
bool is_int_real(expr * t) { return m_autil.is_int_real(t); }