-
Notifications
You must be signed in to change notification settings - Fork 23
Fix issue #297 and #268, make proc inlining visit subblocks #302
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
Conversation
This patch fixes - Issue #297: BoogiePrelude.lean's `timedelta` was not updating `hours_i` - Issue #268: procedure inlining was reducing nondeterminism because it was missing havocs to output vars (this depends on how the "correctness" of procedure inlining is defined; if we say that procedure inlining is allowed to reduce nondeterminism, the original implementation was correct of course, but since this makes procedure inlining inherently unsound to use for deductive verification I chose to fix it.) - Procedure inlining wasn't visiting subblocks, which was fixed here. This required small updates in the function signature of `inlineCallCmd` and `callElimCmd` so that they receive Command rather than Statement. For these changes, checks are needed to confirm whether Python applications of interest are not affected.
|
I will revisit the failing Python cases in this afternoon. |
@aqjune-aws Maybe also see if #301 can help, if you have the bandwidth? |
|
The reason of the failure was that this extra I will add a parameter to the procedure inlining call so that functions to be excluded from inlining like |
This patch fixes
timedeltawas not updatinghours_iinlineCallCmdandcallElimCmdso that they receive Command rather than Statement.For these changes, checks are needed to confirm whether Python applications of interest are not affected.
Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.