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

Translator may give back expressions from the path condition that are dropped due to heap location modification #45

Open
jennalwise opened this issue Aug 15, 2022 · 0 comments
Labels
bug Something isn't working

Comments

@jennalwise
Copy link
Member

Since the translator must look for aliases in the path condition, it might return an expression that is no longer valid at the program point due to reassignment/modification. The path condition never drops information; the information becomes inaccessible to the verifier except for during translation. This is a tricky problem, because the Translator's functionality needs to operate on aliases in the path condition and it cannot rely on accessibility predicates on the H or OH to indicate whether to translate something in the PC or not (thanks to imprecision). So, the best solution is to start removing information from the path condition where necessary in consume or mark certain information in the path condition as to be ignored by the Translator in the consume function. This is a wide-sweeping change that needs time to be explored for correctness.

Additionally, it appears that non of our current benchmarks experience this issue, because when it happens a shorter (in terms of path dereferences), correct expression is produced along the incorrect one, and so the correct one is always given back instead of the incorrect one by the Translator. In practice the incorrect expression being given back may not happen often, but it definitely can and so this design/implementation change should be addressed.

@jennalwise jennalwise added the bug Something isn't working label Aug 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant