Class number formula: continuation of with a simple pole at and its residue
OpenClassNumberFormula.class_number_formulaLet be a number field of degree , where is the number of real embeddings and the number of complex embeddings of . Let be the class number, the regulator, the number of roots of unity in and the discriminant of . The Dedekind zeta function is the Dirichlet series
Then:
- the series converges absolutely for ;
- extends to a meromorphic function on all of whose only pole is a simple pole at , with residue
This is the general analytic class number formula, linking the analytic behaviour of at to the basic arithmetic invariants of .
Formalization Note Part 2 is stated as: there is an entire function with equal to the right-hand side and for . Then is the meromorphic continuation; it is holomorphic away from , and since it has a simple pole at with residue . Mathlib's dedekindZeta is the series itself (a tsum), so it only carries meaning for , which is why the continuation is an existential. Mathlib's nrComplexPlaces K is and torsionOrder K is .
import Mathlib open NumberField NumberField.InfinitePlace NumberField.Units Filter Topology Real
namespace ClassNumberFormula
theorem class_number_formula (K : Type*) [Field K] [NumberField K] :
(∀ s : ℂ, 1 < s.re → Summable (fun n : ℕ => ‖LSeries.term
(fun n => (Nat.card {I : Ideal (𝓞 K) // Ideal.absNorm I = n} : ℂ)) s n‖)) ∧
∃ G : ℂ → ℂ, Differentiable ℂ G ∧
G 1 = (((2 : ℝ) ^ nrRealPlaces K * (2 * π) ^ nrComplexPlaces K * regulator K *
classNumber K / (torsionOrder K * Real.sqrt |(discr K : ℝ)|) : ℝ) : ℂ) ∧
∀ s : ℂ, 1 < s.re → dedekindZeta K s = G s / (s - 1) := by sorry
end ClassNumberFormulaConfirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.