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

Add symbolic support for not #167

Open
pschanely opened this issue May 31, 2022 · 1 comment
Open

Add symbolic support for not #167

pschanely opened this issue May 31, 2022 · 1 comment

Comments

@pschanely
Copy link
Owner

pschanely commented May 31, 2022

Is your feature request related to a problem? Please describe.
At present, using the not operator realizes symbolic booleans - ideally, it would produce an inverted symbolic boolean. We haven't prioritized this because booleans often end up getting used in a conditional (or with short-circuiting "and"/"or"), where they'll need to be realized anyway. That said, symbolic negation would make our branch decision heuristics more accurate (for reasons that I won't get into here), so it might be worthwhile.

Describe the solution you'd like
The not operation sadly doesn't correspond to a special method (there is no __not__() method), so it's harder to intercept. But not impossible; we also intercept behavior at the opcode level, and that could be used to preserve the symbolic boolean.

@pschanely
Copy link
Owner Author

An implementation for this is in 340c669! Will close this out when it's released.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant