Zulip Chat Archive

Stream: maths

Topic: Conjugation Action


Aaron Anderson (May 13 2021 at 22:40):

I'd like to implement conjugation as a mul_action (so that, among other things, we can use orbit-stabilizer theory to study centralizers) and there are a few ideas which come to mind as to how to do this:

Aaron Anderson (May 13 2021 at 22:41):

  • Define a type synonym
  • Have this be the default instance of mul_action (units M) M for any monoid M.

Aaron Anderson (May 13 2021 at 22:42):

The second seems ideal to me, but I fear that I'll run into trouble. It seems that there isn't a global instance already of the form mul_action (units M) M, but are there any special cases where that does pop up?

Aaron Anderson (May 13 2021 at 22:43):

Will the coercion of units M to M make this intractible?

Adam Topaz (May 13 2021 at 22:45):

So you want a • b to mean "conjugate b by a"? This feels really confusing to me, purely from a notation point of view.

Aaron Anderson (May 13 2021 at 22:47):

Only if a is a units M... otherwise we will have something like a • conj_action b

Adam Topaz (May 13 2021 at 22:48):

But still, I would tend to think that a • b should mean ↑a * b when a : units M and b : M.

Aaron Anderson (May 13 2021 at 22:48):

Perhaps it can be a local instance throughout a particular file?

Adam Topaz (May 13 2021 at 22:49):

I've seen some notation like ab{}^a b for aba1a \cdot b \cdot a^{-1}.

Adam Topaz (May 13 2021 at 22:50):

And similarly ba=a1bab^a = a^{-1} \cdot b \cdot a.

Adam Topaz (May 13 2021 at 22:50):

Can we try to emulate something like that?

Adam Topaz (May 13 2021 at 22:51):

bab^a is nice because it's a right action so you have the nice formula (ba)c=bac(b^a)^c = b^{ac}

Aaron Anderson (May 13 2021 at 22:54):

If someone knows how to make a mul_action have that notation, I can work with it. But if I want to, say, refer to a stabilizer in a given group action, I'm pretty sure I need at least a local mul_action instance, in which the action is denoted with

Adam Topaz (May 13 2021 at 22:56):

Yeah, I understand, that's a fair point.

Adam Topaz (May 13 2021 at 22:57):

Maybe a general approach is to define a mul_action as a def whenever you have a morphism of monoids from a monoid MM to the endomorphism monoid of NN, in the usual way. This would be a special case of that, and you can make it a local instance when needed.

Adam Topaz (May 13 2021 at 22:58):

Unfortunately....

import algebra

variables {M : Type*} [monoid M]

example : monoid (M →* M) := by apply_instance -- fails

Eric Wieser (May 13 2021 at 22:59):

I have an open PR that chooses a different default mul_action (units M) ...

Aaron Anderson (May 13 2021 at 22:59):

Eric Wieser said:

I have an open PR that chooses a different default mul_action (units M) ...

oooof

Adam Topaz (May 13 2021 at 22:59):

Is it the multiplication of the coercion?

Eric Wieser (May 13 2021 at 22:59):

Mainly because we already have lots of lemmas about it

Eric Wieser (May 13 2021 at 22:59):

Yes

Aaron Anderson (May 13 2021 at 23:00):

back to type-synonym land I crawl

Eric Wieser (May 13 2021 at 23:00):

#7438

Eric Wieser (May 13 2021 at 23:01):

Strictly it's the action of the coercion, not the multiplication

Adam Topaz (May 13 2021 at 23:02):

gotcha

Eric Wieser (May 13 2021 at 23:03):

Eg units rat has the "obvious" action on fin 3 -> rat

Adam Topaz (May 13 2021 at 23:03):

That's great.

Adam Topaz (May 13 2021 at 23:03):

Next you should define projective spaces!

Eric Wieser (May 13 2021 at 23:08):

Responding to an earlier message:

import algebra.group.hom

variables {M : Type*} [monoid M]

example : monoid (monoid.End M) := by apply_instance -- works?

Eric Wieser (May 13 2021 at 23:08):

docs#monoid.End.monoid

Adam Topaz (May 13 2021 at 23:09):

Hence

import algebra

variables {M : Type*} [monoid M]

example : monoid (M →* M) := show monoid (monoid.End M), by apply_instance -- works :)

Adam Topaz (May 13 2021 at 23:10):

(I know...)

Eric Wieser (May 13 2021 at 23:11):

(for anyone who doesn't know, that conflicts with docs#monoid_hom.comm_monoid)

Adam Topaz (May 13 2021 at 23:12):

Eric Wieser said:

(for anyone who doesn't, that conflicts with docs#monoid_hom.comm_monoid)

aka the "pointwise" structure


Last updated: Dec 20 2023 at 11:08 UTC