Zulip Chat Archive
Stream: maths
Topic: Multiplicative subgroups of a ring
Adam Topaz (May 02 2022 at 20:45):
Suppose that is a (semi)ring. Does anyone have any thoughts about how we might teach lean about the multiplicative subgroups of ? Of course, we could just work with subgroup A\^x
, but for many applications it would be nice to be able to write for such a multiplicative subgroup.
We could define mul_subgroup A := subgroup A\^x
with a different has_mem
instance.
We could also define mul_subgroup A
as a bespoke structure with a carrier : set A
field and various assumptions.
Thoughts? Ideas?
Yaël Dillies (May 02 2022 at 20:47):
Could you generalize docs#subgroup to not require working over a group
?
Adam Topaz (May 02 2022 at 20:48):
(You could take to be any monoid in the above)
Adam Topaz (May 02 2022 at 20:48):
@Yaël Dillies I'm not sure what you mean...
Yaël Dillies (May 02 2022 at 20:49):
Replace the [group G]
assumption by [has_mul G] [has_one G]
and find a way to rephrase docs#subgroup.inv_mem' without referring to ⁻¹
.
Adam Topaz (May 02 2022 at 20:49):
How would you do that?
Yaël Dillies (May 02 2022 at 20:51):
Something like ∀ a b, a * b = 1 → a ∈ carrier → b ∈ carrier
. The problem with this approach is that your subgroups don't inherit any inverse from G
, precisely because G
doesn't have any...
Adam Topaz (May 02 2022 at 20:51):
I guess you could say "for all elements which are units, and are members of the carrier, their inverses are members of the carrier"
Reid Barton (May 02 2022 at 20:53):
But that's not what you want, you want "has an inverse which is also a member"
Yaël Dillies (May 02 2022 at 20:53):
Maybe you can then define a⁻¹
for a : H : subgroup G
as ↑a.to_unit
where we need to define subgroup.unit
appropriately.
Adam Topaz (May 02 2022 at 20:53):
Oops! yeah of course
Yaël Dillies (May 02 2022 at 20:53):
Oh right, Reid. You should also add ∀ a ∈ carrier, is_unit a
, or carrier → units G
.
Yaël Dillies (May 02 2022 at 20:56):
Do we care about definitional equality here? If we define the inverse of elements of subgroups using Gˣ
, we lose the defeq ↑a⁻¹ = (↑a)⁻¹
, but that's not one you were gonna have with your mul_subgroup
either.
Adam Topaz (May 02 2022 at 20:56):
We could arrange to have good defeq properties.
Yaël Dillies (May 02 2022 at 20:57):
At any rate, I value not duplicating the subgroup API over defeq properties.
Eric Wieser (May 02 2022 at 21:28):
This sounds a bit like a previous discussion about subfields of (noncommutative) rings
Adam Topaz (May 02 2022 at 21:34):
Yeah, it's a very similar discussion. How did that resolve?
Jireh Loreaux (May 02 2022 at 22:27):
I'll just point out that this discussion may be relevant even for docs#unitary as a special case.
Yury G. Kudryashov (May 04 2022 at 02:05):
If we define subgroup G
to be old_subgroup Gˣ
, then we won't need classical.choice
for simple facts about subgroups.
Yury G. Kudryashov (May 04 2022 at 02:06):
This is a pro compared to the is_unit
approach.
Last updated: Dec 20 2023 at 11:08 UTC