Zulip Chat Archive
Stream: LFTCM 2024
Topic: Project idea: Power residue symbols
Chris Birkbeck (Mar 25 2024 at 10:11):
The idea is to define power residue symbols see the definition here. For this we might need to first define residue fields for rings of integers (or maybe more generally Dedekind domains). Then its "just" playing around with roots of unity
Chris Birkbeck (Mar 25 2024 at 10:13):
Here is a mess of ideas on how to start this that you can just copy-paste:
import Mathlib.NumberTheory.Cyclotomic.Basic
import Mathlib.RingTheory.Ideal.Norm
open scoped NumberField BigOperators
variable {F : Type*} [Field F] [NumberField F] (ΞΆ : π F) (n : β) (h : IsPrimitiveRoot ΞΆ n)
/--The residue field of a number field (specifically the ring of intergers) at a prime-/
def ResidueFieldAtPrime (p : Ideal (π F)) (hp : Ideal.IsPrime p) :=
LocalRing.ResidueField (Localization.AtPrime p)
/--The residue field of a number field (specifically the ring of intergers) at a prime-/
def ResidueFieldAtPrime2 (p : Ideal (π F)) (hp : Ideal.IsPrime p) := π F β§Έ p
variable (p : Ideal (π F)) (hp : Ideal.IsPrime p)
noncomputable instance : Field (ResidueFieldAtPrime p hp) := by
apply LocalRing.ResidueField.field
noncomputable instance (hp2 : p β β₯) : Field (ResidueFieldAtPrime2 p hp) := by
have h : Ideal.IsMaximal p := by
apply Ideal.IsPrime.isMaximal hp hp2
apply Ideal.Quotient.field
def residue_map : π F β+* (ResidueFieldAtPrime p hp) :=
(LocalRing.residue (Localization.AtPrime p)).comp (algebraMap (π F) (Localization.AtPrime p))
instance inst1 (hp2: p β β₯) : Fintype (ResidueFieldAtPrime2 p hp) := by
sorry
lemma norm_div_lemmas (p : Ideal (π F)) (hp : Ideal.IsPrime p)
(hpn : p β Ideal.span ({(n : (π F))} : Set (π F)) = β€) : n β£ ((Ideal.absNorm p) - 1) := by
sorry
lemma exits_pth_root (a : π F) (p : Ideal (π F)) (hp : Ideal.IsPrime p)
(hpn : p β Ideal.span ({(n * a : (π F))} : Set (π F)) = β€) :
β! (i : β), (a ^ (((Ideal.absNorm p) - 1) / n)) - ΞΆ^i β p := by sorry
Edgar Costa (Mar 25 2024 at 10:53):
@Chris Birkbeck are ideals computable in mathlib?
Chris Birkbeck (Mar 25 2024 at 10:56):
When you say computable, which sense do you mean?
Edgar Costa (Mar 25 2024 at 10:57):
I mean, in the practical sense, given two ideals defined by its generators , can one for example compute ?
I am just curious if one would be able to apply the residue map to a concrete ideal, or it will be totally theoretical.
Johan Commelin (Mar 25 2024 at 11:01):
It will be theoretical, but you can prove a lemma for ideals generated by explicit elements that will "compute" for you
Johan Commelin (Mar 25 2024 at 11:02):
If you label it with @[simp]
then the simp tactic will use it automatically
Chris Birkbeck (Mar 25 2024 at 11:02):
Actually computing something can be quite difficult! I expect we have results that describe the product of two ideals in terms of the generators of each one. But if it lets you say (2)(3)=(6), I'm don't know if that works (but maybe I'm wrong!)
Edgar Costa (Mar 25 2024 at 11:05):
Sure, maybe the right approach would not be having lean to compute it, but have a tactic that calls a CAS to express both generators in terms of the other, and thus establish equality
Chris Birkbeck (Mar 25 2024 at 11:12):
Ok I've made a repository for this: If you follow these instructions it should download it for you:
https://github.com/CBirkbeck/power_residue_symbols
cd power_residue_symbols
lake exe cache get
lake build
Chris Birkbeck (Mar 25 2024 at 11:13):
I propose we meet up after Amelia's talk this afternoon and we can chat about how to approach this!
Chris Birkbeck (Mar 25 2024 at 15:39):
I'll be near the front of the lecture theatre, so we can group there and organise ourselves!
Ramla ABDELLATIF (Mar 25 2024 at 15:43):
Chris Birkbeck said:
I'll be near the front of the lecture theatre, so we can group there and organise ourselves!
I gather my stuffs and I join you!
Chris Birkbeck (Mar 26 2024 at 12:49):
This might be useful for proving that the roots are distinct modulo p: Polynomial.X_pow_sub_one_separable_iff
Edgar Costa (Mar 26 2024 at 13:00):
I was thinking of IsPrimitiveRoot.sub_one_norm_eq_eval_cyclotomic
, so that
that relates with 1 or if
Sandra Rozensztajn (Mar 26 2024 at 15:23):
We can probably do a proof like this:
- show that n is not zero in the quotient ring
- define P(X) = (X^n-1)/(X-1), so that (in characteristic 0) P(1) = n and P(\zeta^i) = 0 if n does not divide i.
- assuming that 1 and \zeta^i are congruent modulo p, obtain a contradiction if n does not divide i
So we avoid working with the norm of \zeta - 1, or separabilty.
Chris Birkbeck (Mar 26 2024 at 21:02):
ok I added a proof that the reduction mod p of the primitive root is still a primitive root: primitivemodp'
. The key is to use the link to cyclotomic polynomials and roots under ring homs. it still has one sorry asking that n is not zero in the residue field, but that should be easy.
Last updated: May 02 2025 at 03:31 UTC