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