Can't add local attribute for namespaced theorem
Prerequisites
Please put an X between the brackets as you perform the following steps:
- [X] Check that your issue is not already filed: https://github.com/leanprover/lean4/issues
- [X] Reduce the issue to a minimal, self-contained, reproducible test case. Avoid dependencies to Mathlib or Batteries.
- [X] Test your test case against the latest nightly release, for example on https://live.lean-lang.org/#project=lean-nightly (You can also use the settings there to switch to “Lean nightly”)
Description
The construction
@[local ...]
theorem Foo.bar ...
seemingly makes the attribute local to the Foo namespace, which is immediately closed again. Hence the attribute is effectively not applied.
Steps to Reproduce
MWE:
-- Fails
@[local simp]
axiom Foo.falso : False
example : False := by simp -- simp made no progress
-- Works
@[local simp]
axiom falso : False
example : False := by simp
I don't see a situation in which this behaviour would be useful, so the first example should imo either make the attribute local to the current section/namespace or throw an error at @[local simp]. There is probably a similar issue with scoped attributes; there the desired behaviour is less clear.
Versions
"4.11.0-nightly-2024-07-12"
Impact
Add :+1: to issues you consider important. If others are impacted by this issue, please ask them to add :+1: to it.
Btw, this also leads to what might be considered an inconsistency with attribute:
-- Works
axiom Foo.falso : False
attribute [local simp] Foo.falso
example : False := by simp