-
Notifications
You must be signed in to change notification settings - Fork 124
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
Refactor evopts #993
Refactor evopts #993
Conversation
I don't know if this is the right place, but having I don't know if this is something we could do atm, but thought I would bring it up in case stars align.
|
Right now, the symbolic simulators print a dummy string |
For example, on this branch, we currently get the following results:
|
Turns out, it isn't too difficult to get this working. You'll get better results using the What4 provers in this case; SBV seems less able to figure out when individual slices of a bitvector are concrete.
|
🥳 |
67a924f
to
16627b9
Compare
`trace` and `traceVal` respect the pretty-printing options that are in effect when a value is computed, rather than those that were in effect when the term was declared.
so that the concrete and symbolic evaluators all work uniformly.
in bases 2, 8, or 16.
The `Backend` class is not really the proper place to handle pretty printing concerns; they have been migrated instead into `Cryptol.Eval.Value`, where the main pretty printer is defined. Likewise, the pretty printing options data structures have been moved to `Cryptol.Utils.PP`.
16627b9
to
0785f8d
Compare
Builds on PR #985
This refactors how evaluation options are piped into primitives, and makes them work in a less surprising way. Currently, this only affects the
trace
andtraceVal
functions. This change makes it pretty straightforward to have the symbolic and concrete evaluators work uniformly with the same implementation fortrace
.