-
Notifications
You must be signed in to change notification settings - Fork 114
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
Make /randomizeVcIterations:1
the same as normalizeNames:1
#868
Conversation
This change ensures that, when specifying `/randomizeVcIterations:n`, the first iteration is equivalent to that achieved by `/normalizeNames:1`. One consequence of this is that normalized names are always chosen pseudo-randomly (though deterministically, since it always starts with a fixed seed, which is 0 if not otherwise specified). Fixes dafny-lang/dafny#5126
/randomizeVcIterations:1
the same as 'normalizeNames:1
/randomizeVcIterations:1
the same as normalizeNames:1
Have you considered always using normalized names if the iteration has 0 for a randomSeed? That way we still use normalized names in the default case, but the first iteration always gets the same SMT, whether you're using I think that would require changing this line:
into just
And then you don't need the other changes in the PR. The reimplementation of You can also clean up Boogie by removing |
Yeah, I considered doing that, and it was my original goal, but I concluded that the extra complexity in the logic was sufficient that I wasn't sure it was worth it. I haven't conclusively decided that, but it's the direction I'm leaning in.
I think that's just in the context of Dafny, right? That wouldn't work for Boogie running on its own, I don't think.
The |
I think we should remove the line
We can leave it in, but I'm not comfortable with the implementation, for one because it reuses Splits for different iterations. With 0 users, how sure are you that this works well? Even Dafny has migrated off of this to get more reliable behavior. |
Sure, that seems reasonable. And the fact that Dafny now controls the process of So I'm going to close this PR, and perhaps create a simpler one that focuses on the Dafny issue. I'm not sure whether any Boogie users care about the difference that issue describes. |
This change ensures that, when specifying
/randomizeVcIterations:n
, the first iteration is equivalent to that achieved by/normalizeNames:1
. One consequence of this is that normalized names are always chosen pseudo-randomly (though deterministically, since it always starts with a fixed seed, which is 0 if not otherwise specified). It's slightly unfortunate to spend the computational expense of random generation when not strictly needed, but doing otherwise would require more complex logic.Fixes dafny-lang/dafny#5126