Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug: Tree Automizer returns UNSAT for SAT instance #676

Closed
kensingRichardt opened this issue Aug 28, 2024 · 2 comments
Closed

Bug: Tree Automizer returns UNSAT for SAT instance #676

kensingRichardt opened this issue Aug 28, 2024 · 2 comments

Comments

@kensingRichardt
Copy link

Basic Info

  • Version: 0.2.4-dev-0e0057c
  • Java Version: 11.0.24
  • Settings: TreeAutomizerHopcroftMinimization.epf
  • Toolchain: TreeAutomizer.xml
  • The log file is attached
    If I invoke Ultimate Tree Automizer on the following file, I get UNSAT.
(set-logic HORN)

(assert 
    (exists ((x Int)) 
      (= 0 x)
    )
)

(check-sat)

However this is clearly a SAT-instance.
log.txt

@maul-esel
Copy link
Contributor

Thank you for the bug report.

I've been able to reproduce the bug, and a bit of debugging shows:

  • During parsing, Ultimate introduces a Skolem constant for the quantified variable.
  • Unfortunately, TreeAutomizer does not have any support for Skolem functions (the parser introduces them because our other CHC solver, UltimateUniHorn, has some support).
  • TreeAutomizer incorrectly treats the Skolem constant similar to a universally-quantified variable, and thus reports UNSAT.

Handling such examples correctly is non-trivial effort, as we have to add a whole new feature to TreeAutomizer. So for now, I've modified TreeAutomizer to report UNKNOWN in such cases.

@maul-esel
Copy link
Contributor

I've opened #679 to keep track of the missing feature, and will close this bug report now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants