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 monoidM
.
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 for .
Adam Topaz (May 13 2021 at 22:50):
And similarly .
Adam Topaz (May 13 2021 at 22:50):
Can we try to emulate something like that?
Adam Topaz (May 13 2021 at 22:51):
is nice because it's a right action so you have the nice formula
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 to the endomorphism monoid of , 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):
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):
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