Zulip Chat Archive
Stream: Is there code for X?
Topic: Nat.card version of card_orbit_mul_card_stabilizer_eq_card_g
Xavier Roblot (Jan 20 2026 at 09:58):
we have docs#MulAction.card_orbit_mul_card_stabilizer_eq_card_group which uses Fintype and thus can be difficult to use in some cases. The Nat.card version is very easy to prove (well, it's essentially the same proof) but seems to be lacking:
module
public import Mathlib.Data.Set.Card
public import Mathlib.GroupTheory.GroupAction.Quotient
open MulAction
@[to_additive]
theorem MulAction.card_orbit_mul_card_stabilizer_eq_card_group' (α : Type*) {β : Type*} [Group α]
[MulAction α β] (b : β) :
Nat.card (orbit α b) * Nat.card (stabilizer α b) = Nat.card α := by
simpa using Nat.card_congr (MulAction.orbitProdStabilizerEquivGroup α b)
Does it exist somewhere in another form? Should it be added to Mathlib otherwise? Note that it cannot be in the same file as docs#MulAction.card_orbit_mul_card_stabilizer_eq_card_group since this file contains the line
assert_not_exists Cardinal
Ruben Van de Velde (Jan 20 2026 at 10:20):
I have a branch to redefine Nat.card without cardinals that I should have another look at
Thomas Browning (Jan 20 2026 at 10:52):
Xavier Roblot said:
Does it exist somewhere in another form?
Yes: docs#MulAction.index_stabilizer (but I agree that the cardinal dependence is annoying and should be removed).
Violeta Hernández (Jan 21 2026 at 05:56):
Why do we want Nat.card without cardinals? I think the real goal should be to minimize cardinal imports.
Violeta Hernández (Jan 21 2026 at 05:57):
Or split out the material that doesn't depend on choice or Schröder-Bernstein or all the actually technical stuff
Ruben Van de Velde (Jan 21 2026 at 06:56):
I don't know that "we" (as in the mathlib maintainer) want it, but cardinals seem somewhat heavy just to get the number of elements in a finite type, so I wanted to figure out how much work it would be not to use them
Violeta Hernández (Jan 26 2026 at 22:12):
Cardinals are nothing more than a Quotient of Type. We could probably define them in Init if we wanted to.
Last updated: Feb 28 2026 at 14:05 UTC