-
Notifications
You must be signed in to change notification settings - Fork 0
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
feat: Create z3_pass #36
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall, great work! Some small comments but glad you were able to figure a majority of this tricky task out. If you could also write a better test case so we can actually test to see if the simplification is working.
solver/passes/z3_pass
Outdated
def visitVarExpr(self, vex: VarExpr) -> z3.ExprRef: | ||
first: z3.ExprRef = vex.first.acceptRet(self) | ||
if vex.second: | ||
second: z3.ExprRef = vex.second.acceptRet(self) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is very close. I think the idea is actually to call AcceptRet on vex.second.first. We want to skip over the AndExpr and OrExpr since these won't return enough context to initialize the Z3 Object.
I left one comment unresolved because I'm not sure if I fixed it correctly!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
Summary
Closes #
Test Plan