dreal / dreal2

Please check dreal4 instead.
https://github.com/dreal/dreal4
GNU General Public License v3.0
13 stars 15 forks source link

Disjunctive Invariants #80

Open danbryce opened 9 years ago

danbryce commented 9 years ago

Apologies: I couldn't find an existing issue for this.

We have discussed the need for disjunctive invariants before, and I am at the point where it would be nice to have. I realize that it involves some re-arhcitecting of the nra_solver, but just wanted to see the status, and if its on anyone's todo list currently. I may have the availability, but don't want to jump into anything w/o discussing a bit.

I need to state constraints of the form:

(not (exists_t 0 [0 time_0] (and (<= x_0_t 10) (<= 0 x_0_t))))

0 <= x <= 10 is the condition of a PDDL+ process, and I need to check that it is not satisfied over a time interval.

Converting the constraint gives:

(forall_t 0 [0 time_0] (or (> x_0_t 10) (> 0 x_0_t)))

I am open to suggestions, but the most straight-forward solution is to directly handle disjunction.

soonhokong commented 9 years ago

Hi @danbryce,

I'm sorry that I couldn't find time to process your pull-request. I'll do it soon.

I realize that it involves some re-arhcitecting of the nra_solver, but just wanted to see the status, and if its on anyone's todo list currently

I'm not sure that you've noticed this, but I'm actually working on a new implementation of dReal. The repository is at https://github.com/dreal/dreal3. I believe that in the new version, it's easier to understand and extend the codebase. I started this version almost from scratch, I mean from OpenSMT2 codebase. Please understand that I couldn't port your contributions to dReal to this version yet. When things are more stable, I'll ask you to do that.

Here are some main changes:

In terms of progress in ODE solving, I started migrating the CAPD pruning operators to this version but couldn't finish it yet. There are some steps for that:

I'll finish some refactoring and implementing full CAPD backward pruning + the previous invariant checking. Please subscribe https://github.com/dreal/dreal3/issues/21. After that, I can extend it to support disjunction or ask you to do it. What do you think?

soonhokong commented 9 years ago

Of course, if you're in hurry, please feel free to extend the current version of dReal.

danbryce commented 9 years ago

Thanks. I knew you were doing this, but didn't know where to look.