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

Write a symbolically executed term to a file #1113

Open
weaversa opened this issue Mar 6, 2021 · 1 comment
Open

Write a symbolically executed term to a file #1113

weaversa opened this issue Mar 6, 2021 · 1 comment
Labels
usability An issue that impedes efficient understanding and use

Comments

@weaversa
Copy link
Contributor

weaversa commented Mar 6, 2021

I have a parameterized property that I want to prove for a bunch of different concrete parameters. For example:

prop : [32] -> [32] -> Bit
prop a b = ...

And I want to prove prop for all a, but where b is a set of concrete values. So, prove \a -> prop a 10 and \a -> prop a 87 and ...

If I put the concrete values of b in a list and do the prove command in a loop, the term to be proved is symbolically executed every call to prove, and symbolic execution takes quite some time, whereas the call to the solver is quick. Is there some way to dump a symbolically executed term to SMTLIB2 and then add some extra constraints, so that symbolic execution is only done once? I have looked at doing this manually (dumping the SMTLIB2 and trying to change the symbolic bits for b to constants, but the SMTLIB2 produced by saw doesn't make the symbols for b readily available.

@atomb atomb self-assigned this Mar 12, 2021
@atomb
Copy link
Contributor

atomb commented Mar 12, 2021

It may be that being able to store and re-load a term in either SAWCore or What4 external syntax could provide a solution to this. But #1112 shows that there are some bugs in the SAWCore external format that prevent that from working for this use case at the moment.

@robdockins robdockins added the usability An issue that impedes efficient understanding and use label Jun 25, 2021
@atomb atomb removed their assignment Oct 19, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
usability An issue that impedes efficient understanding and use
Projects
None yet
Development

No branches or pull requests

3 participants