Zulip Chat Archive
Stream: Is there code for X?
Topic: Subgroup of all roots of unity
Yakov Pechersky (Aug 29 2025 at 20:36):
I am working on the proof (via Hensel's lemma) that Z_p has p - 1 roots of unity. That can be stated as HasEnoughRootsOfUnity ℤ_[p] (p - 1) and also as rootsOfUnity (p - 1) ℤ_[p] ≃* (ZMod p)ˣ.
In fact, there only p - 1 roots of unity for p != 2. I'd like to say something like allRootsOfUnity ℤ_[p] ≃* (ZMod p)ˣ. Do we have something like an allRootsOfUnity subgroup?
Aaron Liu (Aug 29 2025 at 20:38):
that would be CommGroup.torsion (ZMod p)ˣ
Kevin Buzzard (Aug 29 2025 at 20:41):
For p=2 the roots of unity are canonically
Aaron Liu (Aug 29 2025 at 20:44):
I think I saw something saying that in an arbitrary field F all nonzero elements are roots of unity iff F has positive characteristic and is algebraic over its prime subfield
Aaron Liu (Aug 29 2025 at 20:45):
Aaron Liu said:
Kevin Buzzard (Aug 29 2025 at 20:47):
That's true, but this is about p-adic integers which aren't a field
Aaron Liu (Aug 29 2025 at 20:48):
why is it called p if it's not prime
Aaron Liu (Aug 29 2025 at 20:48):
why would you do this to me
Aaron Liu (Aug 29 2025 at 20:49):
oh
Aaron Liu (Aug 29 2025 at 20:49):
I get it now
Aaron Liu (Aug 29 2025 at 20:49):
I misread sorry
Aaron Liu (Aug 29 2025 at 20:55):
this is what happens when you don't do algebra all day
Yakov Pechersky (Aug 29 2025 at 20:58):
Do we have anything that links CommGroup.torsion with the product of rootsOfUnity?
Aaron Liu (Aug 29 2025 at 21:02):
probably not
Aaron Liu (Aug 29 2025 at 21:02):
do we have an additive version of rootsOfUnity
Yakov Pechersky (Aug 29 2025 at 21:07):
I think I need to understand torsion better. In the meantime, I'll show that CommGroup.torsion ℤ_[p]ˣ = rootsOfUnity (p - 1) ℤ_[p].
Yakov Pechersky (Aug 29 2025 at 21:07):
(Again, for p != 2)
Aaron Liu (Aug 29 2025 at 21:08):
working with torsion recently has been confusing I think because it was being refactored
Scott Carnahan (Aug 30 2025 at 09:43):
Do we (eventually) want a statement using Witt vectors, e.g., mu(W(k)) always embeds in mu(W_2(k)) and surjects to mu(W_1(k))?
Violeta Hernández (Sep 03 2025 at 21:06):
for the p-adic integers and for GF(p) is one of the worst notation clashes in mathematics
Adam Topaz (Sep 04 2025 at 12:28):
I think we eventually also want the analogous assertion in for any p-adic field . Namely, that the projection splits where is the residue field. (@Dagur Asgeirsson and I were discussing this just yesterday!)
Yakov Pechersky (Sep 04 2025 at 13:51):
There are two ways to do this, it seems. To prove surjectivity, one either needs to apply hensels lemma (do we have that such fields are henselian?), or by the construction of a root of unity by taking the limit of the Cauchy sequence iteratively applying x^p.
Yakov Pechersky (Sep 04 2025 at 13:55):
I have it all done for Z_p, just need to PR it...
Adam Topaz (Sep 04 2025 at 16:18):
Yakov Pechersky said:
do we have that such fields are henselian?
I think so? It should be essentially this IsAdicComplete.henselianRing
Adam Topaz (Sep 04 2025 at 16:20):
Well, I guess that depends on how you define "p-adic field", but I think @Andrew Yang et al. formalized that whatever definition they settled on implies adic completeness?
Andrew Yang (Sep 04 2025 at 16:23):
If you are talking about the local field definition, we only showed that it is docs#CompleteSpace (as a metric space) but not yet that it docs#IsAdicComplete
Adam Topaz (Sep 04 2025 at 16:24):
Aha, okay.
Kevin Buzzard (Sep 04 2025 at 17:34):
Adam Topaz said:
I think we eventually also want the analogous assertion in for any p-adic field .
Surely it's at least true for all nonarch local fields, and maybe even for any field complete wrt a nontrivial nonarch norm or something like that?
Yakov Pechersky (Sep 08 2025 at 02:21):
Just the Z_p p-1 case handled here: #29425. The general case would follow a similar argument. Would need more API work to prepare the general statement, so I thought to get this one on the review queue for now.
Yakov Pechersky (Sep 10 2025 at 21:37):
#29517 for
lemma torsion_eq_biSup_rootsOfUnity :
CommGroup.torsion Mˣ = ⨆ (n : ℕ) (_hn : n ≠ 0), rootsOfUnity n M := by
Last updated: Dec 20 2025 at 21:32 UTC