rindPHI / isla

The ISLa (Input Specification Language) language & solver.
https://isla.readthedocs.org
GNU General Public License v3.0
62 stars 8 forks source link

[BUG] Runtime differences between equivalent constraints #91

Open ju-klein opened 10 months ago

ju-klein commented 10 months ago

Describe the bug: The solver can solve not (a or b) within five minutes. The solver cannot solve not a and not b within five minutes. I have not tested if it terminates.

To reproduce: Create a constraint

exists a:
exists b:
((not inside(a, b)) and (not inside(b,a))) 

does not terminate at all or takes long.

Use the equivalence

exists <something> a in <somewhere>:
exists <something> b in <somewhere>:
(not (inside(a,b) or inside(b,a)))

and it terminates rather quickly.

Expected behavior: Not sure if this is intended behavior, but I would think that both versions should take the same time.

System/Installation Specs:

rindPHI commented 10 months ago

Thanks for the report.

Could you please provide a small but complete example, including a grammar and parseable ISLa constraints with concrete nonterminal symbols? This will help me tremendously in addressing the issue.

ju-klein commented 10 months ago

Probably, but I have to wait until next Monday. This is from an exercise that is due on Sunday.