fix: Use the right bitvector comparison in ComputeLessEq
#2512
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Dafny adds a free invariant on each loop that states that the loop variable is
smaller than or equal to its initial value. For bitvectors, Dafny produced ≥
instead of ≤, possibly due to a typo?
Specifically, the issue was:
In
Translator.TrStatement.cs
(TrLoop
):In
Translator.cs
(DecreasesCheck
):In
Translator.cs
(ComputeLessEq
):"ge_bv"
is wrong.Source/Dafny/Verifier/Translator.cs
(
ComputeLessEq
): Changege
intole
.Test/git-issues/git-issue-2511.dfy
:New file, showing the issue in all places where
ComputeLessEq
was used.Introduced in 3f899b9.
Closes #2511.