fix: make name unresolution consistent and avoid auxiliary names #6938
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 ensures that names suggested by
simp?
are not shadowed by auxiliary declarations in the local context.This PR moves
unresolveNameGlobalAvoidingLocals
into theTerm
namespace and restricts it toTermElabM
, since it is impossible to correctly resolve some auxiliary declarations (e.g., in amutual
block) without access to theauxDeclToFullName
map in theTermElabM
context. It also addsauxDeclToFullName
to theSavedContext
for postponed expressions, which ensures that (un)resolution of auxiliary-declaration names is consistent between terms and tactic blocks (previously, it was not possible to refer to certain auxiliary declarations by suffixes in a tactic block).Closes #6706.