-
Notifications
You must be signed in to change notification settings - Fork 18
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
chore: Split out the finishing tactic aspect of simp_mem into mem_omega [2/?] #231
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
We also change mem_omega to be less agressive by default, and only exploiting PairwiseSeparate hypotheses if asked to by the user with mem_omega!.
bollu
force-pushed
the
simp-mem-mem-omega-2
branch
from
October 10, 2024 23:21
d7ebfc2
to
8baad8c
Compare
shigoel
reviewed
Oct 28, 2024
shigoel
reviewed
Oct 28, 2024
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.
Also edit the PR blurb to document that this makes the pairwiseSeparate
goals to be not unfolded by default, and adds a convenient API for the user to expose the pairs that need to be exposed for the current goal.
bollu
force-pushed
the
simp-mem-mem-omega-2
branch
from
October 29, 2024 16:27
6008578
to
e52376b
Compare
…ga [2/?] This helps control how aggressive simp_mem is. I was hoping that we would see a major performance difference. We do see some evidence for improvement in the `Experiments/MemoryAliasing.lean` (the numbers are extremely consistent across runs: ``` lake build Proofs.Experiments.MemoryAliasing 2.86s user 0.34s system 92% cpu 3.466 total lake build Proofs.Experiments.MemoryAliasing 2.76s user 0.33s system 92% cpu 3.332 total ``` --- However, on the much larger `Memcpy.lean`, these types of considerations seem to just not matter: ``` lake build Proofs.Experiments.Memcpy.MemCpyVCG 31.79s user 0.81s system 99% cpu 32.878 total lake build Proofs.Experiments.Memcpy.MemCpyVCG 32.79s user 0.80s system 99% cpu 33.870 total ``` This is a tad disappointing, but such is life. Onward to the next refactor. This is stacked on top of #230
bollu
force-pushed
the
simp-mem-mem-omega-2
branch
from
October 29, 2024 16:30
e52376b
to
9f77c2a
Compare
shigoel
approved these changes
Oct 29, 2024
shigoel
pushed a commit
that referenced
this pull request
Oct 30, 2024
### Description: This allows us to gradually convert all our tactics to `MetaM`, which provides the correct level to discipline to make sure that bugs like #154 don't happen anymore. Also, as a mild bonus, one hopes that eliminating `evalTactic` makes stuff a bit faster, but I would not hold my breath on this. Stacked on #231 ### Testing: What tests have been run? Did `make all` succeed for your changes? Was conformance testing successful on an Aarch64 machine? ### License: By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This helps control how aggressive
simp_mem
is, sincesimp_mem
now no longer closes memory goals, but rather expects the user to manually invokemem_omega
when necessary. Another impact of this change is that we splitmem_omega
into two tactics:mem_omega
that does not exposepairwiseSeparate
goals, andmem_omega!
, which does. This also helps control the performance ofmem_omega
, and hopefully, this ensures that the user is careful before exposing a fullO(n^2)
set of constraints to the user.I was hoping that we would see a major performance difference. We do see some evidence for improvement in the
Experiments/MemoryAliasing.lean
(the numbers are extremely consistent across runs:However, on the much larger
Memcpy.lean
, these types of considerations seem to just not matter:This is a tad disappointing, but such is life. Onward to the next refactor. This is stacked on top of #230