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

[FEATURE] Grammatical Case Distinction for SMT Formulas #84

Open
rindPHI opened this issue Aug 7, 2023 · 0 comments
Open

[FEATURE] Grammatical Case Distinction for SMT Formulas #84

rindPHI opened this issue Aug 7, 2023 · 0 comments
Labels
completeness minor Bugs/issues of minor importance SMT-LIB Bugs related to ISLa's handling of SMT-LIB formulas.

Comments

@rindPHI
Copy link
Owner

rindPHI commented Aug 7, 2023

Implement solving SMT formulas by grammatical case distinction: A predicate holds iff it holds for all direct children of an involved variable. Several issues need to be resolved for this, see #83.

Originally posted by @leonbett in #83 (comment):

In this particular example, one idea would be to transform:

(= (str.indexof <entry> "x") (- 1))

into

 (= (str.indexof <entry>.<A> "x") (- 1)) and
(= (str.indexof <entry>.<X> "x") (- 1)) and
(= (str.indexof <entry>.<A> "x") (- 1))

and solve each subexpression separately.

My intuition is that Z3 would return unsat for (= (str.indexof <entry>.<X> "x") (- 1)), which implies unsat for the full expression. Unfortunately I can‘t test this currently as I am replying from my phone.

@rindPHI rindPHI added SMT-LIB Bugs related to ISLa's handling of SMT-LIB formulas. minor Bugs/issues of minor importance completeness labels Aug 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
completeness minor Bugs/issues of minor importance SMT-LIB Bugs related to ISLa's handling of SMT-LIB formulas.
Projects
None yet
Development

No branches or pull requests

1 participant