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

Uninformative error message for uninterpreted polymorphic functions #320

Closed
msaaltink opened this issue Nov 5, 2018 · 2 comments · Fixed by GaloisInc/saw-core#92
Closed
Assignees
Labels
needs test Issues for which we should add a regression test topics: error-messages Issues involving the messages SAW produces on error
Milestone

Comments

@msaaltink
Copy link
Contributor

I was trying a proof using unint_yices and encountered this error message

Could not create sbv argument for Vec (64) (Bool))

The actual problem, as I eventually found out, is that I had asked for a polymorphic function to be uninterpreted. This error message is not much help in figuring that out!

@langston-barrett langston-barrett added the topics: error-messages Issues involving the messages SAW produces on error label Jan 3, 2019
@atomb atomb added this to the 0.6 milestone Apr 24, 2020
@atomb atomb modified the milestones: 0.6, 0.7 Aug 20, 2020
@brianhuffman brianhuffman self-assigned this Oct 16, 2020
@brianhuffman brianhuffman added maybe fixed Issues where there's reason to think they might be fixed but that still requires confirmation and removed maybe fixed Issues where there's reason to think they might be fixed but that still requires confirmation labels Oct 16, 2020
@brianhuffman
Copy link
Contributor

I just checked, and this is still a problem. Here's how to easily reproduce the error:

sawscript> let {{ foo x = x }}
sawscript> prove (unint_yices ["foo"]) {{ \ (x:[64]) (y:[64]) -> x == y ==> foo x == foo y }}
saw: Stack trace:
"prove" (<stdin>:1:1-1:6):
"unint_yices" (<stdin>:1:8-1:19):
Could not create sbv argument for Vec (64) (Bool)

What we want is for this example to just work. When we ask for a polymorphic function to be uninterpreted, the SMT-Lib backend should get a separate uninterpreted function declared at each type instance that the function is used at.

brianhuffman pushed a commit to GaloisInc/saw-core that referenced this issue Oct 19, 2020
This works by declaring monomorphic uninterpreted functions at
each type instance, using a name suffix based on the type value.

Fixes GaloisInc/saw-script#320.
brianhuffman pushed a commit to GaloisInc/saw-core that referenced this issue Oct 20, 2020
This works by declaring monomorphic uninterpreted functions at
each type instance, using a name suffix based on the type value.

Fixes GaloisInc/saw-script#320.
@brianhuffman brianhuffman added the maybe fixed Issues where there's reason to think they might be fixed but that still requires confirmation label Oct 26, 2020
@brianhuffman
Copy link
Contributor

I'm reopening for now, until we add a proper regression test to the saw-script test suite.

@brianhuffman brianhuffman reopened this Oct 26, 2020
@brianhuffman brianhuffman added the needs test Issues for which we should add a regression test label Dec 4, 2020
@atomb atomb modified the milestones: 0.7, 0.8 Dec 14, 2020
@atomb atomb modified the milestones: 0.8, 0.9 Apr 19, 2021
@sauclovian-g sauclovian-g removed the maybe fixed Issues where there's reason to think they might be fixed but that still requires confirmation label Oct 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs test Issues for which we should add a regression test topics: error-messages Issues involving the messages SAW produces on error
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants