Zulip Chat Archive
Stream: general
Topic: congr gets stuck on bundled homs
Eric Wieser (Dec 05 2021 at 15:33):
What's going on here?
import algebra.direct_sum.basic
lemma of_congr {ι} [decidable_eq ι] (A : ι → Type*) [Π i, add_comm_monoid (A i)]
(i j : ι) (xi : A i) (xj : A j) (h : i = j)
(h' : xi == xj) : direct_sum.of A i xi = direct_sum.of A j xj :=
begin
-- doesn't work without this line
dsimp only [direct_sum.of, dfinsupp.single_add_hom_apply],
congr,
assumption,
assumption
end
is it possible to write a @[congr]
lemma such that lean doesn't need the dsimp
?
Reid Barton (Dec 05 2021 at 15:52):
Does congr
care about [congr]
lemmas?
Gabriel Ebner (Dec 05 2021 at 15:53):
AFAIK not.
Eric Wieser (Dec 05 2021 at 15:54):
Ah, then this is sort of an #xy, as my actual problem was that simp wasn't able to simplify the express for i
due to the dependent type in xi
Eric Wieser (Dec 05 2021 at 15:54):
I'm guessing we don't have much documentation for attr#congr (that link doesn't work)
Reid Barton (Dec 05 2021 at 15:54):
Right, simp
does care about [congr]
lemmas
Eric Wieser (Dec 05 2021 at 15:55):
Is there any way for me to teach congr
about this case, if [congr]
isn't the way?
Eric Wieser (Dec 05 2021 at 15:55):
If not, and if simp
also can't be taught, then maybe we need to unbundled direct_sum.of
Reid Barton (Dec 05 2021 at 15:57):
We can already tell this was an #xy question because it uses heq
Gabriel Ebner (Dec 05 2021 at 15:57):
@[congr]
is the way, but the teaching involves changing the congr
tactic which is in core Lean.
Eric Wieser (Dec 05 2021 at 15:59):
Does congr'
understand @[congr]
, and is it implemented in a way that we wouldn't need to modify core?
Gabriel Ebner (Dec 05 2021 at 16:08):
Yes, you could also just change it in congr'
. That can be done inside mathlib.
Eric Wieser (Dec 05 2021 at 16:09):
There's the separate problem here though that I can't work out how to even declare something that @[congr]
accepts here
Last updated: Dec 20 2023 at 11:08 UTC