Zulip Chat Archive

Stream: new members

Topic: Inner and Outer Automorphism Groups


Alex Griffin (Apr 04 2021 at 20:46):

I am currently trying to define the inner and outer automorphism groups of a given group G and have run into some issues. I have included the relevant code below (in a dropdown for length reasons):

Code for Inner and Outer Automorphisms

The first, more immediate issue is that, even filling in the gaps with sorry I still get errors related to some of the definitions, specifically related to the statement that inner_aut G is normal in mul_aut G and the definition of outer_aut as a quotient. For the inner automorphism group, the Infoview claims that Lean expects a function, which baffles me. The specific error it gives is

function expected at
  inner_aut
term has type
  subgroup (mul_aut ?m_1)

I assume that, if this error is fixed, then at least some of what else is giving errors will go away, but I wouldn't be surprised if, in fact, there are still issues with what I have.

The second issue is that, even with these errors fixed, I am not quite sure how to proceed with providing the necessary proofs for the definition of the inner automorphism group. Perhaps someone would be willing to provide some pointers on how to proceed? This would be much appreciated.

Patrick Massot (Apr 04 2021 at 20:58):

Your inner_aut doesn't take any explicit argument.

Patrick Massot (Apr 04 2021 at 20:58):

This is clearly not what you want.

Patrick Massot (Apr 04 2021 at 20:59):

So switch to def inner_aut (G : Type u) [group G] :

Patrick Massot (Apr 04 2021 at 20:59):

Note also there is no reason to handle universe variables by hand here. You should use (G : Type*)

Patrick Massot (Apr 04 2021 at 21:01):

You also have trailing commas after end which will confuse Lean. And quotient is not what you think until you open the quotient_group namespace (or use the full name quotient_group.quotient.

Patrick Massot (Apr 04 2021 at 21:03):

And the last declaration is declaring you will define outer_aut as an element of the quotient of the automorphism group of an implicitly specified G by its inner automorphism group. This is not what you want.

Patrick Massot (Apr 04 2021 at 21:09):

Also, defining the inner automorphisms like this will give you a lot of extra work compared to defining it as the image of the group morphism sending an element to the corresponding automorphism. In particular you'll need to prove it is a subgroup instead of getting it for free.

Patrick Massot (Apr 04 2021 at 21:10):

def inner_aut (G : Type u) [group G] : subgroup (mul_aut G) := subgroup.map mul_aut.conj 

Patrick Massot (Apr 04 2021 at 21:11):

Note I haven't checked if this definition is already in mathlib.

Eric Wieser (Apr 04 2021 at 22:12):

I think that's just mul_aut.conj.range


Last updated: Dec 20 2023 at 11:08 UTC