Zulip Chat Archive
Stream: Is there code for X?
Topic: G/nG is a finite group of size n^d
Yaël Dillies (Oct 14 2024 at 07:50):
Suppose G
is an abelian group free of rank d
as a ℤ
-module. Then G/nG
is a finite group of rank d
as a ZMod n
-module. Is this easy to get from mathlib? We have a proof in PFR, but it's quite horrible.
Yaël Dillies (Oct 14 2024 at 07:51):
import Mathlib.LinearAlgebra.Dimension.Finrank
import Mathlib.LinearAlgebra.FreeModule.Basic
import Mathlib.RingTheory.Finiteness
variable {G : Type*} [AddCommGroup G] [Module.Free ℤ G] [Module.Finite ℤ G] {n : ℕ}
variable (G n) in
abbrev modN : Type _ := G ⧸ LinearMap.range (LinearMap.lsmul ℤ G n)
/-- If `G` is a rank `d` free `ℤ`-module, then `G/nG` is a finite group of cardinality `n ^ d`. -/
example : Finite (modN G n) ∧ Nat.card (modN G n) = n ^ Module.finrank ℤ G := sorry
Kevin Buzzard (Oct 14 2024 at 07:54):
One could use the iso
Yaël Dillies (Oct 14 2024 at 07:55):
And can this be generalised away from ℤ
?
Yaël Dillies (Oct 14 2024 at 07:55):
Kevin Buzzard said:
One could use the iso
:idea: Does this have a name in mathlib?
Riccardo Brasca (Oct 14 2024 at 08:32):
We have Module.Free.tensor
Riccardo Brasca (Oct 14 2024 at 08:33):
see its proof to get the explicit basis if you need the rank
Riccardo Brasca (Oct 14 2024 at 08:36):
no sorry, this is not what you need
Riccardo Brasca (Oct 14 2024 at 08:36):
we may have something like that in flt-regular
Riccardo Brasca (Oct 14 2024 at 08:36):
@Andrew Yang
Andrew Yang (Oct 14 2024 at 09:51):
Not sure but the iso Kevin mentioned is
docs#quotTensorEquivQuotSMul
Last updated: May 02 2025 at 03:31 UTC