Skip to content

Commit

Permalink
feat(NumberField/Discriminant): Compute some lattices covolume (#18246)
Browse files Browse the repository at this point in the history
This PR is part of the proof of the Analytic Class Number Formula.
  • Loading branch information
xroblot committed Oct 26, 2024
1 parent 2e87d1a commit 3e1e573
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ Copyright (c) 2023 Xavier Roblot. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Xavier Roblot
-/
import Mathlib.Algebra.Module.ZLattice.Covolume
import Mathlib.Data.Real.Pi.Bounds
import Mathlib.NumberTheory.NumberField.CanonicalEmbedding.ConvexBody
import Mathlib.Tactic.Rify
Expand Down Expand Up @@ -72,6 +73,24 @@ theorem _root_.NumberField.mixedEmbedding.volume_fundamentalDomain_latticeBasis
stdBasis_repr_eq_matrixToStdBasis_mul K _ (fun _ => rfl)]
rfl

theorem _root_.NumberField.mixedEmbedding.covolume_integerLattice :
ZLattice.covolume (mixedEmbedding.integerLattice K) =
(2 ⁻¹) ^ nrComplexPlaces K * √|discr K| := by
rw [ZLattice.covolume_eq_measure_fundamentalDomain _ _ (fundamentalDomain_integerLattice K),
volume_fundamentalDomain_latticeBasis, ENNReal.toReal_mul, ENNReal.toReal_pow,
ENNReal.toReal_inv, toReal_ofNat, ENNReal.coe_toReal, Real.coe_sqrt, coe_nnnorm,
Int.norm_eq_abs]

theorem _root_.NumberField.mixedEmbedding.covolume_idealLattice (I : (FractionalIdeal (𝓞 K)⁰ K)ˣ) :
ZLattice.covolume (mixedEmbedding.idealLattice K I) =
(FractionalIdeal.absNorm (I : FractionalIdeal (𝓞 K)⁰ K)) *
(2 ⁻¹) ^ nrComplexPlaces K * √|discr K| := by
rw [ZLattice.covolume_eq_measure_fundamentalDomain _ _ (fundamentalDomain_idealLattice K I),
volume_fundamentalDomain_fractionalIdealLatticeBasis, volume_fundamentalDomain_latticeBasis,
ENNReal.toReal_mul, ENNReal.toReal_mul, ENNReal.toReal_pow, ENNReal.toReal_inv, toReal_ofNat,
ENNReal.coe_toReal, Real.coe_sqrt, coe_nnnorm, Int.norm_eq_abs,
ENNReal.toReal_ofReal (Rat.cast_nonneg.mpr (FractionalIdeal.absNorm_nonneg I.val)), mul_assoc]

theorem exists_ne_zero_mem_ideal_of_norm_le_mul_sqrt_discr (I : (FractionalIdeal (𝓞 K)⁰ K)ˣ) :
∃ a ∈ (I : FractionalIdeal (𝓞 K)⁰ K), a ≠ 0
|Algebra.norm ℚ (a : K)| ≤ FractionalIdeal.absNorm I.1 * (4 / π) ^ nrComplexPlaces K *
Expand Down

0 comments on commit 3e1e573

Please sign in to comment.