dreal/dreal3

dump_dr_file() handles some inequalities wrongly

Closed this issue · 3 comments

Most likely missing polarity.

can you give me 1-2 examples?

sicun-> cat wrong.cpp

#include "dreal.h"
using namespace dreal;
int main() {
    solver s;
    expr x = s.var("x",-1,1);
    s.add(x+sin(x)<0);
    s.dump_dr_file("wrong"); //it writes to wrongdumped.dr
    return 0;
}
sicun-> cat wrongdumped.dr
var:
[-1,1] x;
ctr:
(0.000000000000000000000000000000)<=(x+sin(x)); //note how the inequality is reversed
1>0;

I'm on it.