You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix issue #297 and #268, make proc inlining visit subblocks (#302)
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
- In fact, 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. This is all under the
assumption that the spec of the inlining procedure exactly represents
the actual behavior of the contents of the procedure.
- 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.
*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.
0 commit comments