Zulip Chat Archive
Stream: mathlib4
Topic: simp for MulAut.inv_def
Antoine Chambert-Loir (Apr 15 2025 at 13:29):
Would it be reasonable to have:
@[simp]
theorem MulAut.inv_apply {M : Type*} [Mul M] (e : MulAut M) (x : M) :
e⁻¹ x = e.symm x := by
rw [MulAut.inv_def]
or even a simp tag on docs#MulAut.inv_def
Eric Wieser (Apr 15 2025 at 13:32):
inv_apply (and same for mul, one) looks good to me, under the premise that if you are applying your morphisms you no longer care about the group structure
Eric Wieser (Apr 15 2025 at 13:32):
If we make this simp we should do it globally for all the endomorphisms / automorphisms
Eric Wieser (Apr 15 2025 at 13:32):
(not only for consistency, but that's more likely to alert us if this is a bad idea after all)
Edward van de Meent (Apr 15 2025 at 13:35):
i guess this could be a reasonable simp because this is in application form, rather than just a plain e⁻¹ = e.symm?
Edward van de Meent (Apr 15 2025 at 13:35):
i suspect tagging MulAut.inv_def with simp will have adverse effects though
Edward van de Meent (Apr 15 2025 at 13:37):
in particular because this is breaking the abstraction barrier between (M ≃* M) and MulAut M, whereas the applied form already has broken that barrier, so doesn't worsen it
Antoine Chambert-Loir (Apr 15 2025 at 13:39):
Well, MulAut.inv_apply doesn't suffice, in fact, what I need is
@[simp]
theorem MulAut.symm_inv_apply {M : Type*} [Mul M] (e : MulAut M) (x : M) : (e⁻¹).symm x = e x := by
simp only [MulAut.inv_def, MulEquiv.symm_symm]
Antoine Chambert-Loir (Apr 15 2025 at 13:40):
(I was led to that after a mere simp).
Edward van de Meent (Apr 15 2025 at 13:40):
right, because you don't get to apply inv_inv
Eric Wieser (Apr 15 2025 at 13:41):
I think probably we want (e⁻¹).symm = e and e.symm⁻¹ = e as simp lemmas too
Edward van de Meent (Apr 15 2025 at 13:42):
yes, i think that makes sense...
Edward van de Meent (Apr 15 2025 at 13:42):
weird question, but should some of these be marked with something like push_cast?
Antoine Chambert-Loir (Apr 15 2025 at 13:46):
(docs#MulAut.mul_apply and docs#MulAut.one_apply are already marked as simp.)
Antoine Chambert-Loir (Apr 15 2025 at 13:52):
I did that in #24082. I expect that I will have to de-simp one things or two.
Edward van de Meent (Apr 15 2025 at 13:53):
things like MulAut.apply_inv_self :thinking:
Antoine Chambert-Loir (Apr 15 2025 at 13:54):
That one doesn't prove by simp, but then, the next one, docs#MulAut.apply_symm_self does.
Last updated: May 02 2025 at 03:31 UTC