Zulip Chat Archive

Stream: maths

Topic: Multiplicative subgroups of a ring


Adam Topaz (May 02 2022 at 20:45):

Suppose that AA is a (semi)ring. Does anyone have any thoughts about how we might teach lean about the multiplicative subgroups of A×A^\times? Of course, we could just work with subgroup A\^x, but for many applications it would be nice to be able to write aHa \in H 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 AA 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 , 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