Skip to content

Commit 112cbe9

Browse files
NikolajBjornerhgvk94
authored andcommitted
1 parent 1a6993f commit 112cbe9

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

src/smt/old_interval.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,14 @@ interval & interval::operator*=(interval const & other) {
473473
return *this;
474474
}
475475

476+
bool interval::empty() const {
477+
if (m_lower.is_infinite() || m_upper.is_infinite())
478+
return false;
479+
if (m_lower < m_upper)
480+
return false;
481+
return m_lower > m_upper || m_lower_open || m_upper_open;
482+
}
483+
476484
bool interval::contains_zero() const {
477485
TRACE("interval_zero_bug", tout << "contains_zero info: " << *this << "\n";
478486
tout << "m_lower.is_neg(): " << m_lower.is_neg() << "\n";

src/smt/old_interval.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ class old_interval {
102102
bool operator==(old_interval const & other) const { return m_lower == other.m_lower && m_upper == other.m_upper && m_lower_open == other.m_lower_open && m_upper_open == other.m_upper_open; }
103103
bool contains_zero() const;
104104
bool contains(rational const& v) const;
105+
bool empty() const;
105106
old_interval & inv();
106107
void expt(unsigned n);
107108
void neg();

src/smt/theory_arith_nl.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -226,23 +226,23 @@ interval theory_arith<Ext>::mk_interval_for(theory_var v) {
226226
}
227227
return interval(m_dep_manager,
228228
l->get_value().get_rational().to_rational(),
229-
!l->get_value().get_infinitesimal().to_rational().is_zero(),
229+
l->get_value().get_infinitesimal().to_rational().is_pos(),
230230
m_dep_manager.mk_leaf(l),
231231
u->get_value().get_rational().to_rational(),
232-
!u->get_value().get_infinitesimal().to_rational().is_zero(),
232+
u->get_value().get_infinitesimal().to_rational().is_neg(),
233233
m_dep_manager.mk_leaf(u));
234234
}
235235
else if (l) {
236236
return interval(m_dep_manager,
237237
l->get_value().get_rational().to_rational(),
238-
!l->get_value().get_infinitesimal().to_rational().is_zero(),
238+
l->get_value().get_infinitesimal().to_rational().is_pos(),
239239
true,
240240
m_dep_manager.mk_leaf(l));
241241
}
242242
else if (u) {
243243
return interval(m_dep_manager,
244244
u->get_value().get_rational().to_rational(),
245-
!u->get_value().get_infinitesimal().to_rational().is_zero(),
245+
u->get_value().get_infinitesimal().to_rational().is_neg(),
246246
false,
247247
m_dep_manager.mk_leaf(u));
248248
}

0 commit comments

Comments
 (0)