-
Notifications
You must be signed in to change notification settings - Fork 35
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
SBV generates inputs ABC cannot handle #538
Comments
OK, well, this is a wrinkle I did not expect. I just wanted to absolutely verify that the size of
|
I'd hazard a guess that when you use a 5-bit word SBV generates code to "normalize" it, and ABC chokes on it. It probably doesn't support
Note the |
Yeah, I wouldn't trust abc when
Ugh.. That's really bad! You can (and probably should) report this to ABC folks; though I'm not sure if you'll get a better answer than |
Also relevant: https://bitbucket.org/alanmi/abc/issues/71/abc-fails-assertion-on-smt-file We can make SBV should check if there are tables in the generated program and refuse to call ABC if that's the case. We already have a "capabilities" mechanism for doing so. But given this is such a "fundamental" SMTLib functionality, I'm not sure it has pay-off. ABC probably also doesn't support uninterpreted functions or any of the fancier BV methods either. |
Oh, yeah! That's a real bummer! Here's another bummer:
So, I'm not sure what ABC is doing with these problems, but it seems like it's just wrong. |
To be fair, ABC is really not an SMT solver. It was used in early versions of Cryptol-1's symbolic back-end, when everything was bit-blasted, i.e., it was used as a SAT solver. (And in that case it worked really well.) When we created SMT backend for Cryptol, we (i.e., our customers!) asked Alan to add basic support for SMT, and he added support for a very limited subset of SMTLib, mainly the bit-vector logic with some niceties. What's bad is ABC seems to be silently "ignoring" what it doesn't support and just plunging ahead and doing something. Perhaps you can ask Alan to fix those cases. (i.e., recognize and "reject", as opposed to ignore and continue.) Expecting him to support more of SMTLib, however, sounds like a non-starter. Sean should have a better handle on what Alan can provide here. |
There isn't really much SBV can do regarding this ticket. ABC will likely never support all the operations we generate. |
With SBV 8.6
Interestingly, the
Data.SBV
interface doesn't seem to have this problem, so maybe theres an easy solution?The suspicion from GaloisInc/cryptol#436 is that this is related to the use of SMT arrays.
The text was updated successfully, but these errors were encountered: