fix: Funind: no do unfold auxillary defs #6921
Closed
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 PR changes internals in the funindn construction.
Previously we would unfold defs
Tree.revrev._unary.proof_3
when transforming the function body. This is somewhat expensive (lots of proofs copied) and it may expose recursive calls within proofs that we probably do not care about, and that can look different than what the user wrote somewhere (simpMatch
, looking at you here).So we try to leave them in place now.
Also previously we did not include the “old” IH in the local context, so that creating a MVar would not pick it up. But this prevented us from inferring types, which I really need here.
So now let's keep them in the local context, but wrap the creation of the metavariables in
withErasedFVars
.