Documentation

Mathlib.NumberTheory.Cyclotomic.Rat

Ring of integers of p ^ n-th cyclotomic fields #

We gather results about cyclotomic extensions of ℚ. In particular, we compute the ring of integers of a p ^ n-th cyclotomic extension of ℚ.

Main results #

theorem IsCyclotomicExtension.Rat.discr_prime_pow_ne_two' {p : ℕ+} {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [IsCyclotomicExtension {p ^ (k + 1)} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ (k + 1))) (hk : p ^ (k + 1) ≠ 2) :
Algebra.discr ℚ ⇑(IsPrimitiveRoot.subOnePowerBasis ℚ hζ).basis = (-1) ^ (Nat.totient (↑p ^ (k + 1)) / 2) * ↑↑p ^ (↑p ^ k * ((↑p - 1) * (k + 1) - 1))

The discriminant of the power basis given by ζ - 1.

theorem IsCyclotomicExtension.Rat.discr_odd_prime' {p : ℕ+} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [IsCyclotomicExtension {p} ℚ K] (hζ : IsPrimitiveRoot ζ ↑p) (hodd : p ≠ 2) :
Algebra.discr ℚ ⇑(IsPrimitiveRoot.subOnePowerBasis ℚ hζ).basis = (-1) ^ ((↑p - 1) / 2) * ↑↑p ^ (↑p - 2)
theorem IsCyclotomicExtension.Rat.discr_prime_pow' {p : ℕ+} {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [IsCyclotomicExtension {p ^ k} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ k)) :
Algebra.discr ℚ ⇑(IsPrimitiveRoot.subOnePowerBasis ℚ hζ).basis = (-1) ^ (Nat.totient (↑p ^ k) / 2) * ↑↑p ^ (↑p ^ (k - 1) * ((↑p - 1) * k - 1))

The discriminant of the power basis given by ζ - 1. Beware that in the cases p ^ k = 1 and p ^ k = 2 the formula uses 1 / 2 = 0 and 0 - 1 = 0. It is useful only to have a uniform result. See also IsCyclotomicExtension.Rat.discr_prime_pow_eq_unit_mul_pow'.

theorem IsCyclotomicExtension.Rat.discr_prime_pow_eq_unit_mul_pow' {p : ℕ+} {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [IsCyclotomicExtension {p ^ k} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ k)) :
∃ (u : ℤˣ) (n : ℕ), Algebra.discr ℚ ⇑(IsPrimitiveRoot.subOnePowerBasis ℚ hζ).basis = ↑↑u * ↑↑p ^ n

If p is a prime and IsCyclotomicExtension {p ^ k} K L, then there are u : ℤˣ and n : ℕ such that the discriminant of the power basis given by ζ - 1 is u * p ^ n. Often this is enough and less cumbersome to use than IsCyclotomicExtension.Rat.discr_prime_pow'.

theorem IsCyclotomicExtension.Rat.isIntegralClosure_adjoin_singleton_of_prime_pow {p : ℕ+} {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [hcycl : IsCyclotomicExtension {p ^ k} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ k)) :

If K is a p ^ k-th cyclotomic extension of ℚ, then (adjoin ℤ {ζ}) is the integral closure of ℤ in K.

The integral closure of ℤ inside CyclotomicField (p ^ k) ℚ is CyclotomicRing (p ^ k) ℤ ℚ.

@[simp]
noncomputable def IsPrimitiveRoot.adjoinEquivRingOfIntegers {p : ℕ+} {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [IsCyclotomicExtension {p ^ k} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ k)) :

The algebra isomorphism adjoin ℤ {ζ} ≃ₐ[ℤ] (𝓞 K), where ζ is a primitive p ^ k-th root of unity and K is a p ^ k-th cyclotomic extension of ℚ.

Equations
Instances For

    The ring of integers of a p ^ k-th cyclotomic extension of ℚ is a cyclotomic extension.

    Equations
    • ⋯ = ⋯
    noncomputable def IsPrimitiveRoot.integralPowerBasis {p : ℕ+} {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [IsCyclotomicExtension {p ^ k} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ k)) :

    The integral PowerBasis of 𝓞 K given by a primitive root of unity, where K is a p ^ k cyclotomic extension of ℚ.

    Equations
    Instances For
      @[inline, reducible]
      abbrev IsPrimitiveRoot.toInteger {K : Type u} [Field K] {ζ : K} {k : ℕ+} (hζ : IsPrimitiveRoot ζ ↑k) :

      Abbreviation to see a primitive root of unity as a member of the ring of integers.

      Equations
      Instances For
        @[simp]
        theorem IsPrimitiveRoot.integralPowerBasis_gen {p : ℕ+} {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [hcycl : IsCyclotomicExtension {p ^ k} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ k)) :
        @[simp]
        theorem IsPrimitiveRoot.integralPowerBasis_dim {p : ℕ+} {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [hcycl : IsCyclotomicExtension {p ^ k} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ k)) :
        noncomputable def IsPrimitiveRoot.adjoinEquivRingOfIntegers' {p : ℕ+} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [hcycl : IsCyclotomicExtension {p} ℚ K] (hζ : IsPrimitiveRoot ζ ↑p) :

        The algebra isomorphism adjoin ℤ {ζ} ≃ₐ[ℤ] (𝓞 K), where ζ is a primitive p-th root of unity and K is a p-th cyclotomic extension of ℚ.

        Equations
        Instances For

          The ring of integers of a p-th cyclotomic extension of ℚ is a cyclotomic extension.

          Equations
          • ⋯ = ⋯
          noncomputable def IsPrimitiveRoot.integralPowerBasis' {p : ℕ+} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [hcycl : IsCyclotomicExtension {p} ℚ K] (hζ : IsPrimitiveRoot ζ ↑p) :

          The integral PowerBasis of 𝓞 K given by a primitive root of unity, where K is a p-th cyclotomic extension of ℚ.

          Equations
          Instances For
            @[simp]
            @[simp]
            theorem IsPrimitiveRoot.power_basis_int'_dim {p : ℕ+} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [hcycl : IsCyclotomicExtension {p} ℚ K] (hζ : IsPrimitiveRoot ζ ↑p) :
            noncomputable def IsPrimitiveRoot.subOneIntegralPowerBasis {p : ℕ+} {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [IsCyclotomicExtension {p ^ k} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ k)) :

            The integral PowerBasis of 𝓞 K given by ζ - 1, where K is a p ^ k cyclotomic extension of ℚ.

            Equations
            Instances For
              @[simp]
              theorem IsPrimitiveRoot.subOneIntegralPowerBasis_gen {p : ℕ+} {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [IsCyclotomicExtension {p ^ k} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ k)) :
              (IsPrimitiveRoot.subOneIntegralPowerBasis hζ).gen = { val := ζ - 1, property := ⋯ }
              noncomputable def IsPrimitiveRoot.subOneIntegralPowerBasis' {p : ℕ+} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [hcycl : IsCyclotomicExtension {p} ℚ K] (hζ : IsPrimitiveRoot ζ ↑p) :

              The integral PowerBasis of 𝓞 K given by ζ - 1, where K is a p-th cyclotomic extension of ℚ.

              Equations
              Instances For
                theorem IsPrimitiveRoot.zeta_sub_one_prime_of_ne_two {p : ℕ+} {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [IsCyclotomicExtension {p ^ (k + 1)} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ (k + 1))) (hodd : p ≠ 2) :

                ζ - 1 is prime if p ≠ 2 and ζ is a primitive p ^ (k + 1)-th root of unity. See zeta_sub_one_prime for a general statement.

                theorem IsPrimitiveRoot.zeta_sub_one_prime_of_two_pow {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [IsCyclotomicExtension {2 ^ (k + 1)} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(2 ^ (k + 1))) :

                ζ - 1 is prime if ζ is a primitive 2 ^ (k + 1)-th root of unity. See zeta_sub_one_prime for a general statement.

                theorem IsPrimitiveRoot.zeta_sub_one_prime {p : ℕ+} {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [IsCyclotomicExtension {p ^ (k + 1)} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ (k + 1))) :

                ζ - 1 is prime if ζ is a primitive p ^ (k + 1)-th root of unity.

                theorem IsPrimitiveRoot.zeta_sub_one_prime' {p : ℕ+} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [h : IsCyclotomicExtension {p} ℚ K] (hζ : IsPrimitiveRoot ζ ↑p) :

                ζ - 1 is prime if ζ is a primitive p-th root of unity.

                theorem IsPrimitiveRoot.subOneIntegralPowerBasis_gen_prime {p : ℕ+} {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [IsCyclotomicExtension {p ^ (k + 1)} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ (k + 1))) :
                theorem IsCyclotomicExtension.Rat.absdiscr_prime_pow (p : ℕ+) (k : ℕ) (K : Type u) [Field K] [CharZero K] [hp : Fact (Nat.Prime ↑p)] [NumberField K] [IsCyclotomicExtension {p ^ k} ℚ K] :
                NumberField.discr K = (-1) ^ (Nat.totient (↑p ^ k) / 2) * ↑↑p ^ (↑p ^ (k - 1) * ((↑p - 1) * k - 1))

                We compute the absolute discriminant of a p ^ k-th cyclotomic field. Beware that in the cases p ^ k = 1 and p ^ k = 2 the formula uses 1 / 2 = 0 and 0 - 1 = 0. See also the results below.

                theorem IsCyclotomicExtension.Rat.absdiscr_prime_pow_succ (p : ℕ+) (k : ℕ) (K : Type u) [Field K] [CharZero K] [hp : Fact (Nat.Prime ↑p)] [NumberField K] [IsCyclotomicExtension {p ^ (k + 1)} ℚ K] :
                NumberField.discr K = (-1) ^ (↑p ^ k * (↑p - 1) / 2) * ↑↑p ^ (↑p ^ k * ((↑p - 1) * (k + 1) - 1))

                We compute the absolute discriminant of a p ^ (k + 1)-th cyclotomic field. Beware that in the case p ^ k = 2 the formula uses 1 / 2 = 0. See also the results below.

                theorem IsCyclotomicExtension.Rat.absdiscr_prime (p : ℕ+) (K : Type u) [Field K] [CharZero K] [hp : Fact (Nat.Prime ↑p)] [NumberField K] [IsCyclotomicExtension {p} ℚ K] :
                NumberField.discr K = (-1) ^ ((↑p - 1) / 2) * ↑↑p ^ (↑p - 2)

                We compute the absolute discriminant of a p-th cyclotomic field where p is prime.