Documentation

Atlas.NumberTheoryI.code.RayClassFields

inductive RayClassField.Place (K : Type u_1) [Field K] [NumberField K] :
Type u_1
Instances For
    Instances For
      structure RayClassField.Modulus (K : Type u_2) [Field K] [NumberField K] :
      Type u_2
      Instances For
        @[implicit_reducible]
        structure RayClassField.SimpleModulus (K : Type u_2) [Field K] [NumberField K] :
        Type u_2
        Instances For
          theorem RayClassField.SimpleModulus.ext {K : Type u_2} {inst✝ : Field K} {inst✝¹ : NumberField K} {x y : SimpleModulus K} (finite_part : x.finite_part = y.finite_part) (infinite_part : x.infinite_part = y.infinite_part) :
          x = y
          Instances For
            def RayClassField.Modulus.dvd {K : Type u_1} [Field K] [NumberField K] (𝔪 𝔫 : Modulus K) :
            Instances For
              def RayClassField.Modulus.gcd {K : Type u_1} [Field K] [NumberField K] (𝔪 𝔫 : Modulus K) :
              Instances For
                def RayClassField.Modulus.lcm {K : Type u_1} [Field K] [NumberField K] (𝔪 𝔫 : Modulus K) :
                Instances For
                  Instances For
                    @[reducible, inline]
                    abbrev RayClassField.FinitePlace (K : Type u_2) [Field K] [NumberField K] :
                    Type u_2
                    Instances For
                      @[reducible, inline]
                      abbrev RayClassField.FracIdeal (K : Type u_2) [Field K] [NumberField K] :
                      Type u_2
                      Instances For
                        Instances For
                          Instances For
                            Instances For
                              @[implicit_reducible]
                              def RayClassField.IsRayGenerator {K : Type u_1} [Field K] [NumberField K] (𝔪 : Modulus K) (I : FracIdealsCoprime K 𝔪) :
                              Instances For
                                Instances For
                                  def RayClassField.RayClassGroup (K : Type u) [Field K] [NumberField K] (𝔪 : Modulus K) :
                                  Instances For
                                    @[implicit_reducible]
                                    Instances For
                                      noncomputable def RayClassField.FrobeniusAutomorphism (K L : Type u) [Field K] [Field L] [NumberField K] [NumberField L] [Algebra K L] [IsGalois K L] (𝔭 : FinitePlace K) :
                                      Gal(L/K)
                                      Instances For
                                        noncomputable def RayClassField.primeAsUnitFracIdeal (K : Type u) [Field K] [NumberField K] (𝔭 : FinitePlace K) :
                                        Instances For
                                          noncomputable def RayClassField.primeCoprime (K : Type u) [Field K] [NumberField K] (𝔪 : Modulus K) (𝔭 : FinitePlace K) (h𝔭 : 𝔪.toFun (Place.finite 𝔭) = 0) :
                                          Instances For
                                            Instances For
                                              theorem RayClassField.primeCoprime_val (K : Type u) [Field K] [NumberField K] (𝔪 : Modulus K) (𝔭 : FinitePlace K) (h𝔭 : 𝔪.toFun (Place.finite 𝔭) = 0) :
                                              ↑(primeCoprime K 𝔪 𝔭 h𝔭) = primeAsUnitFracIdeal K 𝔭
                                              @[reducible, inline]
                                              abbrev RayClassField.CoprimePrimes (K : Type u) [Field K] [NumberField K] (𝔪 : Modulus K) :
                                              Instances For
                                                noncomputable def RayClassField.freeGroupToCoprime (K : Type u) [Field K] [NumberField K] (𝔪 : Modulus K) :
                                                Instances For
                                                  noncomputable def RayClassField.freeGroupToGal (K L : Type u) [Field K] [Field L] [NumberField K] [NumberField L] [Algebra K L] [IsGalois K L] (𝔪 : Modulus K) :
                                                  FreeGroup (CoprimePrimes K 𝔪) →* Gal(L/K)
                                                  Instances For
                                                    theorem RayClassField.primesCoprime_eq_range (K : Type u) [Field K] [NumberField K] (𝔪 : Modulus K) :
                                                    primesCoprime K 𝔪 = Set.range fun (p : CoprimePrimes K 𝔪) => primeCoprime K 𝔪 ↑p ⋯
                                                    theorem RayClassField.artinMapExists (K L : Type u) [Field K] [Field L] [NumberField K] [NumberField L] [Algebra K L] [KroneckerWeber.IsAbelianExtension K L] (𝔪 : Modulus K) :
                                                    ∃ (ψ : FracIdealsCoprime K 𝔪 →* Gal(L/K)), ∀ (𝔭 : FinitePlace K) (h𝔭 : 𝔪.toFun (Place.finite 𝔭) = 0), ψ (primeCoprime K 𝔪 𝔭 h𝔭) = FrobeniusAutomorphism K L 𝔭
                                                    noncomputable def RayClassField.ArtinMap (K L : Type u) [Field K] [Field L] [NumberField K] [NumberField L] [Algebra K L] [KroneckerWeber.IsAbelianExtension K L] (𝔪 : Modulus K) :
                                                    FracIdealsCoprime K 𝔪 →* Gal(L/K)
                                                    Instances For
                                                      theorem RayClassField.artinMap_at_prime_eq_frobenius (K L : Type u) [Field K] [Field L] [NumberField K] [NumberField L] [Algebra K L] [KroneckerWeber.IsAbelianExtension K L] (𝔪 : Modulus K) (𝔭 : FinitePlace K) (h𝔭 : 𝔪.toFun (Place.finite 𝔭) = 0) :
                                                      (ArtinMap K L 𝔪) (primeCoprime K 𝔪 𝔭 h𝔭) = FrobeniusAutomorphism K L 𝔭
                                                      Instances For
                                                        Instances For
                                                          def RayClassField.UnitsCoprime (K : Type u) [Field K] [NumberField K] (𝔪 : Modulus K) :
                                                          Instances For
                                                            theorem RayClassField.embedding_im_zero {K : Type u_1} [Field K] {w : NumberField.InfinitePlace K} (hw : w.IsReal) (x : K) :
                                                            (w.embedding x).im = 0
                                                            Instances For
                                                              def RayClassField.QuotientUnits (K : Type u) [Field K] [NumberField K] (𝔪 : Modulus K) :
                                                              Instances For
                                                                @[implicit_reducible]
                                                                Instances For
                                                                  Instances For
                                                                    @[implicit_reducible]
                                                                    noncomputable instance RayClassField.instCommGroupSignsTimesUnits (K : Type u) [Field K] [NumberField K] (𝔪 : Modulus K) :
                                                                    noncomputable instance RayClassField.instFintypeSignsTimesUnits (K : Type u) [Field K] [NumberField K] (𝔪 : Modulus K) :
                                                                    theorem RayClassField.lemma_21_7_ideal_class_coprime_rep (A : Type u_2) [CommRing A] [IsDomain A] [IsDedekindDomain A] (𝔞 : Ideal A) (c : ClassGroup A) (h𝔞 : 𝔞 ≠ ⊥) :
                                                                    ∃ (I : ↥(nonZeroDivisors (Ideal A))), ClassGroup.mk0 I = c ∧ ∀ (𝔭 : IsDedekindDomain.HeightOneSpectrum A), 𝔭.asIdeal ∣ 𝔞 → ¬𝔭.asIdeal ∣ ↑I
                                                                    noncomputable def RayClassField.principalIdealMap {K : Type u_1} [Field K] [NumberField K] (𝔪 : Modulus K) :
                                                                    Instances For
                                                                      noncomputable def RayClassField.exactSeq_map3 {K : Type u_1} [Field K] [NumberField K] (𝔪 : Modulus K) :
                                                                      Instances For
                                                                        Instances For
                                                                          theorem RayClassField.embedding_re_ne_zero {K : Type u_1} [Field K] {w : NumberField.InfinitePlace K} (hw : w.IsReal) (a : Kˣ) :
                                                                          (w.embedding ↑a).re ≠ 0
                                                                          noncomputable def RayClassField.signAtPlace {K : Type u_1} [Field K] {w : NumberField.InfinitePlace K} (_hw : w.IsReal) (α : Kˣ) :
                                                                          Instances For
                                                                            theorem RayClassField.signAtPlace_mul {K : Type u_1} [Field K] {w : NumberField.InfinitePlace K} (hw : w.IsReal) (a b : Kˣ) :
                                                                            signAtPlace hw (a * b) = signAtPlace hw a + signAtPlace hw b
                                                                            theorem RayClassField.signAtPlace_eq_zero_iff {K : Type u_1} [Field K] {w : NumberField.InfinitePlace K} (hw : w.IsReal) (α : Kˣ) :
                                                                            signAtPlace hw α = 0 ↔ 0 < (w.embedding ↑α).re
                                                                            noncomputable def RayClassField.signMapHom (K : Type u) [Field K] [NumberField K] (𝔪 : Modulus K) :
                                                                            Instances For
                                                                              Instances For
                                                                                theorem RayClassField.finset_prod_ideal_le_factor {R : Type u_2} [CommRing R] {ι : Type u_3} [DecidableEq ι] (S : Finset ι) (f : ι → Ideal R) (j : ι) (hj : j ∈ S) :
                                                                                S.prod f ≤ f j
                                                                                theorem RayClassField.unit_mod_ideal_not_in_prime {R : Type u_2} [CommRing R] {I 𝔭 : Ideal R} (hI𝔭 : I ≤ 𝔭) (h𝔭 : 𝔭 ≠ ⊤) {b : R} (hb : IsUnit ((Ideal.Quotient.mk I) b)) :
                                                                                b ∉ 𝔭
                                                                                theorem RayClassField.finitePartMapHom_ker_iff {K : Type u_1} [Field K] [NumberField K] (𝔪 : Modulus K) (α : ↥(UnitsCoprime_subgroup' K 𝔪)) :
                                                                                (finitePartMapHom K 𝔪) α = 1 ↔ ∀ (v : FinitePlace K), 𝔪.toFun (Place.finite v) ≠ 0 → (IsDedekindDomain.HeightOneSpectrum.valuation K v) (↑↑α - 1) ≤ ↑(Multiplicative.ofAdd (-↑(𝔪.toFun (Place.finite v))))
                                                                                theorem RayClassField.weak_approx_nonzero_with_val_and_sign {K : Type u_2} [Field K] [NumberField K] (𝔪 : Modulus K) (pos : ↥𝔪.infSupportFinset → Prop) [DecidablePred pos] :
                                                                                ∃ (x : K) (_ : x ≠ 0), (∀ (v : FinitePlace K), 𝔪.toFun (Place.finite v) ≠ 0 → (IsDedekindDomain.HeightOneSpectrum.valuation K v) x = 1) ∧ ∀ (w : NumberField.InfinitePlace K) (hw : w ∈ 𝔪.infSupportFinset), (pos ⟨w, hw⟩ → 0 < (w.embedding x).re) ∧ (¬pos ⟨w, hw⟩ → (w.embedding x).re < 0)
                                                                                theorem RayClassField.weak_approx_sign_coprime {K : Type u_2} [Field K] [NumberField K] (𝔪 : Modulus K) (s : ↥𝔪.infSupportFinset → Multiplicative (ZMod 2)) :
                                                                                ∃ (α : Kˣ), (∀ (v : FinitePlace K), 𝔪.toFun (Place.finite v) ≠ 0 → (IsDedekindDomain.HeightOneSpectrum.valuation K v) ↑α = 1) ∧ ∀ (w : NumberField.InfinitePlace K) (hw : w ∈ 𝔪.infSupportFinset), Multiplicative.ofAdd (signAtPlace ⋯ α) = s ⟨w, hw⟩
                                                                                theorem RayClassField.signMapHom_surjective.signMapHom_surjective_aux {K : Type u_1} [Field K] [NumberField K] (𝔪 : Modulus K) (s : ↥𝔪.infSupportFinset → Multiplicative (ZMod 2)) :
                                                                                ∃ (α : ↥(UnitsCoprime_subgroup' K 𝔪)), (signMapHom K 𝔪) α = s
                                                                                @[implicit_reducible]
                                                                                noncomputable instance RayClassField.instFintypeQuotientUnits (K : Type u) [Field K] [NumberField K] (𝔪 : Modulus K) :
                                                                                noncomputable instance RayClassField.instFintypeRayClassGroup (K : Type u) [Field K] [NumberField K] (𝔪 : Modulus K) :
                                                                                @[reducible, inline]
                                                                                abbrev RayClassField.Prime' (K : Type u_2) [Field K] [NumberField K] :
                                                                                Type u_2
                                                                                Instances For
                                                                                  noncomputable def RayClassField.partialDedekindZeta (K : Type u_2) [Field K] [NumberField K] (S : Set (Prime' K)) :
                                                                                  ℂ → ℂ
                                                                                  Instances For
                                                                                    theorem RayClassField.eulerFactor_analyticAt_one {K : Type u_2} [Field K] [NumberField K] (𝔭 : Prime' K) :
                                                                                    AnalyticAt ℂ (fun (s : ℂ) => (1 - ↑(Ideal.absNorm 𝔭.asIdeal) ^ (-s))⁻¹) 1
                                                                                    theorem RayClassField.partialDedekindZeta_factorization_near_one {K : Type u_2} [Field K] [NumberField K] (S : Set (Prime' K)) (hS : ¬S.Finite) :
                                                                                    ∃ (g : ℂ → ℂ), AnalyticAt ℂ g 1 ∧ (fun (s : ℂ) => (s - 1) * NumberField.dedekindZeta K s * g s) =ᶠ[nhds 1] fun (s : ℂ) => (s - 1) * partialDedekindZeta K S s
                                                                                    def RayClassField.HasPolarDensity (K : Type u_2) [Field K] [NumberField K] (S : Set (Prime' K)) (ρ : ℚ) :
                                                                                    Instances For
                                                                                      def RayClassField.HasDirichletDensity (K : Type u_2) [Field K] [NumberField K] (S : Set (Prime' K)) (ρ : ℚ) :
                                                                                      Instances For
                                                                                        def RayClassField.HasNaturalDensity (K : Type u_2) [Field K] [NumberField K] (S : Set (Prime' K)) (ρ : ℚ) :
                                                                                        Instances For
                                                                                          theorem RayClassField.hasPolarDensity_unique {K : Type u_2} [Field K] [NumberField K] {S : Set (Prime' K)} {ρ₁ ρ₂ : ℚ} (h₁ : HasPolarDensity K S ρ₁) (h₂ : HasPolarDensity K S ρ₂) :
                                                                                          ρ₁ = ρ₂
                                                                                          theorem RayClassField.hasDirichletDensity_unique {K : Type u_2} [Field K] [NumberField K] {S : Set (Prime' K)} {ρ₁ ρ₂ : ℚ} (h₁ : HasDirichletDensity K S ρ₁) (h₂ : HasDirichletDensity K S ρ₂) :
                                                                                          ρ₁ = ρ₂
                                                                                          theorem RayClassField.hasNaturalDensity_unique {K : Type u_2} [Field K] [NumberField K] {S : Set (Prime' K)} {ρ₁ ρ₂ : ℚ} (h₁ : HasNaturalDensity K S ρ₁) (h₂ : HasNaturalDensity K S ρ₂) :
                                                                                          ρ₁ = ρ₂
                                                                                          theorem RayClassField.ideal_count_rpow_summable' (K : Type u_2) [Field K] [NumberField K] (σ : ℝ) (hσ : 1 < σ) :
                                                                                          Summable fun (n : ℕ) => ↑(Nat.card { I : Ideal (NumberField.RingOfIntegers K) // Ideal.absNorm I = n }) * ↑n ^ (-σ)
                                                                                          theorem RayClassField.summable_primeIdeal_absNorm_rpow' (K : Type u_2) [Field K] [NumberField K] (σ : ℝ) (hσ : 1 < σ) :
                                                                                          Summable fun (𝔭 : Prime' K) => ↑(Ideal.absNorm 𝔭.asIdeal) ^ (-σ)
                                                                                          theorem RayClassField.partialDedekindZeta_multipliable {K : Type u_2} [Field K] [NumberField K] (S : Set (Prime' K)) (s : ℂ) (hs : 1 < s.re) :
                                                                                          Multipliable fun (𝔭 : ↑S) => (1 - ↑(Ideal.absNorm (↑𝔭).asIdeal) ^ (-s))⁻¹
                                                                                          theorem RayClassField.partialDedekindZeta_log_norm_eq_tsum {K : Type u_2} [Field K] [NumberField K] (S : Set (Prime' K)) {s : ℝ} (hs : 1 < s) :
                                                                                          Real.log ‖partialDedekindZeta K S ↑s‖ = ∑' (𝔭 : ↑S), -Real.log (1 - ↑(Ideal.absNorm (↑𝔭).asIdeal) ^ (-s)) ∧ (Summable fun (𝔭 : ↑S) => -Real.log (1 - ↑(Ideal.absNorm (↑𝔭).asIdeal) ^ (-s))) ∧ Summable fun (𝔭 : ↑S) => ↑(Ideal.absNorm (↑𝔭).asIdeal) ^ (-s)
                                                                                          theorem RayClassField.ideal_count_rpow_summable_rl (K : Type u_2) [Field K] [NumberField K] (σ : ℝ) (hσ : 1 < σ) :
                                                                                          Summable fun (n : ℕ) => ↑(Nat.card { I : Ideal (NumberField.RingOfIntegers K) // Ideal.absNorm I = n }) * ↑n ^ (-σ)
                                                                                          theorem RayClassField.summable_primeIdeal_absNorm_rpow_rl (K : Type u_2) [Field K] [NumberField K] (σ : ℝ) (hσ : 1 < σ) :
                                                                                          Summable fun (𝔭 : Prime' K) => ↑(Ideal.absNorm 𝔭.asIdeal) ^ (-σ)
                                                                                          theorem RayClassField.partialDedekindZeta_eulerProductLog_remainder_limit {K : Type u_2} [Field K] [NumberField K] (S : Set (Prime' K)) :
                                                                                          ∃ (C : ℝ), Filter.Tendsto (fun (s : ℝ) => ∑' (𝔭 : ↑S), (-Real.log (1 - ↑(Ideal.absNorm (↑𝔭).asIdeal) ^ (-s)) - ↑(Ideal.absNorm (↑𝔭).asIdeal) ^ (-s))) (nhdsWithin 1 (Set.Ioi 1)) (nhds C)
                                                                                          theorem RayClassField.partialDedekindZeta_eulerProductLog {K : Type u_2} [Field K] [NumberField K] (S : Set (Prime' K)) :
                                                                                          ∃ (C : ℝ), Filter.Tendsto (fun (s : ℝ) => Real.log ‖partialDedekindZeta K S ↑s‖ - ∑' (𝔭 : ↑S), ↑(Ideal.absNorm (↑𝔭).asIdeal) ^ (-s)) (nhdsWithin 1 (Set.Ioi 1)) (nhds C)
                                                                                          theorem RayClassField.eulerProduct_log_asymptotic {K : Type u_2} [Field K] [NumberField K] {S : Set (Prime' K)} {n : ℕ+} {m : ℤ} (hm : HasMeromorphicContinuationWithPoleOrder (partialDedekindZeta K S ^ ↑n) m) :
                                                                                          ∃ (C : ℝ), Filter.Tendsto (fun (s : ℝ) => ↑↑n * ∑' (𝔭 : ↑S), ↑(Ideal.absNorm (↑𝔭).asIdeal) ^ (-s) - ↑m * Real.log (1 / (s - 1))) (nhdsWithin 1 (Set.Ioi 1)) (nhds C)
                                                                                          theorem RayClassField.poleOrder_implies_dirichletDensity_limit {K : Type u_2} [Field K] [NumberField K] {S : Set (Prime' K)} {n : ℕ+} {m : ℤ} (hm : HasMeromorphicContinuationWithPoleOrder (partialDedekindZeta K S ^ ↑n) m) :
                                                                                          Filter.Tendsto (fun (s : ℝ) => (∑' (𝔭 : ↑S), ↑(Ideal.absNorm (↑𝔭).asIdeal) ^ (-s)) / Real.log (1 / (s - 1))) (nhdsWithin 1 (Set.Ioi 1)) (nhds (↑m / ↑↑n))
                                                                                          theorem RayClassField.hasPolarDensity_nonneg {K : Type u_2} [Field K] [NumberField K] {S : Set (Prime' K)} {ρ : ℚ} (h : HasPolarDensity K S ρ) :
                                                                                          0 ≤ ρ
                                                                                          theorem RayClassField.hasPolarDensity_le_one {K : Type u_2} [Field K] [NumberField K] {S : Set (Prime' K)} {ρ : ℚ} (h : HasPolarDensity K S ρ) :
                                                                                          ρ ≤ 1
                                                                                          noncomputable def RayClassField.PolarDensity (K : Type u_2) [Field K] [NumberField K] (S : Set (Prime' K)) :
                                                                                          Instances For
                                                                                            noncomputable def RayClassField.DirichletDensity (K : Type u_2) [Field K] [NumberField K] (S : Set (Prime' K)) :
                                                                                            Instances For
                                                                                              noncomputable def RayClassField.NaturalDensity (K : Type u_2) [Field K] [NumberField K] (S : Set (Prime' K)) :
                                                                                              Instances For
                                                                                                theorem RayClassField.proposition_21_12_polar_eq_dirichlet {K : Type u_1} [Field K] [NumberField K] (S : Set (Prime' K)) (ρ : ℚ) (hρ : PolarDensity K S = some ρ) :
                                                                                                DirichletDensity K S = some ρ ∧ 0 ≤ ρ ∧ ρ ≤ 1
                                                                                                theorem RayClassField.ps9_natural_eq_dirichlet {K : Type u_1} [Field K] [NumberField K] (S : Set (Prime' K)) (ρ_nat ρ_dir : ℚ) (hnat : NaturalDensity K S = some ρ_nat) (hdir : DirichletDensity K S = some ρ_dir) :
                                                                                                ρ_nat = ρ_dir
                                                                                                theorem RayClassField.corollary_21_13_polar_eq_natural {K : Type u_1} [Field K] [NumberField K] (S : Set (Prime' K)) (ρ_polar ρ_natural : ℚ) (hpolar : PolarDensity K S = some ρ_polar) (hnatural : NaturalDensity K S = some ρ_natural) :
                                                                                                ρ_polar = ρ_natural
                                                                                                def RayClassField.IsDegreeOne {K : Type u_1} [Field K] [NumberField K] (𝔭 : Prime' K) :
                                                                                                Instances For
                                                                                                  theorem RayClassField.partialDedekindZeta_dirichletSeries_summable {K : Type u_2} [Field K] [NumberField K] (S : Set (Prime' K)) (s : ℝ) (hs : 1 < s) :
                                                                                                  Summable fun (𝔭 : ↑S) => ↑(Ideal.absNorm (↑𝔭).asIdeal) ^ (-s)
                                                                                                  theorem RayClassField.proposition_21_14b_mono {K : Type u_1} [Field K] [NumberField K] (S T : Set (Prime' K)) (hST : S ⊆ T) (ρS ρT : ℚ) (hS : PolarDensity K S = some ρS) (hT : PolarDensity K T = some ρT) :
                                                                                                  ρS ≤ ρT
                                                                                                  theorem RayClassField.partialDedekindZeta_eulerProduct_factorization {K : Type u_2} [Field K] [NumberField K] (S T : Set (Prime' K)) (n₁ n₂ : ℕ) (hST : Disjoint S T) :
                                                                                                  partialDedekindZeta K (S ∪ T) ^ (n₁ * n₂) =ᶠ[nhdsWithin 1 {1}ᶜ] (partialDedekindZeta K S ^ n₁) ^ n₂ * (partialDedekindZeta K T ^ n₂) ^ n₁
                                                                                                  theorem RayClassField.partialDedekindZeta_meromorphicOrderAt_factorization {K : Type u_2} [Field K] [NumberField K] (S T : Set (Prime' K)) (n₁ n₂ : ℕ) (hST : (S ∩ T).Finite) :
                                                                                                  meromorphicOrderAt (partialDedekindZeta K (S ∪ T) ^ (n₁ * n₂)) 1 = meromorphicOrderAt ((partialDedekindZeta K S ^ n₁) ^ n₂ * (partialDedekindZeta K T ^ n₂) ^ n₁) 1
                                                                                                  theorem RayClassField.partialDedekindZeta_poleOrder_union {K : Type u_2} [Field K] [NumberField K] {S T : Set (Prime' K)} {n₁ n₂ : ℕ+} {m₁ m₂ : ℤ} (hST : (S ∩ T).Finite) (hS : HasMeromorphicContinuationWithPoleOrder (partialDedekindZeta K S ^ ↑n₁) m₁) (hT : HasMeromorphicContinuationWithPoleOrder (partialDedekindZeta K T ^ ↑n₂) m₂) :
                                                                                                  HasMeromorphicContinuationWithPoleOrder (partialDedekindZeta K (S ∪ T) ^ ↑(n₁ * n₂)) (m₁ * ↑↑n₂ + m₂ * ↑↑n₁)
                                                                                                  theorem RayClassField.proposition_21_14c_additive {K : Type u_1} [Field K] [NumberField K] (S T : Set (Prime' K)) (hST : (S ∩ T).Finite) (ρS ρT : ℚ) (hS : PolarDensity K S = some ρS) (hT : PolarDensity K T = some ρT) :
                                                                                                  PolarDensity K (S ∪ T) = some (ρS + ρT)
                                                                                                  theorem RayClassField.proposition_21_14c_additive_case2 {K : Type u_1} [Field K] [NumberField K] (S T : Set (Prime' K)) (hST : (S ∩ T).Finite) (ρS ρ_union : ℚ) (hS : PolarDensity K S = some ρS) (hU : PolarDensity K (S ∪ T) = some ρ_union) :
                                                                                                  PolarDensity K T = some (ρ_union - ρS)
                                                                                                  theorem RayClassField.proposition_21_14c_additive_case3 {K : Type u_1} [Field K] [NumberField K] (S T : Set (Prime' K)) (hST : (S ∩ T).Finite) (ρT ρ_union : ℚ) (hT : PolarDensity K T = some ρT) (hU : PolarDensity K (S ∪ T) = some ρ_union) :
                                                                                                  PolarDensity K S = some (ρ_union - ρT)
                                                                                                  theorem RayClassField.polar_density_additive_disjoint {K : Type u_1} [Field K] [NumberField K] (S T : Set (Prime' K)) (hST : (S ∩ T).Finite) (ρS ρT ρU : ℚ) (hρU : ρU = ρS + ρT) :
                                                                                                  (PolarDensity K S = some ρS → PolarDensity K T = some ρT → PolarDensity K (S ∪ T) = some ρU) ∧ (PolarDensity K S = some ρS → PolarDensity K (S ∪ T) = some ρU → PolarDensity K T = some ρT) ∧ (PolarDensity K T = some ρT → PolarDensity K (S ∪ T) = some ρU → PolarDensity K S = some ρS)
                                                                                                  theorem RayClassField.summable_norm_eulerFactor_sub_one_of_non_degreeOne {K : Type u_1} [Field K] [NumberField K] (T : Set (Prime' K)) (hT : T ⊆ {𝔭 : Prime' K | ¬IsDegreeOne 𝔭}) :
                                                                                                  Summable fun (𝔭 : ↑T) => ‖(1 - ↑(Ideal.absNorm (↑𝔭).asIdeal) ^ (-1))⁻¹ - 1‖
                                                                                                  theorem RayClassField.proposition_21_14d_intersect {K : Type u_1} [Field K] [NumberField K] (S : Set (Prime' K)) (ρ : ℚ) (hS : PolarDensity K S = some ρ) :
                                                                                                  PolarDensity K (S ∩ {𝔭 : Prime' K | IsDegreeOne 𝔭}) = some ρ
                                                                                                  theorem RayClassField.proposition_21_14d_from_intersect {K : Type u_1} [Field K] [NumberField K] (S : Set (Prime' K)) (ρ : ℚ) (hS : PolarDensity K (S ∩ {𝔭 : Prime' K | IsDegreeOne 𝔭}) = some ρ) :
                                                                                                  theorem RayClassField.polar_density_nonneg {K : Type u_1} [Field K] [NumberField K] (S : Set (Prime' K)) (ρ : ℚ) (hS : PolarDensity K S = some ρ) :
                                                                                                  0 ≤ ρ
                                                                                                  def RayClassField.SplitsCompletely (K L : Type u) [Field K] [Field L] [NumberField K] [NumberField L] [Algebra K L] [IsGalois K L] (𝔭 : Prime' K) :
                                                                                                  Instances For
                                                                                                    def RayClassField.Spl (K L : Type u) [Field K] [Field L] [NumberField K] [NumberField L] [Algebra K L] [IsGalois K L] :
                                                                                                    Instances For
                                                                                                      Instances For
                                                                                                        def RayClassField.SplGen (K L : Type u) [Field K] [Field L] [NumberField K] [NumberField L] [Algebra K L] :
                                                                                                        Instances For
                                                                                                          theorem RayClassField.spl_degreeOne_crossField_eq (K L : Type u) [Field K] [Field L] [NumberField K] [NumberField L] [Algebra K L] [IsGalois K L] (n : ℕ) (hn : Module.finrank K L = n) (hn_pos : 0 < n) :
                                                                                                          theorem RayClassField.spl_degree_one_density (K L : Type u) [Field K] [Field L] [NumberField K] [NumberField L] [Algebra K L] [IsGalois K L] (n : ℕ) (hn : Module.finrank K L = n) (hn_pos : 0 < n) :
                                                                                                          PolarDensity K (Spl K L ∩ {𝔭 : Prime' K | IsDegreeOne 𝔭}) = some (1 / ↑n)
                                                                                                          theorem RayClassField.theorem_21_15 (K L : Type u) [Field K] [Field L] [NumberField K] [NumberField L] [Algebra K L] [IsGalois K L] (n : ℕ) (hn : Module.finrank K L = n) (hn_pos : 0 < n) :
                                                                                                          PolarDensity K (Spl K L) = some (1 / ↑n)
                                                                                                          theorem RayClassField.splitsCompletelyGen_of_galois_closure (K L M : Type u) [Field K] [Field L] [Field M] [NumberField K] [NumberField L] [NumberField M] [Algebra K L] [Algebra K M] [Algebra L M] [IsScalarTower K L M] [IsGalois K M] [FiniteDimensional K L] (h_closure : ⨆ (σ : L →ₐ[K] M), σ.fieldRange = ⊤) (𝔭 : Prime' K) (h : SplitsCompletelyGen K L 𝔭) :
                                                                                                          theorem RayClassField.splitsCompletelyGen_of_tower (K L M : Type u) [Field K] [Field L] [Field M] [NumberField K] [NumberField L] [NumberField M] [Algebra K L] [Algebra K M] [Algebra L M] [IsScalarTower K L M] [IsGalois K M] (𝔭 : Prime' K) (h : SplitsCompletely K M 𝔭) :
                                                                                                          theorem RayClassField.splGen_eq_spl_of_galois_closure (K L M : Type u) [Field K] [Field L] [Field M] [NumberField K] [NumberField L] [NumberField M] [Algebra K L] [Algebra K M] [Algebra L M] [IsScalarTower K L M] [IsGalois K M] [FiniteDimensional K L] (h_closure : ⨆ (σ : L →ₐ[K] M), σ.fieldRange = ⊤) :
                                                                                                          SplGen K L = Spl K M
                                                                                                          theorem RayClassField.corollary_21_16 (K L M : Type u) [Field K] [Field L] [Field M] [NumberField K] [NumberField L] [NumberField M] [Algebra K L] [Algebra K M] [Algebra L M] [IsScalarTower K L M] [IsGalois K M] [FiniteDimensional K L] (h_closure : ⨆ (σ : L →ₐ[K] M), σ.fieldRange = ⊤) (n : ℕ) (hn : Module.finrank K M = n) (hn_pos : 0 < n) :
                                                                                                          SplGen K L = Spl K M ∧ PolarDensity K (SplGen K L) = some (1 / ↑n) ∧ PolarDensity K (Spl K M) = some (1 / ↑n)
                                                                                                          theorem RayClassField.corollary_21_17 (K L F : Type u) [Field K] [Field L] [Field F] [NumberField K] [NumberField L] [NumberField F] [Algebra K L] [Algebra K F] [Algebra F L] [IsGalois K L] [IsGalois K F] [IsScalarTower K F L] [FiniteDimensional K L] (H : Subgroup Gal(L/K)) [H.Normal] (hF : (AlgEquiv.restrictNormalHom F).ker = H) :
                                                                                                          PolarDensity K (Spl K F) = some (↑(Nat.card ↥H) / ↑(Nat.card Gal(L/K)))
                                                                                                          def RayClassField.FinSymmDiff {K : Type u_1} [Field K] [NumberField K] (S T : Set (Prime' K)) :
                                                                                                          Instances For
                                                                                                            def RayClassField.PrimeSetLe {K : Type u_1} [Field K] [NumberField K] (S T : Set (Prime' K)) :
                                                                                                            Instances For
                                                                                                              theorem RayClassField.splitsCompletely_of_algHom (K L M : Type u) [Field K] [Field L] [Field M] [NumberField K] [NumberField L] [NumberField M] [Algebra K L] [Algebra K M] [IsGalois K L] [IsGalois K M] (𝔭 : Prime' K) (f : L →ₐ[K] M) (h : SplitsCompletely K M 𝔭) :
                                                                                                              theorem RayClassField.polarDensity_eq_of_finSymmDiff {K : Type u_1} [Field K] [NumberField K] (S T : Set (Prime' K)) (h : FinSymmDiff S T) (ρ : ℚ) (hS : PolarDensity K S = some ρ) :
                                                                                                              theorem RayClassField.adjoin_range_eq_fieldRange {K' : Type u_2} {L' : Type u_3} {E' : Type u_4} [Field K'] [Field L'] [Field E'] [Algebra K' L'] [Algebra K' E'] (f : L' →ₐ[K'] E') :
                                                                                                              theorem RayClassField.comp_equiv_fieldRange {K' : Type u_2} {L' : Type u_3} {E' : Type u_4} {F' : Type u_5} [Field K'] [Field L'] [Field E'] [Field F'] [Algebra K' L'] [Algebra K' E'] [Algebra K' F'] (f : E' →ₐ[K'] F') (g : L' ≃ₐ[K'] E') :
                                                                                                              theorem RayClassField.isUnramifiedAt_comap_of_galois (K' L' M' : Type u) [Field K'] [Field L'] [Field M'] [NumberField K'] [NumberField L'] [NumberField M'] [Algebra K' L'] [Algebra K' M'] [Algebra L' M'] [IsGalois K' L'] [IsGalois K' M'] [IsScalarTower K' L' M'] (𝔭 : Prime' K') (h_sc : SplitsCompletely K' L' 𝔭 := by assumption) :
                                                                                                              theorem RayClassField.compositum_spl_inter_and_degree (K L M : Type u) [Field K] [Field L] [Field M] [NumberField K] [NumberField L] [NumberField M] [Algebra K L] [Algebra K M] [IsGalois K L] [IsGalois K M] :
                                                                                                              ∃ (N : Type u) (x : Field N) (x_1 : NumberField N) (x_2 : Algebra K N) (x_3 : IsGalois K N) (x_4 : Algebra M N) (_ : IsScalarTower K M N), Spl K N = Spl K L ∩ Spl K M ∧ (Module.finrank K N = Module.finrank K M → Nonempty (L →ₐ[K] M))
                                                                                                              theorem RayClassField.primeSetLe_spl_implies_algHom (K L M : Type u) [Field K] [Field L] [Field M] [NumberField K] [NumberField L] [NumberField M] [Algebra K L] [Algebra K M] [IsGalois K L] [IsGalois K M] (h : PrimeSetLe (Spl K M) (Spl K L)) :
                                                                                                              theorem RayClassField.theorem_21_18_forward (K L M : Type u) [Field K] [Field L] [Field M] [NumberField K] [NumberField L] [NumberField M] [Algebra K L] [Algebra K M] [IsGalois K L] [IsGalois K M] (f : L →ₐ[K] M) :
                                                                                                              Spl K M ⊆ Spl K L
                                                                                                              theorem RayClassField.theorem_21_18_spl_determines (K L M : Type u) [Field K] [Field L] [Field M] [NumberField K] [NumberField L] [NumberField M] [Algebra K L] [Algebra K M] [IsGalois K L] [IsGalois K M] (h : FinSymmDiff (Spl K L) (Spl K M)) :
                                                                                                              theorem RayClassField.theorem_21_18_algEquiv_spl_eq (K L M : Type u) [Field K] [Field L] [Field M] [NumberField K] [NumberField L] [NumberField M] [Algebra K L] [Algebra K M] [IsGalois K L] [IsGalois K M] (e : L ≃ₐ[K] M) :
                                                                                                              Spl K M = Spl K L
                                                                                                              theorem RayClassField.primeSetLe_spl_implies_subset (K L M : Type u) [Field K] [Field L] [Field M] [NumberField K] [NumberField L] [NumberField M] [Algebra K L] [Algebra K M] [IsGalois K L] [IsGalois K M] (h : PrimeSetLe (Spl K M) (Spl K L)) :
                                                                                                              Spl K M ⊆ Spl K L
                                                                                                              theorem RayClassField.finSymmDiff_spl_implies_eq (K L M : Type u) [Field K] [Field L] [Field M] [NumberField K] [NumberField L] [NumberField M] [Algebra K L] [Algebra K M] [IsGalois K L] [IsGalois K M] (h : FinSymmDiff (Spl K L) (Spl K M)) :
                                                                                                              Spl K L = Spl K M
                                                                                                              theorem RayClassField.theorem_21_18_iff_eq (K L M : Type u) [Field K] [Field L] [Field M] [NumberField K] [NumberField L] [NumberField M] [Algebra K L] [Algebra K M] [IsGalois K L] [IsGalois K M] :
                                                                                                              Nonempty (L ≃ₐ[K] M) ↔ Spl K M = Spl K L
                                                                                                              theorem RayClassField.theorem_21_18_injective (K L M : Type u) [Field K] [Field L] [Field M] [NumberField K] [NumberField L] [NumberField M] [Algebra K L] [Algebra K M] [IsGalois K L] [IsGalois K M] (h : Spl K L = Spl K M) :
                                                                                                              theorem RayClassField.splitting_primes_determine_abelian_extensions (K L M : Type u) [Field K] [Field L] [Field M] [NumberField K] [NumberField L] [NumberField M] [Algebra K L] [Algebra K M] [IsGalois K L] [IsGalois K M] :
                                                                                                              (Nonempty (L →ₐ[K] M) ↔ Spl K M ⊆ Spl K L) ∧ (Nonempty (L ≃ₐ[K] M) ↔ Spl K M = Spl K L) ∧ (Spl K L = Spl K M → Nonempty (L ≃ₐ[K] M))
                                                                                                              theorem RayClassField.split_iff_in_kernel (K L : Type u) [Field K] [Field L] [NumberField K] [NumberField L] [Algebra K L] [KroneckerWeber.IsAbelianExtension K L] (𝔪 : Modulus K) (𝔭 : Prime' K) (h_coprime : 𝔪.toFun (Place.finite 𝔭) = 0) :
                                                                                                              SplitsCompletely K L 𝔭 ↔ (ArtinMap K L 𝔪) (primeCoprime K 𝔪 𝔭 h_coprime) = 1
                                                                                                              theorem RayClassField.artin_image_fixed_field (K L : Type u) [Field K] [Field L] [NumberField K] [NumberField L] [Algebra K L] [KroneckerWeber.IsAbelianExtension K L] (𝔪 : Modulus K) (h_not_surj : ¬Function.Surjective ⇑(ArtinMap K L 𝔪)) :
                                                                                                              ∃ (F : Type u) (x : Field F) (x_1 : NumberField F) (x_2 : Algebra K F) (x_3 : IsGalois K F), 1 < Module.finrank K F ∧ (Set.univ \ Spl K F).Finite
                                                                                                              theorem RayClassField.theorem_21_19_surjective (K L : Type u) [Field K] [Field L] [NumberField K] [NumberField L] [Algebra K L] [KroneckerWeber.IsAbelianExtension K L] (habel : ∀ (σ τ : Gal(L/K)), σ * τ = τ * σ) (𝔪 : Modulus K) (hdiv : ∀ (𝔭 : IsDedekindDomain.HeightOneSpectrum (NumberField.RingOfIntegers K)), 𝔪.toFun (Place.finite 𝔭) = 0 → ∀ (𝔔 : Ideal (NumberField.RingOfIntegers L)) [inst : 𝔔.IsPrime], 𝔔.LiesOver 𝔭.asIdeal → Algebra.IsUnramifiedAt (NumberField.RingOfIntegers K) 𝔔) :
                                                                                                              Instances For
                                                                                                                Instances For
                                                                                                                  @[reducible, inline]
                                                                                                                  abbrev RayClassField.polar_density_additive {K : Type u_2} [Field K] [NumberField K] (S T : Set (Prime' K)) (hST : (S ∩ T).Finite) (ρS ρT : ℚ) (hS : PolarDensity K S = some ρS) (hT : PolarDensity K T = some ρT) :
                                                                                                                  PolarDensity K (S ∪ T) = some (ρS + ρT)
                                                                                                                  Instances For