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

Parsing or #40

Open
naokikob opened this issue Sep 12, 2020 · 1 comment
Open

Parsing or #40

naokikob opened this issue Sep 12, 2020 · 1 comment

Comments

@naokikob
Copy link

I am confused with the way HoIce parses "or".
For the following input, HoIce seems to reject the 2nd and 5th clauses but accepts the other.
(The comments indicates error messages generated by HoIce.)

(set-logic HORN)
(declare-fun X () Bool)
(declare-fun Y () Bool)
(declare-fun Z () Bool)

(assert (forall () (=> (or X Y) Z)))
(assert (forall () (=> (or X (and Y Z)) Z)))  ;; ill-formed horn clause (or, 2)
(assert (forall () (=> (and X (or Y Z)) Z)))
(assert (forall () (=> (and (or X Y) (or X Z)) Z)))
(assert (forall () (=> (and (or X Y) (or X Z) (or X Y)) Z))) ;; error during clause conversion
(check-sat)
@AdrienChampion
Copy link
Member

Thank you for the detailed example.

Hoice's parsing and early pre-processing needs some work. It was directed mostly by benchmarks which tend to have a certain shape. I'm really sorry, but this is not something I can fix soon without some help...

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