-
Notifications
You must be signed in to change notification settings - Fork 123
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
Proof backend and concrete evaluation disagree about signed shift #664
Comments
|
The problem was introduced in revision 4d974fe, "Fix bugs in the signed right shift operation." In particular, the local definition of cryptol/src/Cryptol/Prims/Eval.hs Lines 673 to 683 in c859570
|
The SMTLib standard (http://smtlib.cs.uiowa.edu/logics-all.shtml) defines signed right shift in terms of logical (unsigned) right shift:
I propose that we define it the same way in the Cryptol prelude.
Then we don't have to worry about implementing it correctly as a primitive. |
Now that I think about it, it might be nice to keep So maybe we should close #665 without merging, and just fix the broken implementations and add regression tests to ensure that they match the cryptol definition I suggested. |
Concrete evaluation is wrong here.
The text was updated successfully, but these errors were encountered: