3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-28 19:35:50 +00:00

Fix bug in realclosure::compare function

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
Leonardo de Moura 2013-01-06 21:50:36 -08:00
parent 3e19df0441
commit 3c1f1a3b65
3 changed files with 15 additions and 3 deletions

View file

@ -200,6 +200,11 @@ public:
bool eq(interval const & a, interval const & b) const;
/**
\brief Return true if all values in 'a' are less than all values in 'b'.
*/
bool before(interval const & a, interval const & b) const;
/**
\brief Set lower bound to -oo.
*/

View file

@ -687,6 +687,13 @@ bool interval_manager<C>::eq(interval const & a, interval const & b) const {
upper_is_open(a) == upper_is_open(b);
}
template<typename C>
bool interval_manager<C>::before(interval const & a, interval const & b) const {
if (upper_is_inf(a) || lower_is_inf(b))
return false;
return m().lt(upper(a), lower(b)) || (upper_is_open(a) && m().eq(upper(a), lower(b)));
}
template<typename C>
void interval_manager<C>::neg_jst(interval const & a, interval_deps & b_deps) {
if (lower_is_inf(a)) {