2. Number fields
This chapter lists the LMFDB definitions relating to number fields, migrated from the LaTeX blueprint. Each definition links back to its LMFDB knowl.
Number field. (LMFDB)
A number field is a field extension of finite degree of the field \Q of rational numbers. In the LMFDB, number fields are identified by a label.
Depends on: Definition 2.12
Lean code for Definition2.1●1 definition
Associated Lean declarations
-
NumberField[complete]
-
NumberField[complete]
-
classdefined in Mathlib/NumberTheory/NumberField/Basic.leancomplete
class NumberField.{u_1} (K : Type u_1) [Field K] : Prop
class NumberField.{u_1} (K : Type u_1) [Field K] : Prop
A number field is a field which has characteristic zero and is finite dimensional over ℚ.
Methods
to_charZero : CharZero K
to_finiteDimensional : FiniteDimensional ℚ K
Abelian number field. (LMFDB)
A number field K is abelian if it is Galois over \Q and its Galois group \Gal(K/\Q) is abelian.
Depends on: Definition 2.1 Definition 2.21
Lean code for Definition2.2●1 definition
Associated Lean declarations
-
IsAbelianGalois[complete]
-
IsAbelianGalois[complete]
-
classdefined in Mathlib/FieldTheory/Galois/Abelian.leancomplete
class IsAbelianGalois.{u_4, u_5} (K : Type u_4) (L : Type u_5) [Field K] [Field L] [Algebra K L] : Prop
class IsAbelianGalois.{u_4, u_5} (K : Type u_4) (L : Type u_5) [Field K] [Field L] [Algebra K L] : Prop
The class of abelian extensions, defined as galois extensions whose galois group is commutative.
Extends
-
IsGalois K L -
IsMulCommutative Gal(L/K)
Methods
to_isSeparable : Algebra.IsSeparable K L
Inherited from-
IsGalois
to_normal : Normal K L
Inherited from-
IsGalois
is_comm : Std.Commutative fun x1 x2 => x1 * x2
Inherited from-
IsMulCommutative
-
Absolute discriminant of a number field. (LMFDB)
The absolute discriminant of a number field is the absolute value of its discriminant.
Depends on: Definition 2.1 Definition 2.15
Lean code for Definition2.3●1 definition
Associated Lean declarations
-
NumberField.discr[complete]
-
NumberField.discr[complete]
-
abbrevdefined in Mathlib/NumberTheory/NumberField/Discriminant/Defs.leancomplete
abbrev NumberField.discr.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℤ
abbrev NumberField.discr.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℤ
The absolute discriminant of a number field.
Absolute value of a field. (LMFDB)
An absolute value of a field k is a function |\ |:k\to \R_{\ge 0} that satisfies:
-
|x|=0if and only ifx=0; -
|xy| = |x||y|; -
|x+y| \le |x|+|y|.
Absolute values that satisfy the stronger condition |x+y|\le \max(|x|,|y|) are nonarchimedean, while those that do not are archimedean; the latter arise only in fields of characteristic zero. The trivial absolute value assigns 1 to every nonzero element of k; it is a nonarchimedean absolute value.
Absolute values |\ |_1 and |\ |_2 are equivalent if there exists a positive real number c such that |x|_1 = |x|_2^c for all x\in k; this defines an equivalence relation on the set of absolute values of k.
Lean code for Definition2.4●1 definition
Associated Lean declarations
-
Archimedean[complete]
-
Archimedean[complete]
-
classdefined in Mathlib/Algebra/Order/Archimedean/Defs.leancomplete
class Archimedean.{u_2} (R : Type u_2) [AddCommMonoid R] [PartialOrder R] : Prop
class Archimedean.{u_2} (R : Type u_2) [AddCommMonoid R] [PartialOrder R] : Prop
An ordered additive commutative monoid is called `Archimedean` if for any two elements `x`, `y` such that `0 < y`, there exists a natural number `n` such that `x ≤ n • y`.
Methods
arch : ∀ (x : R) {y : R}, 0 < y → ∃ n, x ≤ n • y
For any two elements `x`, `y` such that `0 < y`, there exists a natural number `n` such that `x ≤ n • y`.
Arithmetically equivalent fields. (LMFDB)
Two number fields are arithmetically equivalent if they have the same Dedekind \zeta-functions. Arithmetically equivalent fields share many invariants, such as their degrees, signatures, discriminants, and Galois groups. For a given field, the existence of an arithmetically equivalent sibling depends only on the Galois group.
Depends on: Definition 2.1 Definition 2.12 Definition 2.15 Definition 2.21 Definition 2.61 Definition 2.62
Lean code for Definition2.5●1 definition
Associated Lean declarations
-
NumberField.dedekindZeta[complete]
-
NumberField.dedekindZeta[complete]
-
defdefined in Mathlib/NumberTheory/NumberField/DedekindZeta.leancomplete
def NumberField.dedekindZeta.{u_1} (K : Type u_1) [Field K] [NumberField K] (s : ℂ) : ℂ
def NumberField.dedekindZeta.{u_1} (K : Type u_1) [Field K] [NumberField K] (s : ℂ) : ℂ
The Dedekind zeta function of a number field. It is defined as the `L`-series with coefficients the number of integral ideals of norm `n`.
Class number of a number field. (LMFDB)
The class number of a number field K is the order of the ideal class group of K.
Depends on: Definition 2.1 Definition 2.24
Lean code for Definition2.6●1 definition
Associated Lean declarations
-
NumberField.classNumber[complete]
-
NumberField.classNumber[complete]
-
defdefined in Mathlib/NumberTheory/NumberField/ClassNumber.leancomplete
def NumberField.classNumber.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℕ
def NumberField.classNumber.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℕ
The class number of a number field is the (finite) cardinality of the class group.
Analytic class number formula. (LMFDB)
If K is a number field with signature (r_1, r_2), discriminant D, regulator R, class number h, containing w roots of unity, and Dedekind \zeta-function \zeta_K, then \zeta_K has a meromorphic continuation to the whole complex plane with a single pole at s=1, which is of order 1. The analytic class number formula gives the residue at this pole:
\lim_{s\to 1}\ (s-1)\zeta_K(s) = \frac{2^{r_1}\cdot (2\pi)^{r_2}\cdot R\cdot h}{w\cdot\sqrt{|D|}} .
Depends on: Definition 2.1 Definition 2.6 Definition 2.15 Definition 2.54 Definition 2.62
-
NumberField.IsCMField[complete] -
NumberField.IsCMField.ofCMExtension[complete] -
NumberField.isTotallyReal_maximalRealSubfield[complete]
CM number field. (LMFDB)
A CM field is a totally complex quadratic extension of a totally real number field.
Depends on: Definition 2.1 Definition 2.65 Definition 2.67
Lean code for Definition2.8●3 declarations
Associated Lean declarations
-
NumberField.IsCMField[complete]
-
NumberField.IsCMField.ofCMExtension[complete]
-
NumberField.isTotallyReal_maximalRealSubfield[complete]
-
NumberField.IsCMField[complete] -
NumberField.IsCMField.ofCMExtension[complete] -
NumberField.isTotallyReal_maximalRealSubfield[complete]
-
classdefined in Mathlib/NumberTheory/NumberField/CMField.leancomplete
class NumberField.IsCMField.{u_1} (K : Type u_1) [Field K] [CharZero K] : Prop
class NumberField.IsCMField.{u_1} (K : Type u_1) [Field K] [CharZero K] : Prop
A field `K` is `CM` if `K` is a totally complex quadratic extension of its maximal real subfield `K⁺`.
Methods
to_isTotallyComplex : NumberField.IsTotallyComplex K
is_quadratic : Algebra.IsQuadraticExtension (↥(NumberField.maximalRealSubfield K)) K
-
theoremdefined in Mathlib/NumberTheory/NumberField/CMField.leancomplete
theorem NumberField.IsCMField.ofCMExtension.{u_1, u_2} (F : Type u_1) (K : Type u_2) [Field F] [NumberField.IsTotallyReal F] [Field K] [CharZero K] [Algebra.IsIntegral ℚ K] [NumberField.IsTotallyComplex K] [Algebra F K] [Algebra.IsQuadraticExtension F K] : NumberField.IsCMField K
theorem NumberField.IsCMField.ofCMExtension.{u_1, u_2} (F : Type u_1) (K : Type u_2) [Field F] [NumberField.IsTotallyReal F] [Field K] [CharZero K] [Algebra.IsIntegral ℚ K] [NumberField.IsTotallyComplex K] [Algebra F K] [Algebra.IsQuadraticExtension F K] : NumberField.IsCMField K
If `K/F` is a CM-extension then `K` is a CM-field.
-
theoremdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.leancomplete
theorem NumberField.isTotallyReal_maximalRealSubfield.{u_2} {K : Type u_2} [Field K] [CharZero K] [Algebra.IsAlgebraic ℚ K] : NumberField.IsTotallyReal ↥(NumberField.maximalRealSubfield K)
theorem NumberField.isTotallyReal_maximalRealSubfield.{u_2} {K : Type u_2} [Field K] [CharZero K] [Algebra.IsAlgebraic ℚ K] : NumberField.IsTotallyReal ↥(NumberField.maximalRealSubfield K)
-
NumberField.ComplexEmbedding.IsReal[complete] -
NumberField.ComplexEmbedding.conjugate[complete] -
NumberField.InfinitePlace.card_complex_embeddings[complete]
Complex embedding. (LMFDB)
A complex embedding of a number field K is a nonzero field homomorphism K\to \C whose image is not contained in \R.
A single number field may have several distinct complex embeddings.
For K=\Q(a) where a is an algebraic number with minimal polynomial f(X), the embeddings \iota:K\to\C are determined by the value z=\iota(a) which is one of the complex roots of f(X), and the embedding is complex when z\notin\R. The complex embeddings come in conjugate pairs.
Depends on: Definition 2.1 Definition 2.35
Lean code for Definition2.9●3 declarations
Associated Lean declarations
-
NumberField.ComplexEmbedding.IsReal[complete]
-
NumberField.ComplexEmbedding.conjugate[complete]
-
NumberField.InfinitePlace.card_complex_embeddings[complete]
-
NumberField.ComplexEmbedding.IsReal[complete] -
NumberField.ComplexEmbedding.conjugate[complete] -
NumberField.InfinitePlace.card_complex_embeddings[complete]
-
abbrevdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.leancomplete
abbrev NumberField.ComplexEmbedding.IsReal.{u_1} {K : Type u_1} [Field K] (φ : K →+* ℂ) : Prop
abbrev NumberField.ComplexEmbedding.IsReal.{u_1} {K : Type u_1} [Field K] (φ : K →+* ℂ) : Prop
An embedding into `ℂ` is real if it is fixed by complex conjugation.
-
abbrevdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.leancomplete
abbrev NumberField.ComplexEmbedding.conjugate.{u_1} {K : Type u_1} [Field K] (φ : K →+* ℂ) : K →+* ℂ
abbrev NumberField.ComplexEmbedding.conjugate.{u_1} {K : Type u_1} [Field K] (φ : K →+* ℂ) : K →+* ℂ
The conjugate of a complex embedding as a complex embedding.
-
theoremdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.leancomplete
theorem NumberField.InfinitePlace.card_complex_embeddings.{u_1} (K : Type u_1) [Field K] [NumberField K] : Fintype.card { φ // ¬NumberField.ComplexEmbedding.IsReal φ } = 2 * NumberField.InfinitePlace.nrComplexPlaces K
theorem NumberField.InfinitePlace.card_complex_embeddings.{u_1} (K : Type u_1) [Field K] [NumberField K] : Fintype.card { φ // ¬NumberField.ComplexEmbedding.IsReal φ } = 2 * NumberField.InfinitePlace.nrComplexPlaces K
Conductor of an abelian number field. (LMFDB)
If a number field K is abelian, then K\subseteq \Q(\zeta_n) for some positive integer n. The minimum such n is the conductor of K.
Depends on: Definition 2.1 Definition 2.2
Lean code for Definition2.10●5 declarations
Associated Lean declarations
-
defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/AbelianConductor.leancomplete
def NumberField.abelianConductor.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℕ
def NumberField.abelianConductor.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℕ
The **conductor** of an abelian number field `K` (LMFDB `nf.conductor`): the least positive integer `n` such that `K` embeds in the cyclotomic field `ℚ(ζ_n)`. By the Kronecker–Weber theorem, which is not available, such an `n` exists exactly when `K` is abelian; when there is none the conductor takes the junk value `0`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/AbelianConductor.leancomplete
theorem NumberField.nonempty_algHom_cyclotomicField_iff.{u_1} (K : Type u_1) [Field K] [NumberField K] {n : ℕ} (hn : 0 < n) : Nonempty (K →ₐ[ℚ] CyclotomicField n ℚ) ↔ NumberField.abelianConductor K ∣ n
theorem NumberField.nonempty_algHom_cyclotomicField_iff.{u_1} (K : Type u_1) [Field K] [NumberField K] {n : ℕ} (hn : 0 < n) : Nonempty (K →ₐ[ℚ] CyclotomicField n ℚ) ↔ NumberField.abelianConductor K ∣ n
**The conductor divides every admissible level.** A number field `K` embeds in the cyclotomic field `ℚ(ζ_n)` exactly when its conductor divides `n`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/AbelianConductor.leancomplete
theorem NumberField.nonempty_algHom_cyclotomicField_abelianConductor.{u_1} (K : Type u_1) [Field K] [NumberField K] (h : 0 < NumberField.abelianConductor K) : Nonempty (K →ₐ[ℚ] CyclotomicField (NumberField.abelianConductor K) ℚ)
theorem NumberField.nonempty_algHom_cyclotomicField_abelianConductor.{u_1} (K : Type u_1) [Field K] [NumberField K] (h : 0 < NumberField.abelianConductor K) : Nonempty (K →ₐ[ℚ] CyclotomicField (NumberField.abelianConductor K) ℚ)
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/AbelianConductor.leancomplete
theorem NumberField.abelianConductor_pos_iff.{u_1} (K : Type u_1) [Field K] [NumberField K] : 0 < NumberField.abelianConductor K ↔ ∃ n, 0 < n ∧ Nonempty (K →ₐ[ℚ] CyclotomicField n ℚ)
theorem NumberField.abelianConductor_pos_iff.{u_1} (K : Type u_1) [Field K] [NumberField K] : 0 < NumberField.abelianConductor K ↔ ∃ n, 0 < n ∧ Nonempty (K →ₐ[ℚ] CyclotomicField n ℚ)
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/AbelianConductor.leancomplete
theorem NumberField.isAbelianGalois_of_abelianConductor_pos.{u_1} (K : Type u_1) [Field K] [NumberField K] (h : 0 < NumberField.abelianConductor K) : IsAbelianGalois ℚ K
theorem NumberField.isAbelianGalois_of_abelianConductor_pos.{u_1} (K : Type u_1) [Field K] [NumberField K] (h : 0 < NumberField.abelianConductor K) : IsAbelianGalois ℚ K
A number field that embeds in a cyclotomic field is abelian.
-
IsAdjoinRoot[complete] -
AdjoinRoot[complete] -
IntermediateField.adjoinRootEquivAdjoin[complete]
Defining Polynomial of a Number Field. (LMFDB)
A defining polynomial of a number field K is an irreducible polynomial f\in\Q[x] such that K\cong \mathbb{Q}(a), where a is a root of f(x). Equivalently, it is a polynomial f\in \Q[x] such that K \cong \Q[x]/(f).
A root a \in K of the defining polynomial is a generator of K.
Depends on: Definition 2.1
Lean code for Definition2.11●3 definitions
Associated Lean declarations
-
IsAdjoinRoot[complete]
-
AdjoinRoot[complete]
-
IntermediateField.adjoinRootEquivAdjoin[complete]
-
IsAdjoinRoot[complete] -
AdjoinRoot[complete] -
IntermediateField.adjoinRootEquivAdjoin[complete]
-
structuredefined in Mathlib/RingTheory/IsAdjoinRoot.leancomplete
structure IsAdjoinRoot.{u, v} {R : Type u} (S : Type v) [CommSemiring R] [Semiring S] [Algebra R S] (f : Polynomial R) : Type (max u v)
structure IsAdjoinRoot.{u, v} {R : Type u} (S : Type v) [CommSemiring R] [Semiring S] [Algebra R S] (f : Polynomial R) : Type (max u v)
`IsAdjoinRoot S f` states that the ring `S` can be constructed by adjoining a specified root of the polynomial `f : R[X]` to `R`. Compare `PowerBasis R S`, which does not explicitly specify which polynomial we adjoin a root of (in particular `f` does not need to be the minimal polynomial of the root we adjoin), and `AdjoinRoot` which constructs a new type. This is not a typeclass because the choice of root given `S` and `f` is not unique.
Fields
map : Polynomial R →ₐ[R] S
map_surjective : Function.Surjective ⇑self.map
ker_map : RingHom.ker self.map = Ideal.span {f}
-
defdefined in Mathlib/RingTheory/AdjoinRoot.leancomplete
def AdjoinRoot.{u_1} {R : Type u_1} [CommRing R] (f : Polynomial R) : Type u_1
def AdjoinRoot.{u_1} {R : Type u_1} [CommRing R] (f : Polynomial R) : Type u_1
Adjoin a root of a polynomial `f` to a commutative ring `R`. We define the new ring as the quotient of `R[X]` by the principal ideal generated by `f`.
-
defdefined in Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.leancomplete
def IntermediateField.adjoinRootEquivAdjoin.{u_1, u_2} (F : Type u_1) [Field F] {E : Type u_2} [Field E] [Algebra F E] {α : E} (h : IsIntegral F α) : AdjoinRoot (minpoly F α) ≃ₐ[F] ↥F⟮α⟯
def IntermediateField.adjoinRootEquivAdjoin.{u_1, u_2} (F : Type u_1) [Field F] {E : Type u_2} [Field E] [Algebra F E] {α : E} (h : IsIntegral F α) : AdjoinRoot (minpoly F α) ≃ₐ[F] ↥F⟮α⟯
algebra isomorphism between `AdjoinRoot` and `F⟮α⟯`
Degree of a number field. (LMFDB)
The degree of a number field K is its degree as an extension of the rational field \mathbb{Q}, i.e., the dimension of K as a \mathbb{Q}-vector space. The degree of K/\Q is written [K:\mathbb{Q}].
Depends on: Definition 2.13
Lean code for Definition2.12●1 definition
Associated Lean declarations
-
Module.finrank[complete]
-
Module.finrank[complete]
-
defdefined in Mathlib/LinearAlgebra/Dimension/Finrank.leancomplete
def Module.finrank.{u_1, u_2} (R : Type u_1) (M : Type u_2) [Semiring R] [AddCommMonoid M] [Module R M] : ℕ
def Module.finrank.{u_1, u_2} (R : Type u_1) (M : Type u_2) [Semiring R] [AddCommMonoid M] [Module R M] : ℕ
The rank of a module as a natural number. For a finite-dimensional vector space `V` over a field `k`, `Module.finrank k V` is equal to the dimension of `V` over `k`. For a general module `M` over a ring `R`, `Module.finrank R M` is defined to be the supremum of the cardinalities of the `R`-linearly independent subsets of `M`, if this supremum is finite. It is defined by convention to be `0` if this supremum is infinite. See `Module.rank` for a cardinal-valued version where infinite rank modules have rank an infinite cardinal. Note that if `R` is not a field then there can exist modules `M` with `¬(Module.Finite R M)` but `finrank R M ≠ 0`. For example `ℚ` has `finrank` equal to `1` over `ℤ`, because the nonempty `ℤ`-linearly independent subsets of `ℚ` are precisely the nonzero singletons.
Number field degree (mathlib). (LMFDB)
This is also defined in mathlib as 'finrank ℚ K', where K is the number field and 'finrank ℚ' is its module rank over the rationals.
Lean code for Definition2.13●1 definition
Associated Lean declarations
-
Module.finrank[complete]
-
Module.finrank[complete]
-
defdefined in Mathlib/LinearAlgebra/Dimension/Finrank.leancomplete
def Module.finrank.{u_1, u_2} (R : Type u_1) (M : Type u_2) [Semiring R] [AddCommMonoid M] [Module R M] : ℕ
def Module.finrank.{u_1, u_2} (R : Type u_1) (M : Type u_2) [Semiring R] [AddCommMonoid M] [Module R M] : ℕ
The rank of a module as a natural number. For a finite-dimensional vector space `V` over a field `k`, `Module.finrank k V` is equal to the dimension of `V` over `k`. For a general module `M` over a ring `R`, `Module.finrank R M` is defined to be the supremum of the cardinalities of the `R`-linearly independent subsets of `M`, if this supremum is finite. It is defined by convention to be `0` if this supremum is infinite. See `Module.rank` for a cardinal-valued version where infinite rank modules have rank an infinite cardinal. Note that if `R` is not a field then there can exist modules `M` with `¬(Module.Finite R M)` but `finrank R M ≠ 0`. For example `ℚ` has `finrank` equal to `1` over `ℤ`, because the nonempty `ℤ`-linearly independent subsets of `ℚ` are precisely the nonzero singletons.
Dirichlet group of an Abelian number field. (LMFDB)
If K is an abelian number field, then K\subseteq \Q(\zeta_n) for some positive integer n. Take the minimal such n, i.e., the conductor of K.
The Galois group \Gal(\Q(\zeta_n)/\Q) is canonically isomorphic to \Z_n^\times. The Dirichlet characters modulo n form the dual group of homomorphisms \chi:\Z_n^\times\to\C^\times. Since \Gal(K/\Q) is a quotient group of \Gal(\Q(\zeta_n)/\Q), its dual group is a subgroup of the group of Dirichlet characters modulo n, called the Dirichlet character group of K.
Depends on: Definition 1.45 Definition 2.2 Definition 2.10
Lean code for Definition2.14●5 declarations
Associated Lean declarations
-
defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/AbelianConductor.leancomplete
def NumberField.dirichletCharacterGroup.{u_1} (K : Type u_1) [Field K] [NumberField K] : Subgroup (DirichletCharacter ℂ (NumberField.abelianConductor K))
def NumberField.dirichletCharacterGroup.{u_1} (K : Type u_1) [Field K] [NumberField K] : Subgroup (DirichletCharacter ℂ (NumberField.abelianConductor K))
The **Dirichlet character group** of an abelian number field `K` (LMFDB `nf.dirichlet_group`): for an embedding of `K` into `ℚ(ζ_f)`, where `f` is the conductor of `K`, the group of Dirichlet characters modulo `f` that are trivial on the subgroup of `(ℤ/fℤ)ˣ ≅ Gal(ℚ(ζ_f)/ℚ)` fixing the image of `K`; that is, the dual of the quotient `Gal(K/ℚ)` of `Gal(ℚ(ζ_f)/ℚ)`. The characters take values in `ℂ`. By `dirichletCharacterGroup_eq` it does not depend on the embedding. When `K` embeds in no cyclotomic field, so that its conductor is the junk value `0`, this is the junk value `⊥`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/AbelianConductor.leancomplete
theorem NumberField.dirichletCharacterGroup_eq.{u_1} (K : Type u_1) [Field K] [NumberField K] [NeZero (NumberField.abelianConductor K)] (φ : K →ₐ[ℚ] CyclotomicField (NumberField.abelianConductor K) ℚ) : NumberField.dirichletCharacterGroup K = (IsCyclotomicExtension.Rat.intermediateFieldEquivSubgroupChar (NumberField.abelianConductor K) (CyclotomicField (NumberField.abelianConductor K) ℚ) ℂ) φ.fieldRange
theorem NumberField.dirichletCharacterGroup_eq.{u_1} (K : Type u_1) [Field K] [NumberField K] [NeZero (NumberField.abelianConductor K)] (φ : K →ₐ[ℚ] CyclotomicField (NumberField.abelianConductor K) ℚ) : NumberField.dirichletCharacterGroup K = (IsCyclotomicExtension.Rat.intermediateFieldEquivSubgroupChar (NumberField.abelianConductor K) (CyclotomicField (NumberField.abelianConductor K) ℚ) ℂ) φ.fieldRange
The Dirichlet character group of `K` is the group of characters attached to the image of any embedding of `K` into `ℚ(ζ_f)`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/AbelianConductor.leancomplete
theorem NumberField.card_dirichletCharacterGroup.{u_1} (K : Type u_1) [Field K] [NumberField K] (h : 0 < NumberField.abelianConductor K) : Nat.card ↥(NumberField.dirichletCharacterGroup K) = Module.finrank ℚ K
theorem NumberField.card_dirichletCharacterGroup.{u_1} (K : Type u_1) [Field K] [NumberField K] (h : 0 < NumberField.abelianConductor K) : Nat.card ↥(NumberField.dirichletCharacterGroup K) = Module.finrank ℚ K
The Dirichlet character group of `K` has `[K : ℚ]` elements.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/AbelianConductor.leancomplete
theorem NumberField.dirichletConductor_dirichletCharacterGroup.{u_1} (K : Type u_1) [Field K] [NumberField K] (h : 0 < NumberField.abelianConductor K) : (NumberField.dirichletCharacterGroup K).dirichletConductor = NumberField.abelianConductor K
theorem NumberField.dirichletConductor_dirichletCharacterGroup.{u_1} (K : Type u_1) [Field K] [NumberField K] (h : 0 < NumberField.abelianConductor K) : (NumberField.dirichletCharacterGroup K).dirichletConductor = NumberField.abelianConductor K
The conductor of `K` is the conductor of its Dirichlet character group, the least common multiple of the conductors of the characters of `K`.
-
defdefined in Mathlib/NumberTheory/NumberField/Cyclotomic/Galois.leancomplete
def IsCyclotomicExtension.Rat.intermediateFieldEquivSubgroupChar.{u_1, u_2} (n : ℕ) [NeZero n] (K : Type u_1) [Field K] [NumberField K] [hK : IsCyclotomicExtension {n} ℚ K] (R : Type u_2) [CommRing R] [HasEnoughRootsOfUnity R (Monoid.exponent (ZMod n)ˣ)] [IsAbelianGalois ℚ K] : IntermediateField ℚ K ≃o Subgroup (DirichletCharacter R n)
def IsCyclotomicExtension.Rat.intermediateFieldEquivSubgroupChar.{u_1, u_2} (n : ℕ) [NeZero n] (K : Type u_1) [Field K] [NumberField K] [hK : IsCyclotomicExtension {n} ℚ K] (R : Type u_2) [CommRing R] [HasEnoughRootsOfUnity R (Monoid.exponent (ZMod n)ˣ)] [IsAbelianGalois ℚ K] : IntermediateField ℚ K ≃o Subgroup (DirichletCharacter R n)
The bijection between the intermediate fields of `ℚ(ζₙ)/ℚ` and the subgroups of the group of Dirichlet characters of level `n`.
Discriminant of a number field. (LMFDB)
The discriminant of a number field K is the square of the determinant of the matrix
\left( \begin{array}{ccc}
\sigma_1(\beta_1) & \cdots & \sigma_1(\beta_n) \\
\vdots & & \vdots \\
\sigma_n(\beta_1) & \cdots & \sigma_n(\beta_n) \\
\end{array} \right)
where \sigma_1,..., \sigma_n are the embeddings of K into the complex numbers \mathbb{C}, and \{\beta_1, \ldots, \beta_n\} is an integral basis for the ring of integers of K.
The discriminant of K is a non-zero integer divisible exactly by the primes which ramify in K.
Depends on: Definition 2.1 Definition 2.29
Lean code for Definition2.15●1 definition
Associated Lean declarations
-
NumberField.discr[complete]
-
NumberField.discr[complete]
-
abbrevdefined in Mathlib/NumberTheory/NumberField/Discriminant/Defs.leancomplete
abbrev NumberField.discr.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℤ
abbrev NumberField.discr.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℤ
The absolute discriminant of a number field.
-
Polynomial.discr[complete] -
TauCeti.discrField[complete] -
TauCeti.evenAutSubgroup[complete]
Discriminant root field. (LMFDB)
If K/F is a finite algebraic extension, it can be defined by a polynomial f(x)\in F[x]. The polynomial discriminant, \mathrm{disc}(f), is well-defined up a factor of a non-zero square. The discriminant root field of the extension is F(\sqrt{\mathrm{disc}(f)}), which is well-defined.
If n=[K:F], then the Galois group G for K/F is a subgroup of S_n, well-defined up to conjugation. The discriminant root field can alternatively be described as the fixed field of G\cap A_n.
Lean code for Definition2.16●3 definitions
Associated Lean declarations
-
Polynomial.discr[complete]
-
TauCeti.discrField[complete]
-
TauCeti.evenAutSubgroup[complete]
-
Polynomial.discr[complete] -
TauCeti.discrField[complete] -
TauCeti.evenAutSubgroup[complete]
-
defdefined in Mathlib/RingTheory/Polynomial/Resultant/Basic.leancomplete
def Polynomial.discr.{u_1} {R : Type u_1} [CommRing R] (f : Polynomial R) : R
def Polynomial.discr.{u_1} {R : Type u_1} [CommRing R] (f : Polynomial R) : R
The discriminant of a polynomial, defined as the determinant of `f.sylvesterDeriv` modified by a sign. The sign is chosen so polynomials over `ℝ` with all roots real have non-negative discriminant.
-
defdefined in TauCeti/FieldTheory/GaloisGroups/Discriminant/Field.leancomplete
def TauCeti.discrField.{u, v} {F : Type u} [Field F] (f : Polynomial F) (E : Type v) [Field E] [Algebra F E] : IntermediateField F E
def TauCeti.discrField.{u, v} {F : Type u} [Field F] (f : Polynomial F) (E : Type v) [Field E] [Algebra F E] : IntermediateField F E
**The discriminant field of `f` in `E`**: the subfield of `E` generated over `F` by the square roots of `Polynomial.discr f` that lie in `E`. If `E` contains such a square root this is a splitting field of `X ^ 2 - C f.discr` over `F` (`TauCeti.isSplittingField_discrField`); if it contains none, the root set is empty and the discriminant field is `F` itself. `TauCeti.discrField_eq_adjoin_simple` describes it as `F⟮δ⟯` for any square root `δ` of the discriminant in `E`. Stating it as an adjunction of the whole root set instead of a simple extension keeps it independent of the choice of square root, hence of the numbering of the roots of `f` that `TauCeti.discrSqrt` is computed from.
-
defdefined in TauCeti/FieldTheory/GaloisGroups/Discriminant/Field.leancomplete
def TauCeti.evenAutSubgroup.{u, v} {F : Type u} [Field F] (f : Polynomial F) (E : Type v) [Field E] [Algebra F E] [Fact (Polynomial.map (algebraMap F E) f).Splits] : Subgroup Gal(E/F)
def TauCeti.evenAutSubgroup.{u, v} {F : Type u} [Field F] (f : Polynomial F) (E : Type v) [Field E] [Algebra F E] [Fact (Polynomial.map (algebraMap F E) f).Splits] : Subgroup Gal(E/F)
**The even part of the Galois group.** For a splitting extension `E` of `f` over `F`, this is the subgroup of automorphisms of `E` over `F` that permute the roots of `f` evenly. It is the kernel of the sign of the root action, hence a normal subgroup of index at most two.
-
RingHom[complete] -
NumberField.Embeddings.card[complete] -
NumberField.ComplexEmbedding.IsReal[complete] -
NumberField.Embeddings.range_eval_eq_rootSet_minpoly[complete]
Embedding of a number field. (LMFDB)
An embedding of a number field K is a field homomorphism K\to \C. A number field of degree n has n distinct embeddings, which may be distinguished as real or complex depending on whether the image of the embedding is contained in \R or not.
Complex embeddings necessarily come in conjugate pairs. The signature of a number field is determined by the number of real embeddings and the number of pairs of conjugate complex embeddings.
For K=\Q(a), where a is an algebraic number with minimal polynomial f(X), each embedding \iota is uniquely determined by the value z=\iota(a), which is one of the complex roots of f(X). The embedding is real if z\in\R and complex if z\notin\R.
Depends on: Definition 2.1 Definition 2.9 Definition 2.12 Definition 2.35 Definition 2.51 Definition 2.62
Lean code for Definition2.17●4 declarations
Associated Lean declarations
-
RingHom[complete]
-
NumberField.Embeddings.card[complete]
-
NumberField.ComplexEmbedding.IsReal[complete]
-
NumberField.Embeddings.range_eval_eq_rootSet_minpoly[complete]
-
RingHom[complete] -
NumberField.Embeddings.card[complete] -
NumberField.ComplexEmbedding.IsReal[complete] -
NumberField.Embeddings.range_eval_eq_rootSet_minpoly[complete]
-
structuredefined in Mathlib/Algebra/Ring/Hom/Defs.leancomplete
structure RingHom.{u_5, u_6} (α : Type u_5) (β : Type u_6) [NonAssocSemiring α] [NonAssocSemiring β] : Type (max u_5 u_6)
structure RingHom.{u_5, u_6} (α : Type u_5) (β : Type u_6) [NonAssocSemiring α] [NonAssocSemiring β] : Type (max u_5 u_6)
Bundled semiring homomorphisms; use this for bundled ring homomorphisms too. This extends from both `MonoidHom` and `MonoidWithZeroHom` in order to put the fields in a sensible order, even though `MonoidWithZeroHom` already extends `MonoidHom`.
Extends
-
α →* β -
α →+ β -
α →ₙ+* β -
α →*₀ β
Fields
toFun : α → β
Inherited from-
MonoidHom -
OneHom
map_one' : (↑↑self).toFun 1 = 1
Inherited from-
MonoidHom -
OneHom
map_mul' : ∀ (x y : α), (↑↑self).toFun (x * y) = (↑↑self).toFun x * (↑↑self).toFun y
Inherited from-
MonoidHom
map_zero' : (↑↑self).toFun 0 = 0
The proposition that the function preserves 0
map_add' : ∀ (x y : α), (↑↑self).toFun (x + y) = (↑↑self).toFun x + (↑↑self).toFun y
The proposition that the function preserves addition
-
-
theoremdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.leancomplete
theorem NumberField.Embeddings.card.{u_1, u_2} (K : Type u_1) [Field K] (A : Type u_2) [Field A] [CharZero A] [NumberField K] [IsAlgClosed A] : Fintype.card (K →+* A) = Module.finrank ℚ K
theorem NumberField.Embeddings.card.{u_1, u_2} (K : Type u_1) [Field K] (A : Type u_2) [Field A] [CharZero A] [NumberField K] [IsAlgClosed A] : Fintype.card (K →+* A) = Module.finrank ℚ K
The number of embeddings of a number field is equal to its finrank.
-
abbrevdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.leancomplete
abbrev NumberField.ComplexEmbedding.IsReal.{u_1} {K : Type u_1} [Field K] (φ : K →+* ℂ) : Prop
abbrev NumberField.ComplexEmbedding.IsReal.{u_1} {K : Type u_1} [Field K] (φ : K →+* ℂ) : Prop
An embedding into `ℂ` is real if it is fixed by complex conjugation.
-
theoremdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.leancomplete
theorem NumberField.Embeddings.range_eval_eq_rootSet_minpoly.{u_1, u_2} (K : Type u_1) (A : Type u_2) [Field K] [NumberField K] [Field A] [Algebra ℚ A] [IsAlgClosed A] (x : K) : (Set.range fun φ => φ x) = (minpoly ℚ x).rootSet A
theorem NumberField.Embeddings.range_eval_eq_rootSet_minpoly.{u_1, u_2} (K : Type u_1) (A : Type u_2) [Field K] [NumberField K] [Field A] [Algebra ℚ A] [IsAlgClosed A] (x : K) : (Set.range fun φ => φ x) = (minpoly ℚ x).rootSet A
Let `A` be an algebraically closed field and let `x ∈ K`, with `K` a number field. The images of `x` by the embeddings of `K` in `A` are exactly the roots in `A` of the minimal polynomial of `x` over `ℚ`.
-
NumberField.frobeniusCycleType[complete] -
NumberField.fullCycleType_toPerm_eq_frobeniusCycleType[complete] -
NumberField.frobeniusCycleType_congr[complete] -
IsArithFrobAt[complete] -
Ideal.inertiaDeg[complete]
Frobenius cycle types. (LMFDB)
If K is a degree n extension of \mathbb{Q}, \hat{K} its normal closure and G=\text{Gal}(\hat{K}/\mathbb{Q}), then G acts on the set of n embeddings of K\to \hat{K} giving an embedding G\to S_n. Let \mathcal{O}_K be the ring of integers of K and p a prime number. Then
p\mathcal{O}_K = P_1^{e_1}\cdots P_g^{e_g}
where the P_i are distinct prime ideals of \mathcal{O}_K. The prime p is unramified if e_i=1 for all i.
Suppose hereafter that p is unramified. For each P_i, there is a unique element
of G that fixes P_i and acts on the quotient \mathcal{O}_K/P_i via the Frobenius automorphism x \mapsto x^p; this element is the Frobenius element associated to P_i. The Frobenius elements associated to the different P_i are conjugate to each other, so their images in S_n all have the same lengths of cycles in their disjoint cycle decompositions. This is the Frobenius cycle type of p.
Alternatively, for each prime P_i, its residue degree f_i is defined by |\mathcal{O}_K/P_i| = p^{f_i}. The list of f_i is the same partition of n as the cycle decomposition described above.
Lean code for Definition2.18●5 declarations
Associated Lean declarations
-
NumberField.frobeniusCycleType[complete]
-
NumberField.fullCycleType_toPerm_eq_frobeniusCycleType[complete]
-
NumberField.frobeniusCycleType_congr[complete]
-
IsArithFrobAt[complete]
-
Ideal.inertiaDeg[complete]
-
NumberField.frobeniusCycleType[complete] -
NumberField.fullCycleType_toPerm_eq_frobeniusCycleType[complete] -
NumberField.frobeniusCycleType_congr[complete] -
IsArithFrobAt[complete] -
Ideal.inertiaDeg[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/FrobeniusCycleType.leancomplete
def NumberField.frobeniusCycleType.{u_1, u_2} {F : Type u_1} [Field F] (K : Type u_2) [Field K] [NumberField K] [Algebra F K] (p : Ideal (NumberField.RingOfIntegers F)) [p.IsMaximal] : Multiset ℕ
def NumberField.frobeniusCycleType.{u_1, u_2} {F : Type u_1} [Field F] (K : Type u_2) [Field K] [NumberField K] [Algebra F K] (p : Ideal (NumberField.RingOfIntegers F)) [p.IsMaximal] : Multiset ℕ
The **Frobenius cycle type** of a prime `p` of `F` in a finite extension `K / F` of number fields (LMFDB `nf.frobenius_cycle_types`, where `F = ℚ`): the multiset of the residue degrees of the primes of `K` above `p`. The LMFDB defines it for the primes `p` unramified in `K`. When `p` is unramified in a Galois extension `L / F` containing a copy of `K`, this is the cycle type, fixed points included, of the permutation of the embeddings `K → L` induced by a Frobenius element at any prime of `L` above `p` (`fullCycleType_toPerm_eq_frobeniusCycleType`), which is the LMFDB's definition. That theorem shows in particular that the LMFDB's definition does not depend on the choices of `L`, of the prime of `L` and of the Frobenius element. For a ramified `p` the multiset of residue degrees, which no longer sums to `[K : F]`, is a value outside the LMFDB's definition.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/FrobeniusCycleType.leancomplete
theorem NumberField.fullCycleType_toPerm_eq_frobeniusCycleType.{u_1, u_2, u_4} {F : Type u_1} [Field F] {K : Type u_2} [Field K] [NumberField K] [Algebra F K] (p : Ideal (NumberField.RingOfIntegers F)) [p.IsMaximal] {L : Type u_4} [Field L] [NumberField L] [Algebra F L] [IsGalois F L] [NumberField F] (φ : K →ₐ[F] L) (Q : Ideal (NumberField.RingOfIntegers L)) [Q.IsPrime] [Q.LiesOver p] [Algebra.IsUnramifiedAt (NumberField.RingOfIntegers F) Q] {σ : Gal(L/F)} (hσ : IsArithFrobAt (NumberField.RingOfIntegers F) σ Q) : (MulAction.toPerm σ).fullCycleType = NumberField.frobeniusCycleType K p
theorem NumberField.fullCycleType_toPerm_eq_frobeniusCycleType.{u_1, u_2, u_4} {F : Type u_1} [Field F] {K : Type u_2} [Field K] [NumberField K] [Algebra F K] (p : Ideal (NumberField.RingOfIntegers F)) [p.IsMaximal] {L : Type u_4} [Field L] [NumberField L] [Algebra F L] [IsGalois F L] [NumberField F] (φ : K →ₐ[F] L) (Q : Ideal (NumberField.RingOfIntegers L)) [Q.IsPrime] [Q.LiesOver p] [Algebra.IsUnramifiedAt (NumberField.RingOfIntegers F) Q] {σ : Gal(L/F)} (hσ : IsArithFrobAt (NumberField.RingOfIntegers F) σ Q) : (MulAction.toPerm σ).fullCycleType = NumberField.frobeniusCycleType K p
**Frobenius cycle types.** Let `L / F` be a finite Galois extension into which `K` embeds, and `σ ∈ Gal(L/F)` a Frobenius element at a prime `Q` of `L` above `p` unramified over `F`. Then the cycle type, fixed points included, of the permutation of the embeddings `K → L` induced by `σ` is the multiset of the residue degrees of the primes of `K` above `p`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/FrobeniusCycleType.leancomplete
theorem NumberField.frobeniusCycleType_congr.{u_1, u_2, u_3} {F : Type u_1} [Field F] {K : Type u_2} [Field K] [NumberField K] [Algebra F K] (p : Ideal (NumberField.RingOfIntegers F)) [p.IsMaximal] {K' : Type u_3} [Field K'] [NumberField K'] [Algebra F K'] (e : K ≃ₐ[F] K') : NumberField.frobeniusCycleType K p = NumberField.frobeniusCycleType K' p
theorem NumberField.frobeniusCycleType_congr.{u_1, u_2, u_3} {F : Type u_1} [Field F] {K : Type u_2} [Field K] [NumberField K] [Algebra F K] (p : Ideal (NumberField.RingOfIntegers F)) [p.IsMaximal] {K' : Type u_3} [Field K'] [NumberField K'] [Algebra F K'] (e : K ≃ₐ[F] K') : NumberField.frobeniusCycleType K p = NumberField.frobeniusCycleType K' p
Isomorphic extensions of `F` have the same Frobenius cycle types.
-
abbrevdefined in Mathlib/RingTheory/Frobenius.leancomplete
abbrev IsArithFrobAt.{u_1, u_2, u_3} (R : Type u_1) {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] {M : Type u_3} [Monoid M] [MulSemiringAction M S] [SMulCommClass M R S] (σ : M) (Q : Ideal S) : Prop
abbrev IsArithFrobAt.{u_1, u_2, u_3} (R : Type u_1) {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] {M : Type u_3} [Monoid M] [MulSemiringAction M S] [SMulCommClass M R S] (σ : M) (Q : Ideal S) : Prop
Suppose `S` is an `R` algebra, `M` is a monoid acting on `S` whose action is trivial on `R` `σ : M` is an (arithmetic) Frobenius at an ideal `Q` of `S` if `σ • x ≡ x ^ q (mod Q)` for all `x`.
-
defdefined in Mathlib/RingTheory/RamificationInertia/Inertia.leancomplete
def Ideal.inertiaDeg.{u_1, u_2} {S : Type u_1} [CommRing S] (q : Ideal S) (R : Type u_2) [CommRing R] [Algebra R S] : ℕ
def Ideal.inertiaDeg.{u_1, u_2} {S : Type u_1} [CommRing S] (q : Ideal S) (R : Type u_2) [CommRing R] [Algebra R S] : ℕ
Given a prime ideal `q` of an `R`-algebra `S`, the inertia degree of `q` over `R` is defined to be the degree of the residue field of `q` over the residue field of its preimage `p` in `R`. When `q` is not prime, we use a junk value of `0`. This will eventually replace the existing definition of `Ideal.inertiaDeg'`.
-
NumberField.Units.fundSystem[complete] -
NumberField.Units.basisModTorsion[complete] -
NumberField.Units.exist_unique_eq_mul_prod[complete]
Fundamental units of a number field. (LMFDB)
A minimal set of generators of a maximal torsion-free subgroup of the unit group of a number field K is called a set of fundamental units for K.
Depends on: Definition 2.1 Definition 2.68
Lean code for Definition2.19●3 declarations
Associated Lean declarations
-
NumberField.Units.fundSystem[complete]
-
NumberField.Units.basisModTorsion[complete]
-
NumberField.Units.exist_unique_eq_mul_prod[complete]
-
NumberField.Units.fundSystem[complete] -
NumberField.Units.basisModTorsion[complete] -
NumberField.Units.exist_unique_eq_mul_prod[complete]
-
defdefined in Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.leancomplete
def NumberField.Units.fundSystem.{u_1} (K : Type u_1) [Field K] [NumberField K] : Fin (NumberField.Units.rank K) → (NumberField.RingOfIntegers K)ˣ
def NumberField.Units.fundSystem.{u_1} (K : Type u_1) [Field K] [NumberField K] : Fin (NumberField.Units.rank K) → (NumberField.RingOfIntegers K)ˣ
A fundamental system of units of `K`. The units of `fundSystem` are arbitrary lifts of the units in `basisModTorsion`.
-
defdefined in Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.leancomplete
def NumberField.Units.basisModTorsion.{u_1} (K : Type u_1) [Field K] [NumberField K] : Module.Basis (Fin (NumberField.Units.rank K)) ℤ (Additive ((NumberField.RingOfIntegers K)ˣ ⧸ NumberField.Units.torsion K))
def NumberField.Units.basisModTorsion.{u_1} (K : Type u_1) [Field K] [NumberField K] : Module.Basis (Fin (NumberField.Units.rank K)) ℤ (Additive ((NumberField.RingOfIntegers K)ˣ ⧸ NumberField.Units.torsion K))
A basis of the quotient `(𝓞 K)ˣ ⧸ (torsion K)` seen as an additive ℤ-module.
-
theoremdefined in Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.leancomplete
theorem NumberField.Units.exist_unique_eq_mul_prod.{u_1} (K : Type u_1) [Field K] [NumberField K] (x : (NumberField.RingOfIntegers K)ˣ) : ∃! ζe, x = ↑ζe.1 * ∏ i, NumberField.Units.fundSystem K i ^ ζe.2 i
theorem NumberField.Units.exist_unique_eq_mul_prod.{u_1} (K : Type u_1) [Field K] [NumberField K] (x : (NumberField.RingOfIntegers K)ˣ) : ∃! ζe, x = ↑ζe.1 * ∏ i, NumberField.Units.fundSystem K i ^ ζe.2 i
**Dirichlet Unit Theorem**. Any unit `x` of `𝓞 K` can be written uniquely as the product of a root of unity and powers of the units of the fundamental system `fundSystem`.
-
IntermediateField.normalClosure[complete] -
IsNormalClosure[complete] -
IsGalois.normalClosure_of_isSeparable[complete] -
IntermediateField.normalClosure_le_iff_of_normal[complete]
Galois closure of an extension. (LMFDB)
If K is a separable algebraic extension of a field F, then its Galois closure is the smallest extension field, in terms of inclusion, which contains K and is Galois over F. If K=F(\alpha) where \alpha has irreducible polynomial f over F, then the Galois closure of K is the splitting field of f over F.
Depends on: Definition 2.58
Lean code for Definition2.20●4 declarations
Associated Lean declarations
-
IntermediateField.normalClosure[complete]
-
IsNormalClosure[complete]
-
IsGalois.normalClosure_of_isSeparable[complete]
-
IntermediateField.normalClosure_le_iff_of_normal[complete]
-
IntermediateField.normalClosure[complete] -
IsNormalClosure[complete] -
IsGalois.normalClosure_of_isSeparable[complete] -
IntermediateField.normalClosure_le_iff_of_normal[complete]
-
defdefined in Mathlib/FieldTheory/Normal/Closure.leancomplete
def IntermediateField.normalClosure.{u_1, u_2, u_3} (F : Type u_1) (K : Type u_2) (L : Type u_3) [Field F] [Field K] [Field L] [Algebra F K] [Algebra F L] : IntermediateField F L
def IntermediateField.normalClosure.{u_1, u_2, u_3} (F : Type u_1) (K : Type u_2) (L : Type u_3) [Field F] [Field K] [Field L] [Algebra F K] [Algebra F L] : IntermediateField F L
The normal closure of `K/F` in `L/F`.
-
classdefined in Mathlib/FieldTheory/Normal/Closure.leancomplete
class IsNormalClosure.{u_1, u_2, u_3} (F : Type u_1) (K : Type u_2) (L : Type u_3) [Field F] [Field K] [Field L] [Algebra F K] [Algebra F L] : Prop
class IsNormalClosure.{u_1, u_2, u_3} (F : Type u_1) (K : Type u_2) (L : Type u_3) [Field F] [Field K] [Field L] [Algebra F K] [Algebra F L] : Prop
`L/F` is a normal closure of `K/F` if the minimal polynomial of every element of `K` over `F` splits in `L`, and `L` is generated by roots of such minimal polynomials over `F`. (Since the minimal polynomial of a transcendental element is 0, the normal closure of `K/F` is the same as the normal closure over `F` of the algebraic closure of `F` in `K`.)
Methods
splits : ∀ (x : K), (Polynomial.map (algebraMap F L) (minpoly F x)).Splits
adjoin_rootSet : ⨆ x, IntermediateField.adjoin F ((minpoly F x).rootSet L) = ⊤
-
theoremdefined in Mathlib/FieldTheory/Galois/Basic.leancomplete
theorem IsGalois.normalClosure_of_isSeparable.{u_1, u_2, u_3} (k : Type u_1) (K : Type u_2) (F : Type u_3) [Field k] [Field K] [Field F] [Algebra k K] [Algebra k F] [Algebra.IsSeparable k K] [Normal k F] : IsGalois k ↥(IntermediateField.normalClosure k K F)
theorem IsGalois.normalClosure_of_isSeparable.{u_1, u_2, u_3} (k : Type u_1) (K : Type u_2) (F : Type u_3) [Field k] [Field K] [Field F] [Algebra k K] [Algebra k F] [Algebra.IsSeparable k K] [Normal k F] : IsGalois k ↥(IntermediateField.normalClosure k K F)
Let $F / K / k$ be a tower of field extensions. If $K$ is separable over $k$ and $F$ is normal over $k$, then the normal closure of $K$ over $k$ in $F$ is Galois over $k$.
-
theoremdefined in Mathlib/FieldTheory/Normal/Closure.leancomplete
theorem IntermediateField.normalClosure_le_iff_of_normal.{u_1, u_3} {F : Type u_1} {L : Type u_3} [Field F] [Field L] [Algebra F L] [Normal F L] {K₁ K₂ : IntermediateField F L} [Normal F ↥K₂] : IntermediateField.normalClosure F (↥K₁) L ≤ K₂ ↔ K₁ ≤ K₂
theorem IntermediateField.normalClosure_le_iff_of_normal.{u_1, u_3} {F : Type u_1} {L : Type u_3} [Field F] [Field L] [Algebra F L] [Normal F L] {K₁ K₂ : IntermediateField F L} [Normal F ↥K₂] : IntermediateField.normalClosure F (↥K₁) L ≤ K₂ ↔ K₁ ≤ K₂
-
Polynomial.Gal[complete] -
Polynomial.Gal.galActionHom[complete] -
Polynomial.Gal.galActionHom_injective[complete] -
TauCeti.galEquivNormalClosure[complete]
Galois group. (LMFDB)
Let K be a finite degree n separable extension of a field F, and K^{gal} be its
Galois (or normal) closure.
The Galois group for K/F is the automorphism group \Aut(K^{gal}/F).
This automorphism group acts on the n embeddings K\hookrightarrow K^{gal} via composition. As a result, we get an injection \Aut(K^{gal}/F)\hookrightarrow S_n, which is well-defined up to the labelling of the n embeddings, which corresponds to being well-defined up to conjugation in S_n.
We use the notation \Gal(K/F) for \Aut(K/F) when K=K^{gal}.
There is a naming convention for Galois groups up to degree 47.
Depends on: Definition 1.100 Definition 2.12 Definition 2.20 Definition 2.58 Definition 1.134
Lean code for Definition2.21●4 declarations
Associated Lean declarations
-
Polynomial.Gal[complete]
-
Polynomial.Gal.galActionHom[complete]
-
Polynomial.Gal.galActionHom_injective[complete]
-
TauCeti.galEquivNormalClosure[complete]
-
Polynomial.Gal[complete] -
Polynomial.Gal.galActionHom[complete] -
Polynomial.Gal.galActionHom_injective[complete] -
TauCeti.galEquivNormalClosure[complete]
-
defdefined in Mathlib/FieldTheory/PolynomialGaloisGroup.leancomplete
def Polynomial.Gal.{u_1} {F : Type u_1} [Field F] (p : Polynomial F) : Type u_1
def Polynomial.Gal.{u_1} {F : Type u_1} [Field F] (p : Polynomial F) : Type u_1
The Galois group of a polynomial.
-
defdefined in Mathlib/FieldTheory/PolynomialGaloisGroup.leancomplete
def Polynomial.Gal.galActionHom.{u_1, u_2} {F : Type u_1} [Field F] (p : Polynomial F) (E : Type u_2) [Field E] [Algebra F E] [Fact (Polynomial.map (algebraMap F E) p).Splits] : p.Gal →* Equiv.Perm ↑(p.rootSet E)
def Polynomial.Gal.galActionHom.{u_1, u_2} {F : Type u_1} [Field F] (p : Polynomial F) (E : Type u_2) [Field E] [Algebra F E] [Fact (Polynomial.map (algebraMap F E) p).Splits] : p.Gal →* Equiv.Perm ↑(p.rootSet E)
`Polynomial.Gal.galAction` as a permutation representation
-
theoremdefined in Mathlib/FieldTheory/PolynomialGaloisGroup.leancomplete
theorem Polynomial.Gal.galActionHom_injective.{u_1, u_2} {F : Type u_1} [Field F] (p : Polynomial F) (E : Type u_2) [Field E] [Algebra F E] [Fact (Polynomial.map (algebraMap F E) p).Splits] : Function.Injective ⇑(Polynomial.Gal.galActionHom p E)
theorem Polynomial.Gal.galActionHom_injective.{u_1, u_2} {F : Type u_1} [Field F] (p : Polynomial F) (E : Type u_2) [Field E] [Algebra F E] [Fact (Polynomial.map (algebraMap F E) p).Splits] : Function.Injective ⇑(Polynomial.Gal.galActionHom p E)
`gal p` embeds as a subgroup of permutations of the roots of `p` in `E`.
-
defdefined in TauCeti/FieldTheory/GaloisGroups/NormalClosure.leancomplete
def TauCeti.galEquivNormalClosure.{u_1, u_2} {F : Type u_1} {E : Type u_2} [Field F] [Field E] [Algebra F E] [Normal F E] (x : E) : (minpoly F x).Gal ≃* Gal(↥(IntermediateField.normalClosure F (↥F⟮x⟯) E)/F)
def TauCeti.galEquivNormalClosure.{u_1, u_2} {F : Type u_1} {E : Type u_2} [Field F] [Field E] [Algebra F E] [Normal F E] (x : E) : (minpoly F x).Gal ≃* Gal(↥(IntermediateField.normalClosure F (↥F⟮x⟯) E)/F)
The Galois group of a minimal polynomial is the automorphism group of the normal closure of the simple extension, via conjugation by the field comparison.
-
NumberField.rootDiscr[complete] -
IntermediateField.normalClosure[complete] -
IsNormalClosure[complete]
Galois root discriminant. (LMFDB)
The Galois root discriminant of a number field is the root discriminant of its Galois closure.
Depends on: Definition 2.1 Definition 2.20 Definition 2.57
Lean code for Definition2.22●3 definitions
Associated Lean declarations
-
NumberField.rootDiscr[complete]
-
IntermediateField.normalClosure[complete]
-
IsNormalClosure[complete]
-
NumberField.rootDiscr[complete] -
IntermediateField.normalClosure[complete] -
IsNormalClosure[complete]
-
defdefined in Mathlib/NumberTheory/NumberField/Discriminant/Basic.leancomplete
def NumberField.rootDiscr.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℝ
def NumberField.rootDiscr.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℝ
The root discriminant of a number field `K`.
-
defdefined in Mathlib/FieldTheory/Normal/Closure.leancomplete
def IntermediateField.normalClosure.{u_1, u_2, u_3} (F : Type u_1) (K : Type u_2) (L : Type u_3) [Field F] [Field K] [Field L] [Algebra F K] [Algebra F L] : IntermediateField F L
def IntermediateField.normalClosure.{u_1, u_2, u_3} (F : Type u_1) (K : Type u_2) (L : Type u_3) [Field F] [Field K] [Field L] [Algebra F K] [Algebra F L] : IntermediateField F L
The normal closure of `K/F` in `L/F`.
-
classdefined in Mathlib/FieldTheory/Normal/Closure.leancomplete
class IsNormalClosure.{u_1, u_2, u_3} (F : Type u_1) (K : Type u_2) (L : Type u_3) [Field F] [Field K] [Field L] [Algebra F K] [Algebra F L] : Prop
class IsNormalClosure.{u_1, u_2, u_3} (F : Type u_1) (K : Type u_2) (L : Type u_3) [Field F] [Field K] [Field L] [Algebra F K] [Algebra F L] : Prop
`L/F` is a normal closure of `K/F` if the minimal polynomial of every element of `K` over `F` splits in `L`, and `L` is generated by roots of such minimal polynomials over `F`. (Since the minimal polynomial of a transcendental element is 0, the normal closure of `K/F` is the same as the normal closure over `F` of the algebraic closure of `F` in `K`.)
Methods
splits : ∀ (x : K), (Polynomial.map (algebraMap F L) (minpoly F x)).Splits
adjoin_rootSet : ⨆ x, IntermediateField.adjoin F ((minpoly F x).rootSet L) = ⊤
-
IntermediateField.adjoin[complete] -
IntermediateField.adjoinRootEquivAdjoin[complete] -
Field.exists_primitive_element[complete]
Generator of a number field. (LMFDB)
A generator of a number field K is an element a\in K such that K=\Q(a).
The minimal polynomial of a generator is a defining polynomial for K.
Depends on: Definition 2.1 Definition 2.11 Definition 2.35
Lean code for Definition2.23●3 declarations
Associated Lean declarations
-
IntermediateField.adjoin[complete]
-
IntermediateField.adjoinRootEquivAdjoin[complete]
-
Field.exists_primitive_element[complete]
-
IntermediateField.adjoin[complete] -
IntermediateField.adjoinRootEquivAdjoin[complete] -
Field.exists_primitive_element[complete]
-
defdefined in Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.leancomplete
def IntermediateField.adjoin.{u_1, u_2} (F : Type u_1) [Field F] {E : Type u_2} [Field E] [Algebra F E] (S : Set E) : IntermediateField F E
def IntermediateField.adjoin.{u_1, u_2} (F : Type u_1) [Field F] {E : Type u_2} [Field E] [Algebra F E] (S : Set E) : IntermediateField F E
`adjoin F S` extends a field `F` by adjoining a set `S ⊆ E`.
-
defdefined in Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.leancomplete
def IntermediateField.adjoinRootEquivAdjoin.{u_1, u_2} (F : Type u_1) [Field F] {E : Type u_2} [Field E] [Algebra F E] {α : E} (h : IsIntegral F α) : AdjoinRoot (minpoly F α) ≃ₐ[F] ↥F⟮α⟯
def IntermediateField.adjoinRootEquivAdjoin.{u_1, u_2} (F : Type u_1) [Field F] {E : Type u_2} [Field E] [Algebra F E] {α : E} (h : IsIntegral F α) : AdjoinRoot (minpoly F α) ≃ₐ[F] ↥F⟮α⟯
algebra isomorphism between `AdjoinRoot` and `F⟮α⟯`
-
theoremdefined in Mathlib/FieldTheory/PrimitiveElement.leancomplete
theorem Field.exists_primitive_element.{u_1, u_2} (F : Type u_1) (E : Type u_2) [Field F] [Field E] [Algebra F E] [FiniteDimensional F E] [Algebra.IsSeparable F E] : ∃ α, F⟮α⟯ = ⊤
theorem Field.exists_primitive_element.{u_1, u_2} (F : Type u_1) (E : Type u_2) [Field F] [Field E] [Algebra F E] [FiniteDimensional F E] [Algebra.IsSeparable F E] : ∃ α, F⟮α⟯ = ⊤
**Primitive element theorem**: a finite separable field extension `E` of `F` has a primitive element, i.e. there is an `α ∈ E` such that `F⟮α⟯ = (⊤ : Subalgebra F E)`.
Ideal class group of a number field. (LMFDB)
The ideal class group of a number field K with ring of integers O_K is the group of equivalence classes of ideals, given by the quotient of the multiplicative group of all fractional ideals of O_K by the subgroup of principal fractional ideals.
Since K is a number field, the ideal class group of K is a finite abelian group, and so has the structure of a product of cyclic groups encoded by a finite list [a_1,\dots,a_n], where the a_i are positive integers with a_i\mid a_{i+1} for 1\leq i < n.
Depends on: Definition 2.1 Definition 2.56 Definition 1.137 Definition 1.146
Lean code for Definition2.24●1 definition
Associated Lean declarations
-
ClassGroup[complete]
-
ClassGroup[complete]
-
defdefined in Mathlib/RingTheory/ClassGroup/Basic.leancomplete
def ClassGroup.{u_1} (R : Type u_1) [CommRing R] [IsDomain R] : Type u_1
def ClassGroup.{u_1} (R : Type u_1) [CommRing R] [IsDomain R] : Type u_1
The ideal class group of `R` is the group of invertible fractional ideals modulo the principal ideals.
Ideal labels. (LMFDB)
In the LMFDB ideals in rings of integers of number fields are identified using the labeling system developed by John Cremona, Aurel Page and Andrew Sutherland .
In a number field K, each nonzero ideal I of its ring of integers \mathcal{O}_K is assigned an ideal label of the form \texttt{N.i}, where N and i are positive integers, in which N:=[\mathcal{O}_K:I] is the norm of the ideal and i is the index of the ideal in a sorted list of all ideals of norm N. Once an integral primitive element \alpha for the field K is fixed, the ordering of ideals of the same norm is defined in a deterministic fashion (involving no arbitrary choices).
In the LMFDB we always represent number fields as K = \mathbb{Q}[X]/(g(X)) where g is the unique monic integral polynomial which satisfies the polredabs condition. In this representation the image of X under the quotient map \mathbb{Q}[X]\rightarrow\mathbb{Q}[X]/(g(X)) is a canonical integral primitive element \alpha for K. Fixing this element determines a unique ordering of all \mathcal{O}_K-ideals of the same norm.
Depends on: Definition 2.45
- No associated Lean code or declarations.
Inertial height function. (LMFDB)
Let G be a finite group. A weight function on G is a a function w:G \to \R_{\geq 0} such that:
-
w(g) = 0if and only ifgequals the identity element ofG. -
w(h g h^{-1}) = w(g)for allg,h \in G, i.e.wis invariant under conjugacy. -
w(g^n) = w(g)for allg \in Gand all natural numbersnwithn \nmid \#G, i.e.wis invariant under invertible powering.
Let p be a prime with p \nmid \#G and \Gamma_{\Q_p} the absolute Galois group of \Q_p. We define the local height function associated to w to be
H_{w,p}: \Hom(\Gamma_{\Q_p}, G) \to \R_{>0}, \quad \varphi \mapsto w(\varphi(\tau_p))
where \tau_p is any choice of generator of the tame inertia group of \Gamma_{\Q_p}.
For p \mid \#G, we take H_p: \Hom(\Gamma_{\Q_p}, G) \to \R_{>0} to be any positive function on the finite set \Hom(\Gamma_{\Q_p}, G). We define the associated inertial height function to be
H: \Hom(\Gamma_{\Q}, G) \to \R_{>0}, \quad \varphi \mapsto \prod_{p \mid \#G} H_p(\varphi) \prod_{p \mid \#G} H_{w,p}(\varphi)
the product of local heights.
For example taking the weight function w with w(g) = 1 for all non-identity elements g \in G, an associated inertial height function is the radical discriminant: the product of primes which are ramified in the corresponding number field.
More general weight functions can be considered over more general base number fields. See ??? for further details.
Inessential prime. (LMFDB)
An inessential prime of a number field is a prime divisor of its index.
Depends on: Definition 2.1 Definition 2.73
Lean code for Definition2.27●2 definitions
Associated Lean declarations
-
defdefined in TauCeti/NumberTheory/NumberField/Index/Basic.leancomplete
def TauCeti.NumberField.IntegralPrimitiveElement.index.{u_1} {K : Type u_1} [Field K] [NumberField K] (θ : TauCeti.NumberField.IntegralPrimitiveElement K) : ℕ
def TauCeti.NumberField.IntegralPrimitiveElement.index.{u_1} {K : Type u_1} [Field K] [NumberField K] (θ : TauCeti.NumberField.IntegralPrimitiveElement K) : ℕ
The index `[𝓞 K : ℤ[θ]]`, defined as the cardinality of the additive quotient.
-
defdefined in TauCeti/NumberTheory/NumberField/Index/CommonIndexDivisor.leancomplete
def TauCeti.NumberField.IsCommonIndexDivisor.{u_2} (p : ℕ) (K : Type u_2) [Field K] [NumberField K] : Prop
def TauCeti.NumberField.IsCommonIndexDivisor.{u_2} (p : ℕ) (K : Type u_2) [Field K] [NumberField K] : Prop
`p` is a **common index divisor** of `K` when it divides the index `[𝓞 K : ℤ[θ]]` of every integral primitive element `θ` of `K`. A common index divisor obstructs monogenicity. If `K` admits no integral primitive element the condition holds vacuously, so the predicate carries content only when such a `θ` exists.
Integral elements. (LMFDB)
An element of a number field K is integral if it is integral over \Z.
Depends on: Definition 2.1 Definition 1.139
Lean code for Definition2.28●1 definition
Associated Lean declarations
-
IsIntegral[complete]
-
IsIntegral[complete]
-
defdefined in Mathlib/RingTheory/IntegralClosure/IsIntegral/Defs.leancomplete
def IsIntegral.{u_1, u_3} (R : Type u_1) {A : Type u_3} [CommRing R] [Ring A] [Algebra R A] (x : A) : Prop
def IsIntegral.{u_1, u_3} (R : Type u_1) {A : Type u_3} [CommRing R] [Ring A] [Algebra R A] (x : A) : Prop
An element `x` of an algebra `A` over a commutative ring `R` is said to be *integral*, if it is a root of some monic polynomial `p : R[X]`. Equivalently, the element is integral over `R` with respect to the induced `algebraMap`
Integral basis of a number field. (LMFDB)
An integral basis of a number field K is a \mathbb{Z}-basis for the ring of integers of K. This is also a \mathbb{Q}-basis for K.
Depends on: Definition 2.1 Definition 2.56
Lean code for Definition2.29●1 definition
Associated Lean declarations
-
NumberField.RingOfIntegers.basis[complete]
-
NumberField.RingOfIntegers.basis[complete]
-
defdefined in Mathlib/NumberTheory/NumberField/Basic.leancomplete
def NumberField.RingOfIntegers.basis.{u_1} (K : Type u_1) [Field K] [NumberField K] : Module.Basis (Module.Free.ChooseBasisIndex ℤ (NumberField.RingOfIntegers K)) ℤ (NumberField.RingOfIntegers K)
def NumberField.RingOfIntegers.basis.{u_1} (K : Type u_1) [Field K] [NumberField K] : Module.Basis (Module.Free.ChooseBasisIndex ℤ (NumberField.RingOfIntegers K)) ℤ (NumberField.RingOfIntegers K)
A ℤ-basis of the ring of integers of `K`.
Intermediate fields. (LMFDB)
For a number field K, intermediate fields F are fields with \Q\subsetneqq F \subsetneqq K.
Lean code for Definition2.30●1 definition
Associated Lean declarations
-
IntermediateField[complete]
-
IntermediateField[complete]
-
structuredefined in Mathlib/FieldTheory/IntermediateField/Basic.leancomplete
structure IntermediateField.{u_1, u_2} (K : Type u_1) (L : Type u_2) [Field K] [Field L] [Algebra K L] : Type u_2
structure IntermediateField.{u_1, u_2} (K : Type u_1) (L : Type u_2) [Field K] [Field L] [Algebra K L] : Type u_2
`S : IntermediateField K L` is a subset of `L` such that there is a field tower `L / S / K`.
Extends
-
Subalgebra K L
Fields
carrier : Set L
Inherited from-
Subalgebra -
Subsemiring -
Submonoid -
Subsemigroup
mul_mem' : ∀ {a b : L}, a ∈ self.carrier → b ∈ self.carrier → a * b ∈ self.carrier
Inherited from-
Subalgebra -
Subsemiring -
Submonoid -
Subsemigroup
one_mem' : 1 ∈ self.carrier
Inherited from-
Subalgebra -
Subsemiring -
Submonoid
add_mem' : ∀ {a b : L}, a ∈ self.carrier → b ∈ self.carrier → a + b ∈ self.carrier
Inherited from-
Subalgebra -
Subsemiring
zero_mem' : 0 ∈ self.carrier
Inherited from-
Subalgebra -
Subsemiring
algebraMap_mem' : ∀ (r : K), (algebraMap K L) r ∈ self.carrier
Inherited from-
Subalgebra
inv_mem' : ∀ x ∈ self.carrier, x⁻¹ ∈ self.carrier
-
Is a Galois extension. (LMFDB)
Let F be a subfield of K,
\Aut(K/F)=\{ \sigma:K\to K\mid \sigma(a)=a \text{ for all } a\in F \text{ and } \sigma \text{ is a ring homomorphism}\},
and
K^{\Aut(K/F)} = \{ a\in K \mid \sigma(a)=a\}.
Then K is Galois over F if K^{\Aut(K/F)} = F.
Lean code for Definition2.31●2 declarations
Associated Lean declarations
-
IsGalois[complete]
-
IsGalois.tfae[complete]
-
IsGalois[complete] -
IsGalois.tfae[complete]
-
classdefined in Mathlib/FieldTheory/Galois/Basic.leancomplete
class IsGalois.{u_1, u_2} (F : Type u_1) [Field F] (E : Type u_2) [Field E] [Algebra F E] : Prop
class IsGalois.{u_1, u_2} (F : Type u_1) [Field F] (E : Type u_2) [Field E] [Algebra F E] : Prop
A field extension E/F is Galois if it is both separable and normal. Note that in mathlib a separable extension of fields is by definition algebraic.
Methods
to_isSeparable : Algebra.IsSeparable F E
to_normal : Normal F E
-
theoremdefined in Mathlib/FieldTheory/Galois/Basic.leancomplete
theorem IsGalois.tfae.{u_1, u_2} {F : Type u_1} [Field F] {E : Type u_2} [Field E] [Algebra F E] [FiniteDimensional F E] : [IsGalois F E, IntermediateField.fixedField ⊤ = ⊥, Nat.card Gal(E/F) = Module.finrank F E, ∃ p, p.Separable ∧ Polynomial.IsSplittingField F E p].TFAE
theorem IsGalois.tfae.{u_1, u_2} {F : Type u_1} [Field F] {E : Type u_2} [Field E] [Algebra F E] [FiniteDimensional F E] : [IsGalois F E, IntermediateField.fixedField ⊤ = ⊥, Nat.card Gal(E/F) = Module.finrank F E, ∃ p, p.Separable ∧ Polynomial.IsSplittingField F E p].TFAE
Equivalent characterizations of a Galois extension of finite degree.
-
TensorProduct[complete] -
Padic[complete] -
Algebra.Etale.baseChange[complete] -
Algebra.Etale.iff_exists_algEquiv_prod[complete]
Local algebra. (LMFDB)
Given a global number field K and a prime p, the local algebra for K is K\otimes \Q_p. This is a finite separable algebra over \Q_p which is isomorphic to a finite direct product of finite extension fields of \Q_p.
Depends on: Definition 2.1 Definition 2.59
Lean code for Definition2.32●4 declarations
Associated Lean declarations
-
TensorProduct[complete]
-
Padic[complete]
-
Algebra.Etale.baseChange[complete]
-
Algebra.Etale.iff_exists_algEquiv_prod[complete]
-
TensorProduct[complete] -
Padic[complete] -
Algebra.Etale.baseChange[complete] -
Algebra.Etale.iff_exists_algEquiv_prod[complete]
-
defdefined in Mathlib/LinearAlgebra/TensorProduct/Defs.leancomplete
def TensorProduct.{u_1, u_5, u_6} (R : Type u_1) [CommSemiring R] (M : Type u_5) (N : Type u_6) [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_5 u_6)
def TensorProduct.{u_1, u_5, u_6} (R : Type u_1) [CommSemiring R] (M : Type u_5) (N : Type u_6) [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_5 u_6)
The tensor product of two modules `M` and `N` over the same commutative semiring `R`. The localized notations are `M ⊗ N` and `M ⊗[R] N`, accessed by `open scoped TensorProduct`.
-
defdefined in Mathlib/NumberTheory/Padics/PadicNumbers.leancomplete
def Padic (p : ℕ) [Fact (Nat.Prime p)] : Type
def Padic (p : ℕ) [Fact (Nat.Prime p)] : Type
The `p`-adic numbers `ℚ_[p]` are the Cauchy completion of `ℚ` with respect to the `p`-adic norm.
-
theoremdefined in Mathlib/RingTheory/Etale/Basic.leancomplete
theorem Algebra.Etale.baseChange.{u, v, u_1} (R : Type u) (A : Type v) (B : Type u_1) [CommRing R] [CommRing A] [Algebra R A] [CommRing B] [Algebra R B] [Algebra.Etale R A] : Algebra.Etale B (TensorProduct R B A)
theorem Algebra.Etale.baseChange.{u, v, u_1} (R : Type u) (A : Type v) (B : Type u_1) [CommRing R] [CommRing A] [Algebra R A] [CommRing B] [Algebra R B] [Algebra.Etale R A] : Algebra.Etale B (TensorProduct R B A)
Étale is stable under base change.
-
theoremdefined in Mathlib/RingTheory/Etale/Field.leancomplete
theorem Algebra.Etale.iff_exists_algEquiv_prod.{u, u_1} (K : Type u_1) (A : Type u) [Field K] [CommRing A] [Algebra K A] : Algebra.Etale K A ↔ ∃ I, ∃ (_ : Finite I), ∃ Ai x x_1 x_2, ∀ (i : I), Module.Finite K (Ai i) ∧ Algebra.IsSeparable K (Ai i)
theorem Algebra.Etale.iff_exists_algEquiv_prod.{u, u_1} (K : Type u_1) (A : Type u) [Field K] [CommRing A] [Algebra K A] : Algebra.Etale K A ↔ ∃ I, ∃ (_ : Finite I), ∃ Ai x x_1 x_2, ∀ (i : I), Module.Finite K (Ai i) ∧ Algebra.IsSeparable K (Ai i)
`A` is étale over a field `K` if and only if `A` is a finite product of finite separable field extensions.
Maximum ramified prime. (LMFDB)
If K is a number field, the maximum ramified prime is simply the largest prime ramified in K. By convention, we take this to be 0 for \Q, the unique unramified extension of \Q.
Depends on: Definition 2.1 Definition 2.49
Lean code for Definition2.33●1 definition
Associated Lean declarations
-
NumberField.ramifiedPrimes[complete]
-
NumberField.ramifiedPrimes[complete]
-
defdefined in TauCeti/NumberTheory/NumberField/RamifiedPrimes.leancomplete
def NumberField.ramifiedPrimes.{u_1} (K : Type u_1) [Field K] : Set ℕ
def NumberField.ramifiedPrimes.{u_1} (K : Type u_1) [Field K] : Set ℕ
**The ramified rational primes of a number field.** The set of natural primes `p` such that `p` — as the ideal `span {p}` of `ℤ` — ramifies in the ring of integers of `K`. For a quadratic field `K`, its cardinality is the `t` of genus theory.
-
NumberField.maximalCMSubfield[complete] -
NumberField.isCMField_maximalCMSubfield_iff[complete] -
NumberField.IsCMField.le_maximalCMSubfield[complete] -
NumberField.IsCMField.eq_maximalCMSubfield[complete] -
NumberField.maximalCMSubfield_eq_maximalRealSubfield_iff[complete]
Maximal CM subfield. (LMFDB)
The maximal CM subfield of a number field is the largest subfield by degree which is a CM field.
Depends on: Definition 2.1 Definition 2.8 Definition 2.12
Lean code for Definition2.34●5 declarations
Associated Lean declarations
-
NumberField.maximalCMSubfield[complete]
-
NumberField.isCMField_maximalCMSubfield_iff[complete]
-
NumberField.IsCMField.le_maximalCMSubfield[complete]
-
NumberField.IsCMField.eq_maximalCMSubfield[complete]
-
NumberField.maximalCMSubfield_eq_maximalRealSubfield_iff[complete]
-
NumberField.maximalCMSubfield[complete] -
NumberField.isCMField_maximalCMSubfield_iff[complete] -
NumberField.IsCMField.le_maximalCMSubfield[complete] -
NumberField.IsCMField.eq_maximalCMSubfield[complete] -
NumberField.maximalCMSubfield_eq_maximalRealSubfield_iff[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/MaximalCMSubfield.leancomplete
def NumberField.maximalCMSubfield.{u_1} (K : Type u_1) [Field K] [NumberField K] : Subfield K
def NumberField.maximalCMSubfield.{u_1} (K : Type u_1) [Field K] [NumberField K] : Subfield K
The **maximal CM subfield** of a number field `K` (LMFDB `nf.maximal_cm_subfield`): the CM subfield of `K` of largest degree. It is defined as the subfield of the `x ∈ K` such that some `y ∈ K` satisfies `φ y = conj (φ x)` for every complex embedding `φ` of `K`; this is the largest subfield of `K` that is totally real or CM. If `K` has a CM subfield then this subfield is CM (`isCMField_maximalCMSubfield_iff`) and contains every CM subfield of `K` (`IsCMField.le_maximalCMSubfield`), so it is the unique CM subfield of largest degree (`IsCMField.eq_maximalCMSubfield`). Otherwise the LMFDB's maximal CM subfield does not exist, and this is the junk value `maximalRealSubfield K` (`maximalCMSubfield_eq_maximalRealSubfield_iff`).
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/MaximalCMSubfield.leancomplete
theorem NumberField.isCMField_maximalCMSubfield_iff.{u_1} {K : Type u_1} [Field K] [NumberField K] : NumberField.IsCMField ↥(NumberField.maximalCMSubfield K) ↔ ∃ E, NumberField.IsCMField ↥E
theorem NumberField.isCMField_maximalCMSubfield_iff.{u_1} {K : Type u_1} [Field K] [NumberField K] : NumberField.IsCMField ↥(NumberField.maximalCMSubfield K) ↔ ∃ E, NumberField.IsCMField ↥E
The maximal CM subfield of `K` is CM exactly when `K` has a CM subfield.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/MaximalCMSubfield.leancomplete
theorem NumberField.IsCMField.le_maximalCMSubfield.{u_1} {K : Type u_1} [Field K] [NumberField K] (E : Subfield K) [NumberField.IsCMField ↥E] : E ≤ NumberField.maximalCMSubfield K
theorem NumberField.IsCMField.le_maximalCMSubfield.{u_1} {K : Type u_1} [Field K] [NumberField K] (E : Subfield K) [NumberField.IsCMField ↥E] : E ≤ NumberField.maximalCMSubfield K
Every CM subfield of `K` lies in the maximal CM subfield.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/MaximalCMSubfield.leancomplete
theorem NumberField.IsCMField.eq_maximalCMSubfield.{u_1} {K : Type u_1} [Field K] [NumberField K] (E : Subfield K) [NumberField.IsCMField ↥E] (h : Module.finrank ℚ ↥(NumberField.maximalCMSubfield K) ≤ Module.finrank ℚ ↥E) : E = NumberField.maximalCMSubfield K
theorem NumberField.IsCMField.eq_maximalCMSubfield.{u_1} {K : Type u_1} [Field K] [NumberField K] (E : Subfield K) [NumberField.IsCMField ↥E] (h : Module.finrank ℚ ↥(NumberField.maximalCMSubfield K) ≤ Module.finrank ℚ ↥E) : E = NumberField.maximalCMSubfield K
**The maximal CM subfield is the CM subfield of largest degree.** A CM subfield of `K` whose degree is at least that of the maximal CM subfield is the maximal CM subfield.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/MaximalCMSubfield.leancomplete
theorem NumberField.maximalCMSubfield_eq_maximalRealSubfield_iff.{u_1} {K : Type u_1} [Field K] [NumberField K] : NumberField.maximalCMSubfield K = NumberField.maximalRealSubfield K ↔ ¬∃ E, NumberField.IsCMField ↥E
theorem NumberField.maximalCMSubfield_eq_maximalRealSubfield_iff.{u_1} {K : Type u_1} [Field K] [NumberField K] : NumberField.maximalCMSubfield K = NumberField.maximalRealSubfield K ↔ ¬∃ E, NumberField.IsCMField ↥E
The maximal CM subfield of `K` is the maximal real subfield of `K` exactly when `K` has no CM subfield.
-
minpoly[complete] -
minpoly.unique[complete] -
minpoly.irreducible[complete]
Minimal polynomial. (LMFDB)
The minimal polynomial of an element a in a number field K is the unique monic polynomial f(X)\in\Q[X] of minimal degree such that f(a)=0. It is necessarily irreducible over \Q.
Depends on: Definition 2.1
Lean code for Definition2.35●3 declarations
Associated Lean declarations
-
minpoly[complete]
-
minpoly.unique[complete]
-
minpoly.irreducible[complete]
-
minpoly[complete] -
minpoly.unique[complete] -
minpoly.irreducible[complete]
-
defdefined in Mathlib/FieldTheory/Minpoly/Basic.leancomplete
def minpoly.{u_1, u_2} (A : Type u_1) {B : Type u_2} [CommRing A] [Ring B] [Algebra A B] (x : B) : Polynomial A
def minpoly.{u_1, u_2} (A : Type u_1) {B : Type u_2} [CommRing A] [Ring B] [Algebra A B] (x : B) : Polynomial A
Suppose `x : B`, where `B` is an `A`-algebra. The minimal polynomial `minpoly A x` of `x` is a monic polynomial with coefficients in `A` of smallest degree that has `x` as its root, if such exists (`IsIntegral A x`) or zero otherwise. For example, if `V` is a `𝕜`-vector space for some field `𝕜` and `f : V →ₗ[𝕜] V` then the minimal polynomial of `f` is `minpoly 𝕜 f`.
-
theoremdefined in Mathlib/FieldTheory/Minpoly/Field.leancomplete
theorem minpoly.unique.{u_1, u_2} (A : Type u_1) {B : Type u_2} [Field A] [Ring B] [Algebra A B] (x : B) {p : Polynomial A} (pmonic : p.Monic) (hp : (Polynomial.aeval x) p = 0) (pmin : ∀ (q : Polynomial A), q.Monic → (Polynomial.aeval x) q = 0 → p.degree ≤ q.degree) : p = minpoly A x
theorem minpoly.unique.{u_1, u_2} (A : Type u_1) {B : Type u_2} [Field A] [Ring B] [Algebra A B] (x : B) {p : Polynomial A} (pmonic : p.Monic) (hp : (Polynomial.aeval x) p = 0) (pmin : ∀ (q : Polynomial A), q.Monic → (Polynomial.aeval x) q = 0 → p.degree ≤ q.degree) : p = minpoly A x
The minimal polynomial of an element `x` is uniquely characterized by its defining property: if there is another monic polynomial of minimal degree that has `x` as a root, then this polynomial is equal to the minimal polynomial of `x`. See also `minpoly.IsIntegrallyClosed.Minpoly.unique` which relaxes the assumptions on `A` in exchange for stronger assumptions on `B`.
-
theoremdefined in Mathlib/FieldTheory/Minpoly/Basic.leancomplete
theorem minpoly.irreducible.{u_1, u_2} {A : Type u_1} {B : Type u_2} [CommRing A] [Ring B] [Algebra A B] {x : B} [IsDomain A] [IsDomain B] (hx : IsIntegral A x) : Irreducible (minpoly A x)
theorem minpoly.irreducible.{u_1, u_2} {A : Type u_1} {B : Type u_2} [CommRing A] [Ring B] [Algebra A B] {x : B} [IsDomain A] [IsDomain B] (hx : IsIntegral A x) : Irreducible (minpoly A x)
A minimal polynomial is irreducible.
Minimal sibling. (LMFDB)
The minimal sibling of a number field is a sibling that is minimal with respect to the following quantities considered in order:
-
its degree
-
the T-number of its Galois group
-
the absolute value of its discriminant
-
the vector
(a_0, a_1, \ldots, a_{n-1})of coefficients of its normalized defining polynomial
x^n+a_{n-1} x^{n-1}+\cdots +a_0
Depends on: Definition 2.1 Definition 2.12 Definition 2.15 Definition 2.21 Definition 2.61
Monogenic field. (LMFDB)
A number field K is monogenic if its ring of integers \mathcal{O}_K equals \Z[\alpha] for some \alpha \in \mathcal{O}_K.
Depends on: Definition 2.1 Definition 2.56
Lean code for Definition2.37●1 definition
Associated Lean declarations
-
TauCeti.NumberField.IsMonogenic[complete]
-
TauCeti.NumberField.IsMonogenic[complete]
-
defdefined in TauCeti/NumberTheory/NumberField/Monogenic.leancomplete
def TauCeti.NumberField.IsMonogenic.{u_2} (K : Type u_2) [Field K] : Prop
def TauCeti.NumberField.IsMonogenic.{u_2} (K : Type u_2) [Field K] : Prop
A field `K` is **monogenic** when its ring of integers is generated by a single algebraic integer as a `ℤ`-algebra, that is `𝓞 K = ℤ[θ]`. Only `[Field K]` is assumed, because `𝓞 K` needs no more than that; the intended case, and the one every result below is about, is a number field.
Monomial order. (LMFDB)
A monomial order in a number field K is an order of the form \Z[\alpha], where \alpha is an element of K. The element \alpha is necessarily both an algebraic integer and a primitive element for K.
Depends on: Definition 2.1 Definition 2.42 Definition 2.56
Lean code for Definition2.38●2 definitions
Associated Lean declarations
-
structuredefined in TauCeti/NumberTheory/NumberField/Global/Orders/Basic.leancomplete
structure TauCeti.GlobalNumberFields.NumberFieldOrder.{u} (K : Type u) [Field K] [NumberField K] : Type u
structure TauCeti.GlobalNumberFields.NumberFieldOrder.{u} (K : Type u) [Field K] [NumberField K] : Type u
An order in a number field `K`: a subring containing `ℤ`, finite as a `ℤ`-module, whose `ℚ`-span is all of `K`.
Fields
toSubalgebra : Subalgebra ℤ K
The order as a `ℤ`-subalgebra of its ambient number field.
finite : Module.Finite ℤ ↥self.toSubalgebra
An order is finitely generated as a `ℤ`-module.
spans : Submodule.span ℚ ↑self.toSubalgebra = ⊤
An order has full rank in its ambient number field.
-
defdefined in TauCeti/NumberTheory/NumberField/Index/Basic.leancomplete
def TauCeti.NumberField.IntegralPrimitiveElement.adjoin.{u_1} {K : Type u_1} [Field K] [NumberField K] (θ : TauCeti.NumberField.IntegralPrimitiveElement K) : Subalgebra ℤ (NumberField.RingOfIntegers K)
def TauCeti.NumberField.IntegralPrimitiveElement.adjoin.{u_1} {K : Type u_1} [Field K] [NumberField K] (θ : TauCeti.NumberField.IntegralPrimitiveElement K) : Subalgebra ℤ (NumberField.RingOfIntegers K)
The `ℤ`-subalgebra of `𝓞 K` generated by an integral primitive element.
-
NumberField.IsTotallyPositive[complete] -
NumberField.NarrowClassGroup[complete] -
NumberField.NarrowClassGroup.toClassGroup[complete] -
NumberField.narrowPrincipalSubgroup[complete]
Narrow class group. (LMFDB)
The narrow class group (also called the strict class group) of a number field K is the group of equivalence classes of ideals, given by the quotient of the multiplicative group of all fractional ideals of K by the subgroup of principal fractional ideals which have a totally positive generator. It is a
finite abelian group whose order is the narrow class number.
Depends on: Definition 2.1 Definition 2.66
Lean code for Definition2.39●4 definitions
Associated Lean declarations
-
NumberField.IsTotallyPositive[complete]
-
NumberField.NarrowClassGroup[complete]
-
NumberField.NarrowClassGroup.toClassGroup[complete]
-
NumberField.narrowPrincipalSubgroup[complete]
-
NumberField.IsTotallyPositive[complete] -
NumberField.NarrowClassGroup[complete] -
NumberField.NarrowClassGroup.toClassGroup[complete] -
NumberField.narrowPrincipalSubgroup[complete]
-
defdefined in TauCeti/NumberTheory/NumberField/TotallyPositive.leancomplete
def NumberField.IsTotallyPositive.{u_1} {K : Type u_1} [Field K] (x : K) : Prop
def NumberField.IsTotallyPositive.{u_1} {K : Type u_1} [Field K] (x : K) : Prop
An element of a number field is **totally positive** when it is strictly positive under every real embedding `K →+* ℝ` (equivalently, at every real infinite place `w`). For a totally complex field the condition is vacuous; the content is at the real places.
-
defdefined in TauCeti/NumberTheory/NumberField/NarrowClassGroup/Basic.leancomplete
def NumberField.NarrowClassGroup.{u_1} (K : Type u_1) [Field K] [NumberField K] : Type u_1
def NumberField.NarrowClassGroup.{u_1} (K : Type u_1) [Field K] [NumberField K] : Type u_1
The **narrow class group** `Cl⁺(K)`: invertible fractional ideals of `𝓞 K` modulo the principal ones with a totally positive generator.
-
defdefined in TauCeti/NumberTheory/NumberField/NarrowClassGroup/Basic.leancomplete
def NumberField.NarrowClassGroup.toClassGroup.{u_1} {K : Type u_1} [Field K] [NumberField K] : NumberField.NarrowClassGroup K →* ClassGroup (NumberField.RingOfIntegers K)
def NumberField.NarrowClassGroup.toClassGroup.{u_1} {K : Type u_1} [Field K] [NumberField K] : NumberField.NarrowClassGroup K →* ClassGroup (NumberField.RingOfIntegers K)
The **surjection `Cl⁺(K) → Cl(K)`** onto the ordinary class group, forgetting the positivity condition on generators.
-
defdefined in TauCeti/NumberTheory/NumberField/NarrowClassGroup/Basic.leancomplete
def NumberField.narrowPrincipalSubgroup.{u_1} (K : Type u_1) [Field K] [NumberField K] : Subgroup (FractionalIdeal (nonZeroDivisors (NumberField.RingOfIntegers K)) K)ˣ
def NumberField.narrowPrincipalSubgroup.{u_1} (K : Type u_1) [Field K] [NumberField K] : Subgroup (FractionalIdeal (nonZeroDivisors (NumberField.RingOfIntegers K)) K)ˣ
The subgroup of `(FractionalIdeal (𝓞 K)⁰ K)ˣ` of **principal fractional ideals with a totally positive generator**: the image of `totallyPositiveUnits` under `toPrincipalIdeal`. The narrow class group quotients by this subgroup.
Narrow class number. (LMFDB)
The narrow class number (also called the strict class number) of an algebraic number field is the order of its narrow class group.
Since the ordinary ideal class group is a quotient of the narrow class group, the narrow class number is a multiple of the class number. Moreover, the ratio is a power of 2. The two class numbers are the same in many cases, for example when the number field is totally complex.
Depends on: Definition 2.1 Definition 2.6 Definition 2.24 Definition 2.39 Definition 2.65
Lean code for Definition2.40●1 definition
Associated Lean declarations
-
NumberField.NarrowClassGroup[complete]
-
NumberField.NarrowClassGroup[complete]
-
defdefined in TauCeti/NumberTheory/NumberField/NarrowClassGroup/Basic.leancomplete
def NumberField.NarrowClassGroup.{u_1} (K : Type u_1) [Field K] [NumberField K] : Type u_1
def NumberField.NarrowClassGroup.{u_1} (K : Type u_1) [Field K] [NumberField K] : Type u_1
The **narrow class group** `Cl⁺(K)`: invertible fractional ideals of `𝓞 K` modulo the principal ones with a totally positive generator.
- No associated Lean code or declarations.
Number field nicknames. (LMFDB)
The LMFDB supports nicknames, short human-readable names for various fields. Examples include:
-
"
\texttt{Q}", for the rationals\mathbb{Q}, -
"
\texttt{Qi}", for\mathbb{Q}(i), -
"
\texttt{QsqrtN}", for\mathbb{Q}(\sqrt{N}), as in Qsqrt-5 for\mathbb{Q}(\sqrt{-5}), -
"
\texttt{QzetaN}", for\mathbb{Q}(\zeta_N), where\zeta_Nis a primitiveNth root of unity, -
"
\texttt{QzetaN+}", for\mathbb{Q}(\zeta_N)^+; i.e. the maximal real subfield of\mathbb{Q}(\zeta_N)(equivalently, the field\mathbb{Q}(\zeta_N + \zeta_N^{-1})). -
more generally, "
\texttt{Q(s1, s2, ... ,sk)}", for the field generated by algebraic numberss_1,s_2,\dots,s_k.
In the general syntax, each \texttt{si} may be built using the functions \texttt{sqrt} (or \texttt{root}) and \texttt{cbrt}, together with the usual arithmetic operations \texttt{+}, \texttt{-}, \texttt{*}, \texttt{/}, ^, and parentheses. The usual constants \texttt{i}, \texttt{zetaN} and \texttt{phi} (for (1 + \sqrt{5})/2) are also supported. Some examples include: "\texttt{Q(sqrt2,sqrt3)}", "\texttt{Q(sqrt(1+sqrt2))}","\texttt{Q(cbrt(1+zeta7))}", and "\texttt{Q(5}^\texttt{(1/12))}".
Order. (LMFDB)
An order in a number field K is a subring of K which is also a lattice in K. Every order in K is contained in the ring of integers of K, which is itself an order in K; for this reason, the ring of integers is sometimes called the maximal order.
Example: \Z[\sqrt{5}] is an order in K=\Q(\sqrt{5}). However, it is not maximal, since the maximal order (i.e. ring of integers) of K is \Z\left[\frac{1+\sqrt{5}}2\right].
Depends on: Definition 2.1
Lean code for Definition2.42●2 definitions
Associated Lean declarations
-
structuredefined in TauCeti/NumberTheory/NumberField/Global/Orders/Basic.leancomplete
structure TauCeti.GlobalNumberFields.NumberFieldOrder.{u} (K : Type u) [Field K] [NumberField K] : Type u
structure TauCeti.GlobalNumberFields.NumberFieldOrder.{u} (K : Type u) [Field K] [NumberField K] : Type u
An order in a number field `K`: a subring containing `ℤ`, finite as a `ℤ`-module, whose `ℚ`-span is all of `K`.
Fields
toSubalgebra : Subalgebra ℤ K
The order as a `ℤ`-subalgebra of its ambient number field.
finite : Module.Finite ℤ ↥self.toSubalgebra
An order is finitely generated as a `ℤ`-module.
spans : Submodule.span ℚ ↑self.toSubalgebra = ⊤
An order has full rank in its ambient number field.
-
defdefined in TauCeti/NumberTheory/NumberField/Global/Orders/Basic.leancomplete
def TauCeti.GlobalNumberFields.maximalNumberFieldOrder.{u} (K : Type u) [Field K] [NumberField K] : TauCeti.GlobalNumberFields.NumberFieldOrder K
def TauCeti.GlobalNumberFields.maximalNumberFieldOrder.{u} (K : Type u) [Field K] [NumberField K] : TauCeti.GlobalNumberFields.NumberFieldOrder K
The maximal order of a number field, namely its ring of integers.
p-adic completion of a number field. (LMFDB)
Let K be a number field, \mathcal{O}_K its ring of integers, \mathfrak{P} a non-zero prime ideal of \mathcal{O}_K, and p\in \Z\cap \mathfrak{P}.
There are a couple of ways to construct K_{\mathfrak{P}}, the p-adic completion of K at \mathfrak{P}.
First, we can take the inverse limit
\lim_{\leftarrow} \mathcal{O}_K/\mathfrak{P}^n
which is an integral domain. Its field of fractions is K_{\mathfrak{P}}.
Second, since \mathcal{O}_K is a Dedekind domain, if \alpha\in K^* the fractional ideal
\langle \alpha\rangle = \prod_{\mathfrak{Q}} \mathfrak{Q}^{e_{\mathfrak{Q}}}
where the product is over all non-zero prime ideals \mathfrak{Q}, all e_{\mathfrak{Q}}\in\Z, and all but finitely many e_{\mathfrak{Q}}=0. Then we define
v_{\mathfrak{P}}(\alpha)=e_{\mathfrak{P}}, and then the metric d on K by
d(\alpha, \beta) = p^{-v_{\mathfrak{P}}(\alpha-\beta)} if \alpha\neq \beta and d(\alpha,\alpha)=0. Then the completion of K with respect to this metric is K_{\mathfrak{P}}.
If K=\Q(a), and f\in\Q[x] is the monic irreducible polynomial for a over \Q, then adjoining the roots of f to \Q_p provide another means of constructing the completions.
Finally, the local algebra of K, \prod_{j=1}^g K_j is a product of the p-adic completions of K. The p-adic completions of K correspond to the nonarchimedian places of K.
Depends on: Definition 1.107 Definition 2.1 Definition 2.32 Definition 2.47 Definition 1.133 Definition 1.135 Definition 1.137 Definition 1.140 Definition 1.142
Lean code for Definition2.43●2 definitions
Associated Lean declarations
-
structuredefined in Mathlib/RingTheory/DedekindDomain/AdicValuation.leancomplete
structure IsDedekindDomain.HeightOneSpectrum.adicCompletion.{u_1, u_2} {R : Type u_1} [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K] [Algebra R K] [IsFractionRing R K] (v : IsDedekindDomain.HeightOneSpectrum R) : Type u_2
structure IsDedekindDomain.HeightOneSpectrum.adicCompletion.{u_1, u_2} {R : Type u_1} [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K] [Algebra R K] [IsFractionRing R K] (v : IsDedekindDomain.HeightOneSpectrum R) : Type u_2
The completion of `K` with respect to its `v`-adic valuation, defined as a one-field structure wrapping the uniform-space completion `(v.valuation K).Completion`.
Fields
toCompletion : (IsDedekindDomain.HeightOneSpectrum.valuation K v).Completion
The underlying element of the completion `(v.valuation K).Completion`.
-
defdefined in Mathlib/RingTheory/DedekindDomain/AdicValuation.leancomplete
def IsDedekindDomain.HeightOneSpectrum.valuation.{u_1, u_2} {R : Type u_1} [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K] [Algebra R K] [IsFractionRing R K] (v : IsDedekindDomain.HeightOneSpectrum R) : Valuation K (WithZero (Multiplicative ℤ))
def IsDedekindDomain.HeightOneSpectrum.valuation.{u_1, u_2} {R : Type u_1} [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K] [Algebra R K] [IsFractionRing R K] (v : IsDedekindDomain.HeightOneSpectrum R) : Valuation K (WithZero (Multiplicative ℤ))
The `v`-adic valuation of `x : K` is the valuation of `r` divided by the valuation of `s`, where `r` and `s` are chosen so that `x = r/s`.
Place of a number field. (LMFDB)
A place v of a field K is an equivalence class of non-trivial absolute values on K. As with absolute values, places may be classified as archimedean or nonarchimedean, since these properties are preserved under equivalence.
Each place induces a distance metric that gives K a metric topology. The completion K_v of K at v is the completion of this metric space, which is also a topological field.
When K is a number field each nonarchimedean place arises from the valuation associated to each prime ideal in the ring of integers of K, while archimedean places arise from embeddings of K into the complex numbers: each real embedding determines a real place, and each conjugate pair of complex embeddings determines a complex place. The archimedean places of a number field are also called infinite places.
Depends on: Definition 2.1 Definition 2.4 Definition 2.9 Definition 2.51 Definition 2.56 Definition 1.145
-
NumberField.IsPolredabs[complete] -
NumberField.polredabs[complete] -
NumberField.IsDefiningPolynomial[complete] -
NumberField.exists_isPolredabs[complete] -
NumberField.IsPolredabs.eq[complete]
Canonical defining polynomial for number fields. (LMFDB)
Every number field K can be represented as K = \Q[X]/P(x) for some monic P\in\Z[X], called a defining polynomial for K. Among all such defining polynomials, we define the reduced defining polynomial as follows.
Recall that for a monic polynomial P(x) = \prod_i(x-\alpha_i), the T_2 norm of P is T_2(P) = \sum_i |\alpha_i|^2.
-
Let
L_0be the list of (monic integral) defining polynomials forKthat are minimal with respect to theT_2norm. -
Let
L_1be the sublist ofL_0of polynomials whose discriminant has minimal absolute value. -
For a polynomial
P = x^n + a_1x^{n-1} + \dots + a_n, letS(P) = (|a_1|,a_1,\dots,|a_n|,a_n), and order the polynomials inL_1by the lexicographic order of the vectorsS(P).
Then the reduced defining polynomial of K is the first polynomial in L_1 with respect to this order.
The pari/gp function <code>polredabs()</code> computes reduced defining polynomials, which are also commonly called <code>polredabs</code> polynomials.
Depends on: Definition 2.1 Definition 2.46
Lean code for Definition2.45●5 declarations
Associated Lean declarations
-
NumberField.IsPolredabs[complete]
-
NumberField.polredabs[complete]
-
NumberField.IsDefiningPolynomial[complete]
-
NumberField.exists_isPolredabs[complete]
-
NumberField.IsPolredabs.eq[complete]
-
NumberField.IsPolredabs[complete] -
NumberField.polredabs[complete] -
NumberField.IsDefiningPolynomial[complete] -
NumberField.exists_isPolredabs[complete] -
NumberField.IsPolredabs.eq[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/Polredabs.leancomplete
def NumberField.IsPolredabs.{u_1} (K : Type u_1) [Field K] [NumberField K] (P : Polynomial ℤ) : Prop
def NumberField.IsPolredabs.{u_1} (K : Type u_1) [Field K] [NumberField K] (P : Polynomial ℤ) : Prop
`P` is the **reduced defining polynomial** of a number field `K` (LMFDB `nf.polredabs`), the output of PARI's `polredabs`: a defining polynomial of `K` that is least among the defining polynomials of `K` for the lexicographic order on `(T₂(P), |disc P|, S(P))`. That is, `P` has minimal `T₂` norm, then minimal absolute discriminant among those, and comes first among those for the lexicographic order on `S(P)`. It exists (`exists_isPolredabs`) and is unique (`IsPolredabs.eq`).
-
defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/Polredabs.leancomplete
def NumberField.polredabs.{u_1} (K : Type u_1) [Field K] [NumberField K] : Polynomial ℤ
def NumberField.polredabs.{u_1} (K : Type u_1) [Field K] [NumberField K] : Polynomial ℤ
The **reduced defining polynomial** of a number field `K` (LMFDB `nf.polredabs`), the polynomial `P` with `IsPolredabs K P`.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/Polredabs.leancomplete
def NumberField.IsDefiningPolynomial.{u_1} (K : Type u_1) [Field K] [NumberField K] (P : Polynomial ℤ) : Prop
def NumberField.IsDefiningPolynomial.{u_1} (K : Type u_1) [Field K] [NumberField K] (P : Polynomial ℤ) : Prop
A **defining polynomial** of a number field `K` (LMFDB `nf.polredabs`): a monic polynomial `P ∈ ℤ[X]` such that `K ≅ ℚ[X] / (P)`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/Polredabs.leancomplete
theorem NumberField.exists_isPolredabs.{u_1} (K : Type u_1) [Field K] [NumberField K] : ∃ P, NumberField.IsPolredabs K P
theorem NumberField.exists_isPolredabs.{u_1} (K : Type u_1) [Field K] [NumberField K] : ∃ P, NumberField.IsPolredabs K P
Every number field has a reduced defining polynomial.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/Polredabs.leancomplete
theorem NumberField.IsPolredabs.eq.{u_1} {K : Type u_1} [Field K] [NumberField K] {P Q : Polynomial ℤ} (hP : NumberField.IsPolredabs K P) (hQ : NumberField.IsPolredabs K Q) : P = Q
theorem NumberField.IsPolredabs.eq.{u_1} {K : Type u_1} [Field K] [NumberField K] {P Q : Polynomial ℤ} (hP : NumberField.IsPolredabs K P) (hQ : NumberField.IsPolredabs K Q) : P = Q
The reduced defining polynomial of a number field is unique.
Discriminant of polynomial. (LMFDB)
The discriminant of a monic polynomial f(x) = \prod_{i=1}^d (x - \alpha_i) is the quantity
\Delta = \prod_{i < j} (\alpha_i - \alpha_j)^2.
If f has integral coefficients, K is the number field defined by f and \alpha is a root of f in K, then the discriminant D of K divides \Delta and the ratio \Delta/D is the square of the index of \Z[\alpha] in the ring of integers of K.
Depends on: Definition 2.1 Definition 2.15 Definition 2.56
Lean code for Definition2.46●1 definition
Associated Lean declarations
-
Polynomial.discr[complete]
-
Polynomial.discr[complete]
-
defdefined in Mathlib/RingTheory/Polynomial/Resultant/Basic.leancomplete
def Polynomial.discr.{u_1} {R : Type u_1} [CommRing R] (f : Polynomial R) : R
def Polynomial.discr.{u_1} {R : Type u_1} [CommRing R] (f : Polynomial R) : R
The discriminant of a polynomial, defined as the determinant of `f.sylvesterDeriv` modified by a sign. The sign is chosen so polynomials over `ℝ` with all roots real have non-negative discriminant.
-
IsDedekindDomain.HeightOneSpectrum[complete] -
Ideal.LiesOver[complete] -
Ideal.under[complete] -
Ideal.primesOver[complete]
Prime of a number field. (LMFDB)
A prime \mathfrak p of a number field K is a nonzero prime ideal of its ring of integers \mathcal O_K.
The ideal \mathfrak p \cap\mathcal O_K is a nonzero prime ideal of \Z (a prime of \Q), which is necessarily a principal ideal (p) for some prime number p. The prime \mathfrak p is then said to be a prime above p.
Depends on: Definition 2.1 Definition 2.56 Definition 1.145
Lean code for Definition2.47●4 definitions
Associated Lean declarations
-
IsDedekindDomain.HeightOneSpectrum[complete]
-
Ideal.LiesOver[complete]
-
Ideal.under[complete]
-
Ideal.primesOver[complete]
-
IsDedekindDomain.HeightOneSpectrum[complete] -
Ideal.LiesOver[complete] -
Ideal.under[complete] -
Ideal.primesOver[complete]
-
structuredefined in Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.leancomplete
structure IsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1
structure IsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1
The height one prime spectrum of a Dedekind domain `R` is the type of nonzero prime ideals of `R`. Note that this equals the maximal spectrum if `R` has Krull dimension 1.
Fields
asIdeal : Ideal R
isPrime : self.asIdeal.IsPrime
ne_bot : self.asIdeal ≠ ⊥
-
classdefined in Mathlib/RingTheory/Ideal/Over.leancomplete
class Ideal.LiesOver.{u_2, u_3} {A : Type u_2} [CommSemiring A] {B : Type u_3} [Semiring B] [Algebra A B] (P : Ideal B) (p : Ideal A) : Prop
class Ideal.LiesOver.{u_2, u_3} {A : Type u_2} [CommSemiring A] {B : Type u_3} [Semiring B] [Algebra A B] (P : Ideal B) (p : Ideal A) : Prop
`P` lies over `p` if `p` is the preimage of `P` by the `algebraMap`.
Methods
over : p = Ideal.under A P
-
abbrevdefined in Mathlib/RingTheory/Ideal/Over.leancomplete
abbrev Ideal.under.{u_2, u_3} (A : Type u_2) [CommSemiring A] {B : Type u_3} [Semiring B] [Algebra A B] (P : Ideal B) : Ideal A
abbrev Ideal.under.{u_2, u_3} (A : Type u_2) [CommSemiring A] {B : Type u_3} [Semiring B] [Algebra A B] (P : Ideal B) : Ideal A
The ideal obtained by pulling back the ideal `P` from `B` to `A`.
-
defdefined in Mathlib/RingTheory/Ideal/Over.leancomplete
def Ideal.primesOver.{u_2, u_3} {A : Type u_2} [CommSemiring A] (p : Ideal A) (B : Type u_3) [Semiring B] [Algebra A B] : Set (Ideal B)
def Ideal.primesOver.{u_2, u_3} {A : Type u_2} [CommSemiring A] (p : Ideal A) (B : Type u_3) [Semiring B] [Algebra A B] : Set (Ideal B)
The set of all prime ideals in `B` that lie over an ideal `p` of `A`.
-
UniqueFactorizationMonoid.radical[complete] -
NumberField.discr[complete] -
Int.radical_eq_prod_primeFactors[complete] -
NumberField.not_dvd_discr_iff_isUnramifiedIn[complete]
Radical discriminant of a number field. (LMFDB)
The radical discriminant of a number field K is the product of the primes dividing the discriminant of K, i.e. the product of the primes which ramify in K.
Depends on: Definition 2.1 Definition 2.15
Lean code for Definition2.48●4 declarations
Associated Lean declarations
-
UniqueFactorizationMonoid.radical[complete]
-
NumberField.discr[complete]
-
Int.radical_eq_prod_primeFactors[complete]
-
NumberField.not_dvd_discr_iff_isUnramifiedIn[complete]
-
UniqueFactorizationMonoid.radical[complete] -
NumberField.discr[complete] -
Int.radical_eq_prod_primeFactors[complete] -
NumberField.not_dvd_discr_iff_isUnramifiedIn[complete]
-
defdefined in Mathlib/RingTheory/Radical/Basic.leancomplete
def UniqueFactorizationMonoid.radical.{u_1} {M : Type u_1} [CommMonoidWithZero M] [NormalizationMonoid M] [UniqueFactorizationMonoid M] (a : M) : M
def UniqueFactorizationMonoid.radical.{u_1} {M : Type u_1} [CommMonoidWithZero M] [NormalizationMonoid M] [UniqueFactorizationMonoid M] (a : M) : M
The radical of an element `a` in a unique factorization monoid is the product of the prime factors of `a`.
-
abbrevdefined in Mathlib/NumberTheory/NumberField/Discriminant/Defs.leancomplete
abbrev NumberField.discr.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℤ
abbrev NumberField.discr.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℤ
The absolute discriminant of a number field.
-
theoremdefined in Mathlib/RingTheory/Radical/NatInt.leancomplete
theorem Int.radical_eq_prod_primeFactors {z : ℤ} : UniqueFactorizationMonoid.radical z = ↑(∏ p ∈ z.natAbs.primeFactors, p)
theorem Int.radical_eq_prod_primeFactors {z : ℤ} : UniqueFactorizationMonoid.radical z = ↑(∏ p ∈ z.natAbs.primeFactors, p)
-
theoremdefined in Mathlib/NumberTheory/NumberField/Discriminant/Different.leancomplete
theorem NumberField.not_dvd_discr_iff_isUnramifiedIn.{u_1, u_2} (K : Type u_1) (𝒪 : Type u_2) [Field K] [NumberField K] [CommRing 𝒪] [Algebra 𝒪 K] [IsIntegralClosure 𝒪 ℤ K] {p : ℤ} (hp : Prime p) : ¬p ∣ NumberField.discr K ↔ Algebra.IsUnramifiedIn 𝒪 (Ideal.span {p})
theorem NumberField.not_dvd_discr_iff_isUnramifiedIn.{u_1, u_2} (K : Type u_1) (𝒪 : Type u_2) [Field K] [NumberField K] [CommRing 𝒪] [Algebra 𝒪 K] [IsIntegralClosure 𝒪 ℤ K] {p : ℤ} (hp : Prime p) : ¬p ∣ NumberField.discr K ↔ Algebra.IsUnramifiedIn 𝒪 (Ideal.span {p})
A prime `p` does not divide `discr K` if and only if `p` (as the ideal `span {p}`) is unramified in the ring of integers `𝒪`. Also see `not_dvd_discr_iff_forall_liesOver` and `not_dvd_discr_iff_forall_mem` for variants whose RHS does not use `Algebra.IsUnramifiedIn`.
-
Algebra.IsUnramifiedIn[complete] -
Algebra.isUnramifiedIn_iff_forall_ramificationIdx_eq_one[complete] -
Ideal.ramificationIdx[complete] -
Ideal.IsDedekindDomain.ramificationIdx_eq_normalizedFactors_count[complete] -
NumberField.not_dvd_discr_iff_isUnramifiedIn[complete]
Ramified (rational) prime of a number field. (LMFDB)
A prime integer p is a ramified prime of a number field K if, when the ideal generated by p is factored into prime ideals in the ring of integers
\mathcal{O}_K of K,
p\mathcal{O}_K= \mathcal{P_1}^{e_1}\cdots \mathcal{P_k}^{e_k},
there is an i such that e_i\geq 2.
The ramified primes of K are the primes dividing the discriminant of K.
Lean code for Definition2.49●5 declarations
Associated Lean declarations
-
Algebra.IsUnramifiedIn[complete]
-
Algebra.isUnramifiedIn_iff_forall_ramificationIdx_eq_one[complete]
-
Ideal.ramificationIdx[complete]
-
Ideal.IsDedekindDomain.ramificationIdx_eq_normalizedFactors_count[complete]
-
NumberField.not_dvd_discr_iff_isUnramifiedIn[complete]
-
Algebra.IsUnramifiedIn[complete] -
Algebra.isUnramifiedIn_iff_forall_ramificationIdx_eq_one[complete] -
Ideal.ramificationIdx[complete] -
Ideal.IsDedekindDomain.ramificationIdx_eq_normalizedFactors_count[complete] -
NumberField.not_dvd_discr_iff_isUnramifiedIn[complete]
-
defdefined in Mathlib/RingTheory/Unramified/Locus.leancomplete
def Algebra.IsUnramifiedIn.{u_1, u_2} {R : Type u_1} [CommRing R] (A : Type u_2) [CommRing A] [Algebra R A] (𝔭 : Ideal R) : Prop
def Algebra.IsUnramifiedIn.{u_1, u_2} {R : Type u_1} [CommRing R] (A : Type u_2) [CommRing A] [Algebra R A] (𝔭 : Ideal R) : Prop
A prime `𝔭` of `R` is unramified in `A` if every prime ideal `𝔓` of `A` lying over `𝔭` is unramified.
-
theoremdefined in Mathlib/NumberTheory/RamificationInertia/Unramified.leancomplete
theorem Algebra.isUnramifiedIn_iff_forall_ramificationIdx_eq_one.{u_1, u_2} {R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] [IsDomain R] [Module.Finite ℤ R] [CharZero R] [Algebra.EssFiniteType R S] [Algebra.IsIntegral R S] {𝔭 : Ideal R} : Algebra.IsUnramifiedIn S 𝔭 ↔ ∀ (𝔓 : Ideal S) [𝔓.IsPrime], 𝔓.LiesOver 𝔭 → 𝔓.ramificationIdx R = 1
theorem Algebra.isUnramifiedIn_iff_forall_ramificationIdx_eq_one.{u_1, u_2} {R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] [IsDomain R] [Module.Finite ℤ R] [CharZero R] [Algebra.EssFiniteType R S] [Algebra.IsIntegral R S] {𝔭 : Ideal R} : Algebra.IsUnramifiedIn S 𝔭 ↔ ∀ (𝔓 : Ideal S) [𝔓.IsPrime], 𝔓.LiesOver 𝔭 → 𝔓.ramificationIdx R = 1
A nonzero ideal of `R` is unramified in `S` if and only if every prime ideal of `S` lying over it has ramification index `1`.
-
defdefined in Mathlib/RingTheory/RamificationInertia/Ramification.leancomplete
def Ideal.ramificationIdx.{u_1, u_2} {S : Type u_1} [CommRing S] (q : Ideal S) (R : Type u_2) [CommRing R] [Algebra R S] : ℕ
def Ideal.ramificationIdx.{u_1, u_2} {S : Type u_1} [CommRing S] (q : Ideal S) (R : Type u_2) [CommRing R] [Algebra R S] : ℕ
Let `S/R` be an extension of rings, and let `q` be a prime ideal of `S` lying over a prime ideal `p` of `R`. Let `Sq` be the localization of `S` and `q`, and let `pSq` be the image of `p` in `Sq`. Then the ramification index of `q` over `R` is defined to be the length of the quotient `Sq/pSq` as an `Sq`-module. When `q` is not prime, we use a junk value of `0`. This will eventually replace the existing definition of `Ideal.ramificationIdx'`.
-
theoremdefined in Mathlib/RingTheory/RamificationInertia/Ramification.leancomplete
theorem Ideal.IsDedekindDomain.ramificationIdx_eq_normalizedFactors_count.{u_1, u_2} {R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] (p : Ideal R) (q : Ideal S) [IsDedekindDomain S] [q.LiesOver p] (hp0 : Ideal.map (algebraMap R S) p ≠ ⊥) : q.ramificationIdx R = Multiset.count q (UniqueFactorizationMonoid.normalizedFactors (Ideal.map (algebraMap R S) p))
theorem Ideal.IsDedekindDomain.ramificationIdx_eq_normalizedFactors_count.{u_1, u_2} {R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] (p : Ideal R) (q : Ideal S) [IsDedekindDomain S] [q.LiesOver p] (hp0 : Ideal.map (algebraMap R S) p ≠ ⊥) : q.ramificationIdx R = Multiset.count q (UniqueFactorizationMonoid.normalizedFactors (Ideal.map (algebraMap R S) p))
-
theoremdefined in Mathlib/NumberTheory/NumberField/Discriminant/Different.leancomplete
theorem NumberField.not_dvd_discr_iff_isUnramifiedIn.{u_1, u_2} (K : Type u_1) (𝒪 : Type u_2) [Field K] [NumberField K] [CommRing 𝒪] [Algebra 𝒪 K] [IsIntegralClosure 𝒪 ℤ K] {p : ℤ} (hp : Prime p) : ¬p ∣ NumberField.discr K ↔ Algebra.IsUnramifiedIn 𝒪 (Ideal.span {p})
theorem NumberField.not_dvd_discr_iff_isUnramifiedIn.{u_1, u_2} (K : Type u_1) (𝒪 : Type u_2) [Field K] [NumberField K] [CommRing 𝒪] [Algebra 𝒪 K] [IsIntegralClosure 𝒪 ℤ K] {p : ℤ} (hp : Prime p) : ¬p ∣ NumberField.discr K ↔ Algebra.IsUnramifiedIn 𝒪 (Ideal.span {p})
A prime `p` does not divide `discr K` if and only if `p` (as the ideal `span {p}`) is unramified in the ring of integers `𝒪`. Also see `not_dvd_discr_iff_forall_liesOver` and `not_dvd_discr_iff_forall_mem` for variants whose RHS does not use `Algebra.IsUnramifiedIn`.
-
NumberField.Units.rank[complete] -
NumberField.Units.finrank_modTorsion[complete] -
NumberField.InfinitePlace.card_eq_nrRealPlaces_add_nrComplexPlaces[complete]
Rank of a number field. (LMFDB)
The rank of a number field K is the size of any set of fundamental units of K. It is equal to r = r_1 + r_2 -1 where r_1 is the number of real embeddings of K into \C and 2r_2 is the number of complex embeddings of K into \C.
Depends on: Definition 2.1 Definition 2.19
Lean code for Definition2.50●3 declarations
Associated Lean declarations
-
NumberField.Units.rank[complete]
-
NumberField.Units.finrank_modTorsion[complete]
-
NumberField.InfinitePlace.card_eq_nrRealPlaces_add_nrComplexPlaces[complete]
-
NumberField.Units.rank[complete] -
NumberField.Units.finrank_modTorsion[complete] -
NumberField.InfinitePlace.card_eq_nrRealPlaces_add_nrComplexPlaces[complete]
-
defdefined in Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.leancomplete
def NumberField.Units.rank.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℕ
def NumberField.Units.rank.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℕ
The unit rank of the number field `K`, it is equal to `card (InfinitePlace K) - 1`.
-
theoremdefined in Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.leancomplete
theorem NumberField.Units.finrank_modTorsion.{u_1} (K : Type u_1) [Field K] [NumberField K] : Module.finrank ℤ (Additive ((NumberField.RingOfIntegers K)ˣ ⧸ NumberField.Units.torsion K)) = NumberField.Units.rank K
theorem NumberField.Units.finrank_modTorsion.{u_1} (K : Type u_1) [Field K] [NumberField K] : Module.finrank ℤ (Additive ((NumberField.RingOfIntegers K)ˣ ⧸ NumberField.Units.torsion K)) = NumberField.Units.rank K
-
theoremdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.leancomplete
theorem NumberField.InfinitePlace.card_eq_nrRealPlaces_add_nrComplexPlaces.{u_1} (K : Type u_1) [Field K] [NumberField K] : Fintype.card (NumberField.InfinitePlace K) = NumberField.InfinitePlace.nrRealPlaces K + NumberField.InfinitePlace.nrComplexPlaces K
theorem NumberField.InfinitePlace.card_eq_nrRealPlaces_add_nrComplexPlaces.{u_1} (K : Type u_1) [Field K] [NumberField K] : Fintype.card (NumberField.InfinitePlace K) = NumberField.InfinitePlace.nrRealPlaces K + NumberField.InfinitePlace.nrComplexPlaces K
-
RingHom[complete] -
NumberField.ComplexEmbedding.IsReal[complete] -
NumberField.ComplexEmbedding.IsReal.embedding[complete] -
NumberField.InfinitePlace.card_real_embeddings[complete]
Real embedding. (LMFDB)
A real embedding of a number field K is a field homomorphism K\to \R. A single number field may have several distinct real embeddings.
Lean code for Definition2.51●4 declarations
Associated Lean declarations
-
RingHom[complete]
-
NumberField.ComplexEmbedding.IsReal[complete]
-
NumberField.ComplexEmbedding.IsReal.embedding[complete]
-
NumberField.InfinitePlace.card_real_embeddings[complete]
-
RingHom[complete] -
NumberField.ComplexEmbedding.IsReal[complete] -
NumberField.ComplexEmbedding.IsReal.embedding[complete] -
NumberField.InfinitePlace.card_real_embeddings[complete]
-
structuredefined in Mathlib/Algebra/Ring/Hom/Defs.leancomplete
structure RingHom.{u_5, u_6} (α : Type u_5) (β : Type u_6) [NonAssocSemiring α] [NonAssocSemiring β] : Type (max u_5 u_6)
structure RingHom.{u_5, u_6} (α : Type u_5) (β : Type u_6) [NonAssocSemiring α] [NonAssocSemiring β] : Type (max u_5 u_6)
Bundled semiring homomorphisms; use this for bundled ring homomorphisms too. This extends from both `MonoidHom` and `MonoidWithZeroHom` in order to put the fields in a sensible order, even though `MonoidWithZeroHom` already extends `MonoidHom`.
Extends
-
α →* β -
α →+ β -
α →ₙ+* β -
α →*₀ β
Fields
toFun : α → β
Inherited from-
MonoidHom -
OneHom
map_one' : (↑↑self).toFun 1 = 1
Inherited from-
MonoidHom -
OneHom
map_mul' : ∀ (x y : α), (↑↑self).toFun (x * y) = (↑↑self).toFun x * (↑↑self).toFun y
Inherited from-
MonoidHom
map_zero' : (↑↑self).toFun 0 = 0
The proposition that the function preserves 0
map_add' : ∀ (x y : α), (↑↑self).toFun (x + y) = (↑↑self).toFun x + (↑↑self).toFun y
The proposition that the function preserves addition
-
-
abbrevdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.leancomplete
abbrev NumberField.ComplexEmbedding.IsReal.{u_1} {K : Type u_1} [Field K] (φ : K →+* ℂ) : Prop
abbrev NumberField.ComplexEmbedding.IsReal.{u_1} {K : Type u_1} [Field K] (φ : K →+* ℂ) : Prop
An embedding into `ℂ` is real if it is fixed by complex conjugation.
-
defdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.leancomplete
def NumberField.ComplexEmbedding.IsReal.embedding.{u_1} {K : Type u_1} [Field K] {φ : K →+* ℂ} (hφ : NumberField.ComplexEmbedding.IsReal φ) : K →+* ℝ
def NumberField.ComplexEmbedding.IsReal.embedding.{u_1} {K : Type u_1} [Field K] {φ : K →+* ℂ} (hφ : NumberField.ComplexEmbedding.IsReal φ) : K →+* ℝ
A real embedding as a ring homomorphism from `K` to `ℝ` .
-
theoremdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.leancomplete
theorem NumberField.InfinitePlace.card_real_embeddings.{u_1} (K : Type u_1) [Field K] [NumberField K] : Fintype.card { φ // NumberField.ComplexEmbedding.IsReal φ } = NumberField.InfinitePlace.nrRealPlaces K
theorem NumberField.InfinitePlace.card_real_embeddings.{u_1} (K : Type u_1) [Field K] [NumberField K] : Fintype.card { φ // NumberField.ComplexEmbedding.IsReal φ } = NumberField.InfinitePlace.nrRealPlaces K
-
NumberField.CMType[complete] -
NumberField.CMType.reflexField[complete] -
NumberField.CMType.stabilizer[complete] -
NumberField.CMType.reflexField_compl[complete] -
NumberField.CMType.card_cmType[complete]
Reflex field. (LMFDB)
Let K be a CM number field and let \overline{\mathbb{Q}} be the algebraic closure of \Q in \C. A subset \Phi \subset \mathrm{Hom}(K, \overline{\mathbb{Q}}) is called a CM type if for every embedding \iota \in \mathrm{Hom}(K, \overline{\mathbb{Q}}) either \iota \in \Phi or \overline{\iota} \in \Phi, but not both, where \overline{\iota} is the complex conjugate of \iota.
Given a CM field K and a CM type \Phi, the reflex field is the fixed field inside \overline{\Q} corresponding to the subgroup \{ \rho \in \Gal(\overline{\Q}/\Q) : \rho \Phi = \Phi \} of \Gal(\overline{\Q}/\Q). A CM type \Phi and its complement \overline{\Phi}, which is the same as the set of complex conjugate embeddings, have the same reflex field. The number of complex conjugate pairs of CM types is 2^{g-1}, where 2g=[K:\Q], the degree of K over \Q.
To specify a CM type \Phi for the CM field K=\Q(a):
<ol>
<li>fix an order
(\iota_1,\overline{\iota_1}), \dots, (\iota_g,\overline{\iota_g})
of the pairs of complex embeddings of K;
<li> then \Phi=(\varphi_1,\dots,\varphi_g) where \varphi_j\in\{\iota_j,\overline{\iota_j}\} for 1\le j\le g;
<li> now \Phi can be encoded by the list (\text{sign}(\text{im}(\varphi_1(a))),\dots,\text{sign}(\text{im}(\varphi_g(a)))).
</ol>
The CM types in the LMFDB are grouped in Galois orbits under the action of \mathrm{Gal}(\overline{\mathbb{Q}}/\mathbb{Q}) described above.
<!--- (commented out by John Cremona: this information should be in the completeness knowl for number fields)
In the LMFDB, there is a potentially incomplete list of reflex fields for each CM field K of degree at most 12. For each reflex field, it is indicated for how many of the 2^{[K:\mathbb{Q}]/2 - 1} pairs of complementary CM types this particular field is the reflex field. The only reflex fields listed are those of degree at most 36.
-
-->
Depends on: Definition 1.95 Definition 2.8 Definition 2.9 Definition 2.12 Definition 2.17
Lean code for Definition2.52●5 declarations
Associated Lean declarations
-
NumberField.CMType[complete]
-
NumberField.CMType.reflexField[complete]
-
NumberField.CMType.stabilizer[complete]
-
NumberField.CMType.reflexField_compl[complete]
-
NumberField.CMType.card_cmType[complete]
-
NumberField.CMType[complete] -
NumberField.CMType.reflexField[complete] -
NumberField.CMType.stabilizer[complete] -
NumberField.CMType.reflexField_compl[complete] -
NumberField.CMType.card_cmType[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/ReflexField.leancomplete
def NumberField.CMType.{u_1} (K : Type u_1) [Field K] : Type u_1
def NumberField.CMType.{u_1} (K : Type u_1) [Field K] : Type u_1
A **CM type** of a CM field `K` (LMFDB `nf.reflex_field`): a set `Φ` of complex embeddings of `K` such that for every complex embedding `φ`, exactly one of `φ` and its complex conjugate lies in `Φ`. A field with a real embedding has no CM type.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/ReflexField.leancomplete
def NumberField.CMType.reflexField.{u_1} {K : Type u_1} [Field K] [NumberField K] (Φ : NumberField.CMType K) : IntermediateField ℚ ↥(algebraicClosure ℚ ℂ)
def NumberField.CMType.reflexField.{u_1} {K : Type u_1} [Field K] [NumberField K] (Φ : NumberField.CMType K) : IntermediateField ℚ ↥(algebraicClosure ℚ ℂ)
The **reflex field** of a CM type `Φ` (LMFDB `nf.reflex_field`): the fixed field in the algebraic closure `ℚ̄` of `ℚ` in `ℂ` of the subgroup `{ρ ∈ Gal(ℚ̄/ℚ) | ρ Φ = Φ}`. -
defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/ReflexField.leancomplete
def NumberField.CMType.stabilizer.{u_1} {K : Type u_1} [Field K] [NumberField K] (Φ : NumberField.CMType K) : Subgroup Gal(↥(algebraicClosure ℚ ℂ)/ℚ)
def NumberField.CMType.stabilizer.{u_1} {K : Type u_1} [Field K] [NumberField K] (Φ : NumberField.CMType K) : Subgroup Gal(↥(algebraicClosure ℚ ℂ)/ℚ)
The **stabilizer** of a CM type `Φ` in the absolute Galois group `Gal(ℚ̄/ℚ)`: the `ρ` with `ρ Φ = Φ` (`mem_stabilizer_iff`).
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/ReflexField.leancomplete
theorem NumberField.CMType.reflexField_compl.{u_1} {K : Type u_1} [Field K] [NumberField K] (Φ : NumberField.CMType K) : Φ.compl.reflexField = Φ.reflexField
theorem NumberField.CMType.reflexField_compl.{u_1} {K : Type u_1} [Field K] [NumberField K] (Φ : NumberField.CMType K) : Φ.compl.reflexField = Φ.reflexField
A CM type and its complement have the same reflex field.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/ReflexField.leancomplete
theorem NumberField.CMType.card_cmType.{u_1} (K : Type u_1) [Field K] [NumberField K] [NumberField.IsTotallyComplex K] : Nat.card (NumberField.CMType K) = 2 ^ (Module.finrank ℚ K / 2)
theorem NumberField.CMType.card_cmType.{u_1} (K : Type u_1) [Field K] [NumberField K] [NumberField.IsTotallyComplex K] : Nat.card (NumberField.CMType K) = 2 ^ (Module.finrank ℚ K / 2)
**A totally complex field of degree `2g` has `2 ^ g` CM types**: one choice of an embedding for each complex place.
Reflex field of the reflex field. (LMFDB)
Let K be a CM number field and let N a normal closure of K, let \Phi \subset \mathrm{Hom}(K, \overline{\mathbb{Q}}) be a CM type and L its associated reflex field. Then \Phi induces a CM type \Phi_N \subset \mathrm{Hom}(N, \mathbb{C}) by taking the maps that restrict to a map inside \Phi on K. The maps in \Phi_N are isomorphisms on the image F of N inside \overline{\mathbb{Q}} and by inverting them, we obtain a CM type on F with values in N. The reflex field of the reflex field is the reflex field of this CM type.
It can also be computed as follows. Consider the right action of \mathrm{Gal}(N/K) on the set of CM types on K. Then the reflex field of the reflex field is the subfield corresponding to the subgroup stabilising \Phi.
The reflex field of the reflex field is also the smallest field of definition of the CM type \Phi, i.e. it is the largest subfield M of K such that \Phi is induced from a CM type on M.
Depends on: Definition 2.8 Definition 2.52
-
NumberField.Units.regulator[complete] -
NumberField.Units.regulator_eq_det[complete]
Regulator of a number field. (LMFDB)
Let \sigma_1,\ldots,\sigma_{r_1} be the real embeddings of a number field K into the complex numbers \mathbb{C}, and \sigma_{r_1+ 1},\ldots,\sigma_{r_1+r_2} be complex embeddings of K into \C such that no two are complex conjugate. Let u_1,\ldots,u_r be a set of fundamental units of K. Then r = r_1 + r_2 -1.
Let M be the (r_1+ r_2-1)\times (r_1+r_2) matrix
(d_j\log{ |\sigma_j(u_i)|}), where d_j=1 if j\leq r_1, i.e, if \sigma_j is a real embedding, and d_j=2 otherwise, i.e., if \sigma_j is a complex embedding. The sum of the columns of M is the zero vector.
The regulator of K is the absolute value of the determinant of the sub-matrix of M where one column is removed. Its value is independent of the choice of column which is removed.
Depends on: Definition 2.1 Definition 2.19
Lean code for Definition2.54●2 declarations
Associated Lean declarations
-
NumberField.Units.regulator[complete]
-
NumberField.Units.regulator_eq_det[complete]
-
NumberField.Units.regulator[complete] -
NumberField.Units.regulator_eq_det[complete]
-
defdefined in Mathlib/NumberTheory/NumberField/Units/Regulator.leancomplete
def NumberField.Units.regulator.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℝ
def NumberField.Units.regulator.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℝ
The regulator of a number field `K`.
-
theoremdefined in Mathlib/NumberTheory/NumberField/Units/Regulator.leancomplete
theorem NumberField.Units.regulator_eq_det.{u_1} (K : Type u_1) [Field K] [NumberField K] (w' : NumberField.InfinitePlace K) (e : { w // w ≠ w' } ≃ Fin (NumberField.Units.rank K)) : NumberField.Units.regulator K = |(Matrix.of fun i w => ↑(↑w).mult * Real.log (↑w ((algebraMap (NumberField.RingOfIntegers K) K) ↑(NumberField.Units.fundSystem K (e i))))).det|
theorem NumberField.Units.regulator_eq_det.{u_1} (K : Type u_1) [Field K] [NumberField K] (w' : NumberField.InfinitePlace K) (e : { w // w ≠ w' } ≃ Fin (NumberField.Units.rank K)) : NumberField.Units.regulator K = |(Matrix.of fun i w => ↑(↑w).mult * Real.log (↑w ((algebraMap (NumberField.RingOfIntegers K) K) ↑(NumberField.Units.fundSystem K (e i))))).det|
For any infinite place `w'`, the regulator is equal to the absolute value of the determinant of the matrix with entries `(mult w * log w (fundSystem K i))_i` for `w ≠ w'`.
-
NumberField.classNumber[complete] -
NumberField.maximalRealSubfield[complete] -
NumberField.IsCMField[complete]
Relative class number of a CM field. (LMFDB)
If K is a number field with CM with class number h, and K^+ is its maximal totally real subfield with class number h^+, then h^+ divides h and the relative class number is
h/h^+.
Depends on: Definition 2.1 Definition 2.6 Definition 2.8 Definition 2.67
Lean code for Definition2.55●3 definitions
Associated Lean declarations
-
NumberField.classNumber[complete]
-
NumberField.maximalRealSubfield[complete]
-
NumberField.IsCMField[complete]
-
NumberField.classNumber[complete] -
NumberField.maximalRealSubfield[complete] -
NumberField.IsCMField[complete]
-
defdefined in Mathlib/NumberTheory/NumberField/ClassNumber.leancomplete
def NumberField.classNumber.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℕ
def NumberField.classNumber.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℕ
The class number of a number field is the (finite) cardinality of the class group.
-
defdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.leancomplete
def NumberField.maximalRealSubfield.{u_2} (K : Type u_2) [Field K] : Subfield K
def NumberField.maximalRealSubfield.{u_2} (K : Type u_2) [Field K] : Subfield K
The maximal real subfield of `K`. It is totally real, see `NumberField.isTotallyReal_maximalRealSubfield`, and contains all the other totally real subfields of `K`, see `NumberField.IsTotallyReal.le_maximalRealSubfield`.
-
classdefined in Mathlib/NumberTheory/NumberField/CMField.leancomplete
class NumberField.IsCMField.{u_1} (K : Type u_1) [Field K] [CharZero K] : Prop
class NumberField.IsCMField.{u_1} (K : Type u_1) [Field K] [CharZero K] : Prop
A field `K` is `CM` if `K` is a totally complex quadratic extension of its maximal real subfield `K⁺`.
Methods
to_isTotallyComplex : NumberField.IsTotallyComplex K
is_quadratic : Algebra.IsQuadraticExtension (↥(NumberField.maximalRealSubfield K)) K
Ring of integers of a number field. (LMFDB)
The ring of integers of a number field K is the integral closure of \Z in K.
Depends on: Definition 2.1 Definition 1.139
Lean code for Definition2.56●1 definition
Associated Lean declarations
-
NumberField.RingOfIntegers[complete]
-
NumberField.RingOfIntegers[complete]
-
defdefined in Mathlib/NumberTheory/NumberField/Basic.leancomplete
def NumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1
def NumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1
The ring of integers (or number ring) corresponding to a number field is the integral closure of ℤ in the number field. This is defined as its own type, rather than a `Subalgebra`, for performance reasons: looking for instances of the form `SMul (RingOfIntegers _) (RingOfIntegers _)` makes much more effective use of the discrimination tree than instances of the form `SMul (Subtype _) (Subtype _)`. The drawback is we have to copy over instances manually.
Root discriminant of a number field. (LMFDB)
If K is a number field of degree n and discriminant D, then the root discriminant of K is
\textrm{rd}(K) = |D|^{1/n}.
It gives a measure of the discriminant of a number field which is normalized for the degree. For example, if K\subseteq L are number fields and L/K is unramified, then \textrm{rd}(K)=\textrm{rd}(L).
Depends on: Definition 2.1 Definition 2.12 Definition 2.15
Lean code for Definition2.57●1 definition
Associated Lean declarations
-
NumberField.rootDiscr[complete]
-
NumberField.rootDiscr[complete]
-
defdefined in Mathlib/NumberTheory/NumberField/Discriminant/Basic.leancomplete
def NumberField.rootDiscr.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℝ
def NumberField.rootDiscr.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℝ
The root discriminant of a number field `K`.
-
IsSeparable[complete] -
Algebra.IsSeparable[complete] -
Polynomial.Separable[complete] -
Polynomial.nodup_aroots_iff_of_splits[complete]
Separable extension. (LMFDB)
If K/F is a finite degree field extension, \alpha\in K is separable over F if its monic irreducible polynomial has distinct roots in the algebraic closure \overline{F}.
The extension K/F is separable if every \alpha\in K is separable over F.
All algebraic extensions of local and global number fields are separable.
Depends on: Definition 2.12
Lean code for Definition2.58●4 declarations
Associated Lean declarations
-
IsSeparable[complete]
-
Algebra.IsSeparable[complete]
-
Polynomial.Separable[complete]
-
Polynomial.nodup_aroots_iff_of_splits[complete]
-
IsSeparable[complete] -
Algebra.IsSeparable[complete] -
Polynomial.Separable[complete] -
Polynomial.nodup_aroots_iff_of_splits[complete]
-
defdefined in Mathlib/FieldTheory/Separable.leancomplete
def IsSeparable.{u_1, u_3} (F : Type u_1) {K : Type u_3} [CommRing F] [Ring K] [Algebra F K] (x : K) : Prop
def IsSeparable.{u_1, u_3} (F : Type u_1) {K : Type u_3} [CommRing F] [Ring K] [Algebra F K] (x : K) : Prop
An element `x` of an algebra `K` over a commutative ring `F` is said to be *separable*, if its minimal polynomial over `K` is separable. Note that the minimal polynomial of any element not integral over `F` is defined to be `0`, which is not a separable polynomial.
-
classdefined in Mathlib/FieldTheory/Separable.leancomplete
class Algebra.IsSeparable.{u_1, u_3} (F : Type u_1) (K : Type u_3) [CommRing F] [Ring K] [Algebra F K] : Prop
class Algebra.IsSeparable.{u_1, u_3} (F : Type u_1) (K : Type u_3) [CommRing F] [Ring K] [Algebra F K] : Prop
Typeclass for separable field extension: `K` is a separable field extension of `F` iff the minimal polynomial of every `x : K` is separable. This implies that `K/F` is an algebraic extension, because the minimal polynomial of a non-integral element is `0`, which is not separable. We define this for general (commutative) rings and only assume `F` and `K` are fields if this is needed for a proof.
Methods
isSeparable' : ∀ (x : K), IsSeparable F x
-
defdefined in Mathlib/FieldTheory/Separable.leancomplete
def Polynomial.Separable.{u} {R : Type u} [CommSemiring R] (f : Polynomial R) : Prop
def Polynomial.Separable.{u} {R : Type u} [CommSemiring R] (f : Polynomial R) : Prop
A polynomial is separable iff it is coprime with its derivative.
-
theoremdefined in Mathlib/FieldTheory/Separable.leancomplete
theorem Polynomial.nodup_aroots_iff_of_splits.{u, v} {F : Type u} [Field F] {K : Type v} [Field K] [Algebra F K] {f : Polynomial F} (hf : f ≠ 0) (h : (Polynomial.map (algebraMap F K) f).Splits) : (f.aroots K).Nodup ↔ f.Separable
theorem Polynomial.nodup_aroots_iff_of_splits.{u, v} {F : Type u} [Field F] {K : Type v} [Field K] [Algebra F K] {f : Polynomial F} (hf : f ≠ 0) (h : (Polynomial.map (algebraMap F K) f).Splits) : (f.aroots K).Nodup ↔ f.Separable
If a non-zero polynomial over `F` splits in `K`, then it has no repeated roots on `K` if and only if it is separable.
-
Algebra.Etale[complete] -
Algebra.Etale.iff_exists_algEquiv_prod[complete] -
Algebra.Etale.baseChange[complete]
Separable algebra. (LMFDB)
A (finite) separable algebra A over a field F, also called an 'etale F-algebra, is an F-algebra of finite dimension that is isomorphic to a product of separable field extensions of F.
If L/K is a field extension and A is a separable K-algebra then A\otimes_K L is a separable L-algebra (which is typically not a field, even when A is).
Depends on: Definition 2.58
Lean code for Definition2.59●3 declarations
Associated Lean declarations
-
Algebra.Etale[complete]
-
Algebra.Etale.iff_exists_algEquiv_prod[complete]
-
Algebra.Etale.baseChange[complete]
-
Algebra.Etale[complete] -
Algebra.Etale.iff_exists_algEquiv_prod[complete] -
Algebra.Etale.baseChange[complete]
-
classdefined in Mathlib/RingTheory/Etale/Basic.leancomplete
class Algebra.Etale.{u, v} (R : Type u) (A : Type v) [CommRing R] [CommRing A] [Algebra R A] : Prop
class Algebra.Etale.{u, v} (R : Type u) (A : Type v) [CommRing R] [CommRing A] [Algebra R A] : Prop
An `R`-algebra `A` is étale if it is formally étale and of finite presentation.
Methods
formallyEtale : Algebra.FormallyEtale R A
finitePresentation : Algebra.FinitePresentation R A
-
theoremdefined in Mathlib/RingTheory/Etale/Field.leancomplete
theorem Algebra.Etale.iff_exists_algEquiv_prod.{u, u_1} (K : Type u_1) (A : Type u) [Field K] [CommRing A] [Algebra K A] : Algebra.Etale K A ↔ ∃ I, ∃ (_ : Finite I), ∃ Ai x x_1 x_2, ∀ (i : I), Module.Finite K (Ai i) ∧ Algebra.IsSeparable K (Ai i)
theorem Algebra.Etale.iff_exists_algEquiv_prod.{u, u_1} (K : Type u_1) (A : Type u) [Field K] [CommRing A] [Algebra K A] : Algebra.Etale K A ↔ ∃ I, ∃ (_ : Finite I), ∃ Ai x x_1 x_2, ∀ (i : I), Module.Finite K (Ai i) ∧ Algebra.IsSeparable K (Ai i)
`A` is étale over a field `K` if and only if `A` is a finite product of finite separable field extensions.
-
theoremdefined in Mathlib/RingTheory/Etale/Basic.leancomplete
theorem Algebra.Etale.baseChange.{u, v, u_1} (R : Type u) (A : Type v) (B : Type u_1) [CommRing R] [CommRing A] [Algebra R A] [CommRing B] [Algebra R B] [Algebra.Etale R A] : Algebra.Etale B (TensorProduct R B A)
theorem Algebra.Etale.baseChange.{u, v, u_1} (R : Type u) (A : Type v) (B : Type u_1) [CommRing R] [CommRing A] [Algebra R A] [CommRing B] [Algebra R B] [Algebra.Etale R A] : Algebra.Etale B (TensorProduct R B A)
Étale is stable under base change.
Serre Odlyzko bound. (LMFDB)
For each positive integer n, let C_n for the minimum root discriminant for all number fields of degree n. Assuming the Generalized Riemann Hypothesis, \limsup C_n \geq \Omega where
\Omega = 8\pi e^\gamma\approx 44.7632\ldots
and \gamma is the Euler–Mascheroni constant. Lower bounds for the C_n were deduced by analytic methods through the work of Odlyzko and others. In particular, Serre introduced the constant \Omega which we refer to as the Serre Odlyzko bound,
Consequently, any number field whose root discriminant lies below \Omega can be considered to have small discriminant.
Depends on: Definition 1.121 Definition 2.1 Definition 2.12 Definition 2.57
-
Algebra.IsSibling[complete] -
Algebra.galoisClosure[complete] -
Algebra.isSibling_iff[complete] -
Algebra.galoisClosure_eq_normalClosure[complete] -
Algebra.isNormalClosure_galoisClosure[complete]
Sibling fields and algebras. (LMFDB)
Two finite separable extension fields K_1 and K_2 of a ground field F are called siblings if they are not isomorphic, but have isomorphic Galois closures.
A finite dimensional separable \Q-algebra is isomorphic to a product of number fields. By its Galois closure, we mean the compositum of the Galois closures of the constituent fields. Then two algebras are siblings if they have isomorphic Galois closures, but are not isomorphic as \Q-algebras.
Depends on: Definition 2.20 Definition 2.58
Lean code for Definition2.61●5 declarations
Associated Lean declarations
-
Algebra.IsSibling[complete]
-
Algebra.galoisClosure[complete]
-
Algebra.isSibling_iff[complete]
-
Algebra.galoisClosure_eq_normalClosure[complete]
-
Algebra.isNormalClosure_galoisClosure[complete]
-
Algebra.IsSibling[complete] -
Algebra.galoisClosure[complete] -
Algebra.isSibling_iff[complete] -
Algebra.galoisClosure_eq_normalClosure[complete] -
Algebra.isNormalClosure_galoisClosure[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/Sibling.leancomplete
def Algebra.IsSibling.{u_1, u_2, u_3} (F : Type u_1) (A : Type u_2) (B : Type u_3) [Field F] [CommRing A] [Algebra F A] [CommRing B] [Algebra F B] : Prop
def Algebra.IsSibling.{u_1, u_2, u_3} (F : Type u_1) (A : Type u_2) (B : Type u_3) [Field F] [CommRing A] [Algebra F A] [CommRing B] [Algebra F B] : Prop
Two `F`-algebras `A` and `B` are **siblings** (LMFDB `nf.sibling`) if they are not isomorphic but have isomorphic Galois closures. The LMFDB considers finite separable extensions of `F`, and finite separable `ℚ`-algebras, for which this is its definition.
-
defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/Sibling.leancomplete
def Algebra.galoisClosure.{u_1, u_2} (F : Type u_1) (A : Type u_2) [Field F] [CommRing A] [Algebra F A] : IntermediateField F (AlgebraicClosure F)
def Algebra.galoisClosure.{u_1, u_2} (F : Type u_1) (A : Type u_2) [Field F] [CommRing A] [Algebra F A] : IntermediateField F (AlgebraicClosure F)
The **Galois closure** of an `F`-algebra `A`: the subfield of the algebraic closure `F̄` of `F` generated by the images of all `F`-algebra maps `A → F̄`. For a field `K` this is the normal closure of `K` in `F̄` (`galoisClosure_eq_normalClosure`), a Galois closure of `K` when `K / F` is finite separable. For a finite separable `F`-algebra, a product of finite separable extensions `K_i` of `F`, every `F`-algebra map to `F̄` factors through one of the `K_i`, so this is the compositum of the Galois closures of the `K_i`, as in the LMFDB knowl `nf.sibling`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/Sibling.leancomplete
theorem Algebra.isSibling_iff.{u_1, u_5, u_6, u_7, u_8} {F : Type u_1} [Field F] {K₁ : Type u_5} {K₂ : Type u_6} {L₁ : Type u_7} {L₂ : Type u_8} [Field K₁] [Field K₂] [Field L₁] [Field L₂] [Algebra F K₁] [Algebra F K₂] [Algebra F L₁] [Algebra F L₂] [Algebra.IsAlgebraic F K₁] [Algebra.IsAlgebraic F K₂] [IsNormalClosure F K₁ L₁] [IsNormalClosure F K₂ L₂] : Algebra.IsSibling F K₁ K₂ ↔ IsEmpty (K₁ ≃ₐ[F] K₂) ∧ Nonempty (L₁ ≃ₐ[F] L₂)
theorem Algebra.isSibling_iff.{u_1, u_5, u_6, u_7, u_8} {F : Type u_1} [Field F] {K₁ : Type u_5} {K₂ : Type u_6} {L₁ : Type u_7} {L₂ : Type u_8} [Field K₁] [Field K₂] [Field L₁] [Field L₂] [Algebra F K₁] [Algebra F K₂] [Algebra F L₁] [Algebra F L₂] [Algebra.IsAlgebraic F K₁] [Algebra.IsAlgebraic F K₂] [IsNormalClosure F K₁ L₁] [IsNormalClosure F K₂ L₂] : Algebra.IsSibling F K₁ K₂ ↔ IsEmpty (K₁ ≃ₐ[F] K₂) ∧ Nonempty (L₁ ≃ₐ[F] L₂)
Two algebraic extensions `K₁` and `K₂` of `F` with normal closures `L₁` and `L₂` are siblings exactly when they are not isomorphic and `L₁` and `L₂` are isomorphic.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/Sibling.leancomplete
theorem Algebra.galoisClosure_eq_normalClosure.{u_1, u_4} {F : Type u_1} [Field F] (K : Type u_4) [Field K] [Algebra F K] : Algebra.galoisClosure F K = IntermediateField.normalClosure F K (AlgebraicClosure F)
theorem Algebra.galoisClosure_eq_normalClosure.{u_1, u_4} {F : Type u_1} [Field F] (K : Type u_4) [Field K] [Algebra F K] : Algebra.galoisClosure F K = IntermediateField.normalClosure F K (AlgebraicClosure F)
The Galois closure of a field is its normal closure in the algebraic closure of `F`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/Sibling.leancomplete
theorem Algebra.isNormalClosure_galoisClosure.{u_1, u_4} {F : Type u_1} [Field F] (K : Type u_4) [Field K] [Algebra F K] [Algebra.IsAlgebraic F K] : IsNormalClosure F K ↥(Algebra.galoisClosure F K)
theorem Algebra.isNormalClosure_galoisClosure.{u_1, u_4} {F : Type u_1} [Field F] (K : Type u_4) [Field K] [Algebra F K] [Algebra.IsAlgebraic F K] : IsNormalClosure F K ↥(Algebra.galoisClosure F K)
The Galois closure of an algebraic extension `K` of `F` is a normal closure of `K / F`.
Signature of a number field. (LMFDB)
The signature of a number field K is the pair [r_1,r_2] where r_1 is the number of real embeddings of K and r_2 is the number of conjugate pairs of complex embeddings.
The degree of K is r_1+2r_2.
Depends on: Definition 2.1 Definition 2.9 Definition 2.12 Definition 2.51
Lean code for Definition2.62●5 declarations
Associated Lean declarations
-
abbrevdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.leancomplete
abbrev NumberField.InfinitePlace.nrRealPlaces.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℕ
abbrev NumberField.InfinitePlace.nrRealPlaces.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℕ
The number of infinite real places of the number field `K`.
-
abbrevdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.leancomplete
abbrev NumberField.InfinitePlace.nrComplexPlaces.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℕ
abbrev NumberField.InfinitePlace.nrComplexPlaces.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℕ
The number of infinite complex places of the number field `K`.
-
theoremdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.leancomplete
theorem NumberField.InfinitePlace.card_real_embeddings.{u_1} (K : Type u_1) [Field K] [NumberField K] : Fintype.card { φ // NumberField.ComplexEmbedding.IsReal φ } = NumberField.InfinitePlace.nrRealPlaces K
theorem NumberField.InfinitePlace.card_real_embeddings.{u_1} (K : Type u_1) [Field K] [NumberField K] : Fintype.card { φ // NumberField.ComplexEmbedding.IsReal φ } = NumberField.InfinitePlace.nrRealPlaces K
-
theoremdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.leancomplete
theorem NumberField.InfinitePlace.card_complex_embeddings.{u_1} (K : Type u_1) [Field K] [NumberField K] : Fintype.card { φ // ¬NumberField.ComplexEmbedding.IsReal φ } = 2 * NumberField.InfinitePlace.nrComplexPlaces K
theorem NumberField.InfinitePlace.card_complex_embeddings.{u_1} (K : Type u_1) [Field K] [NumberField K] : Fintype.card { φ // ¬NumberField.ComplexEmbedding.IsReal φ } = 2 * NumberField.InfinitePlace.nrComplexPlaces K
-
theoremdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.leancomplete
theorem NumberField.InfinitePlace.card_add_two_mul_card_eq_rank.{u_1} (K : Type u_1) [Field K] [NumberField K] : NumberField.InfinitePlace.nrRealPlaces K + 2 * NumberField.InfinitePlace.nrComplexPlaces K = Module.finrank ℚ K
theorem NumberField.InfinitePlace.card_add_two_mul_card_eq_rank.{u_1} (K : Type u_1) [Field K] [NumberField K] : NumberField.InfinitePlace.nrRealPlaces K + 2 * NumberField.InfinitePlace.nrComplexPlaces K = Module.finrank ℚ K
-
IsNormalClosure[complete] -
IntermediateField.adjoin[complete] -
AdjoinRoot[complete] -
IntermediateField.adjoinRootEquivAdjoin[complete]
Stem field for a Galois extension. (LMFDB)
If K/F is a Galois extension of fields, a stem field for K/F is a field E such that F\subseteq E\subseteq K and K is the Galois closure of E/F.
This is connected to the notion of the stem field of a polynomial.
If f\in F[x] is a separable irreducible polynomial of degree n with roots \alpha_1, \ldots, \alpha_n (in some extension field), then the fields F(\alpha_i) are the stem fields of the polynomial f. The splitting field of f is K=F(\alpha_1,\ldots,\alpha_n), which is a Galois extension of F, and the fields F(\alpha_i) are stem fields for K/F as defined above.
Depends on: Definition 2.20 Definition 2.31
Lean code for Definition2.63●4 definitions
Associated Lean declarations
-
IsNormalClosure[complete]
-
IntermediateField.adjoin[complete]
-
AdjoinRoot[complete]
-
IntermediateField.adjoinRootEquivAdjoin[complete]
-
IsNormalClosure[complete] -
IntermediateField.adjoin[complete] -
AdjoinRoot[complete] -
IntermediateField.adjoinRootEquivAdjoin[complete]
-
classdefined in Mathlib/FieldTheory/Normal/Closure.leancomplete
class IsNormalClosure.{u_1, u_2, u_3} (F : Type u_1) (K : Type u_2) (L : Type u_3) [Field F] [Field K] [Field L] [Algebra F K] [Algebra F L] : Prop
class IsNormalClosure.{u_1, u_2, u_3} (F : Type u_1) (K : Type u_2) (L : Type u_3) [Field F] [Field K] [Field L] [Algebra F K] [Algebra F L] : Prop
`L/F` is a normal closure of `K/F` if the minimal polynomial of every element of `K` over `F` splits in `L`, and `L` is generated by roots of such minimal polynomials over `F`. (Since the minimal polynomial of a transcendental element is 0, the normal closure of `K/F` is the same as the normal closure over `F` of the algebraic closure of `F` in `K`.)
Methods
splits : ∀ (x : K), (Polynomial.map (algebraMap F L) (minpoly F x)).Splits
adjoin_rootSet : ⨆ x, IntermediateField.adjoin F ((minpoly F x).rootSet L) = ⊤
-
defdefined in Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.leancomplete
def IntermediateField.adjoin.{u_1, u_2} (F : Type u_1) [Field F] {E : Type u_2} [Field E] [Algebra F E] (S : Set E) : IntermediateField F E
def IntermediateField.adjoin.{u_1, u_2} (F : Type u_1) [Field F] {E : Type u_2} [Field E] [Algebra F E] (S : Set E) : IntermediateField F E
`adjoin F S` extends a field `F` by adjoining a set `S ⊆ E`.
-
defdefined in Mathlib/RingTheory/AdjoinRoot.leancomplete
def AdjoinRoot.{u_1} {R : Type u_1} [CommRing R] (f : Polynomial R) : Type u_1
def AdjoinRoot.{u_1} {R : Type u_1} [CommRing R] (f : Polynomial R) : Type u_1
Adjoin a root of a polynomial `f` to a commutative ring `R`. We define the new ring as the quotient of `R[X]` by the principal ideal generated by `f`.
-
defdefined in Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.leancomplete
def IntermediateField.adjoinRootEquivAdjoin.{u_1, u_2} (F : Type u_1) [Field F] {E : Type u_2} [Field E] [Algebra F E] {α : E} (h : IsIntegral F α) : AdjoinRoot (minpoly F α) ≃ₐ[F] ↥F⟮α⟯
def IntermediateField.adjoinRootEquivAdjoin.{u_1, u_2} (F : Type u_1) [Field F] {E : Type u_2} [Field E] [Algebra F E] {α : E} (h : IsIntegral F α) : AdjoinRoot (minpoly F α) ≃ₐ[F] ↥F⟮α⟯
algebra isomorphism between `AdjoinRoot` and `F⟮α⟯`
-
NumberField.Units.torsion[complete] -
IsPrimitiveRoot[complete] -
NumberField.Units.torsionOrder[complete] -
NumberField.Units.rootsOfUnity_eq_torsion[complete] -
IsPrimitiveRoot.zpowers_eq[complete]
Unit group torsion. (LMFDB)
A torsion generator of a number field is a primitive root of unity that generates the torsion subgroup of the unit group (which is necessarily cyclic).
Depends on: Definition 2.1 Definition 2.68
Lean code for Definition2.64●5 declarations
Associated Lean declarations
-
NumberField.Units.torsion[complete]
-
IsPrimitiveRoot[complete]
-
NumberField.Units.torsionOrder[complete]
-
NumberField.Units.rootsOfUnity_eq_torsion[complete]
-
IsPrimitiveRoot.zpowers_eq[complete]
-
NumberField.Units.torsion[complete] -
IsPrimitiveRoot[complete] -
NumberField.Units.torsionOrder[complete] -
NumberField.Units.rootsOfUnity_eq_torsion[complete] -
IsPrimitiveRoot.zpowers_eq[complete]
-
defdefined in Mathlib/NumberTheory/NumberField/Units/Basic.leancomplete
def NumberField.Units.torsion.{u_1} (K : Type u_1) [Field K] : Subgroup (NumberField.RingOfIntegers K)ˣ
def NumberField.Units.torsion.{u_1} (K : Type u_1) [Field K] : Subgroup (NumberField.RingOfIntegers K)ˣ
The torsion subgroup of the group of units.
-
structuredefined in Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.leancomplete
structure IsPrimitiveRoot.{u_1} {M : Type u_1} [CommMonoid M] (ζ : M) (k : ℕ) : Prop
structure IsPrimitiveRoot.{u_1} {M : Type u_1} [CommMonoid M] (ζ : M) (k : ℕ) : Prop
An element `ζ` is a primitive `k`-th root of unity if `ζ ^ k = 1`, and if `l` satisfies `ζ ^ l = 1` then `k ∣ l`.
Fields
pow_eq_one : ζ ^ k = 1
dvd_of_pow_eq_one : ∀ (l : ℕ), ζ ^ l = 1 → k ∣ l
-
defdefined in Mathlib/NumberTheory/NumberField/Units/Basic.leancomplete
def NumberField.Units.torsionOrder.{u_1} (K : Type u_1) [Field K] : ℕ
def NumberField.Units.torsionOrder.{u_1} (K : Type u_1) [Field K] : ℕ
The order of the torsion subgroup.
-
theoremdefined in Mathlib/NumberTheory/NumberField/Units/Basic.leancomplete
theorem NumberField.Units.rootsOfUnity_eq_torsion.{u_1} (K : Type u_1) [Field K] [NumberField K] : rootsOfUnity (NumberField.Units.torsionOrder K) (NumberField.RingOfIntegers K) = NumberField.Units.torsion K
theorem NumberField.Units.rootsOfUnity_eq_torsion.{u_1} (K : Type u_1) [Field K] [NumberField K] : rootsOfUnity (NumberField.Units.torsionOrder K) (NumberField.RingOfIntegers K) = NumberField.Units.torsion K
The group of roots of unity of order dividing `torsionOrder` is equal to the torsion group.
-
theoremdefined in Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.leancomplete
theorem IsPrimitiveRoot.zpowers_eq.{u_4} {R : Type u_4} [CommRing R] [IsDomain R] {k : ℕ} [NeZero k] {ζ : Rˣ} (h : IsPrimitiveRoot ζ k) : Subgroup.zpowers ζ = rootsOfUnity k R
theorem IsPrimitiveRoot.zpowers_eq.{u_4} {R : Type u_4} [CommRing R] [IsDomain R] {k : ℕ} [NeZero k] {ζ : Rˣ} (h : IsPrimitiveRoot ζ k) : Subgroup.zpowers ζ = rootsOfUnity k R
-
NumberField.IsTotallyComplex[complete] -
NumberField.IsTotallyComplex.complexEmbedding_not_isReal[complete] -
NumberField.nrRealPlaces_eq_zero_iff[complete]
Totally imaginary. (LMFDB)
A number field K is totally imaginary (or totally complex) if it cannot be embedded in the real numbers \R; equivalently, \R does not contain the image of any of the homomorphisms from K to \C.
Depends on: Definition 2.1
Lean code for Definition2.65●3 declarations
Associated Lean declarations
-
NumberField.IsTotallyComplex[complete]
-
NumberField.IsTotallyComplex.complexEmbedding_not_isReal[complete]
-
NumberField.nrRealPlaces_eq_zero_iff[complete]
-
NumberField.IsTotallyComplex[complete] -
NumberField.IsTotallyComplex.complexEmbedding_not_isReal[complete] -
NumberField.nrRealPlaces_eq_zero_iff[complete]
-
classdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.leancomplete
class NumberField.IsTotallyComplex.{u_1} (K : Type u_1) [Field K] : Prop
class NumberField.IsTotallyComplex.{u_1} (K : Type u_1) [Field K] : Prop
A field `K` is totally complex if all of its infinite places are complex.
Methods
isComplex : ∀ (v : NumberField.InfinitePlace K), v.IsComplex
-
theoremdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.leancomplete
theorem NumberField.IsTotallyComplex.complexEmbedding_not_isReal.{u_2} {K : Type u_2} [Field K] [NumberField.IsTotallyComplex K] (φ : K →+* ℂ) : ¬NumberField.ComplexEmbedding.IsReal φ
theorem NumberField.IsTotallyComplex.complexEmbedding_not_isReal.{u_2} {K : Type u_2} [Field K] [NumberField.IsTotallyComplex K] (φ : K →+* ℂ) : ¬NumberField.ComplexEmbedding.IsReal φ
-
theoremdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.leancomplete
theorem NumberField.nrRealPlaces_eq_zero_iff.{u_2} {K : Type u_2} [Field K] [NumberField K] : NumberField.InfinitePlace.nrRealPlaces K = 0 ↔ NumberField.IsTotallyComplex K
theorem NumberField.nrRealPlaces_eq_zero_iff.{u_2} {K : Type u_2} [Field K] [NumberField K] : NumberField.InfinitePlace.nrRealPlaces K = 0 ↔ NumberField.IsTotallyComplex K
-
NumberField.IsTotallyPositive[complete] -
NumberField.totallyPositiveUnits[complete]
Totally positive. (LMFDB)
An element \alpha in a number field K is totally positive if \sigma(\alpha)>0 for all real embeddings \sigma of K into \R.
Depends on: Definition 2.1
Lean code for Definition2.66●2 definitions
Associated Lean declarations
-
NumberField.IsTotallyPositive[complete]
-
NumberField.totallyPositiveUnits[complete]
-
NumberField.IsTotallyPositive[complete] -
NumberField.totallyPositiveUnits[complete]
-
defdefined in TauCeti/NumberTheory/NumberField/TotallyPositive.leancomplete
def NumberField.IsTotallyPositive.{u_1} {K : Type u_1} [Field K] (x : K) : Prop
def NumberField.IsTotallyPositive.{u_1} {K : Type u_1} [Field K] (x : K) : Prop
An element of a number field is **totally positive** when it is strictly positive under every real embedding `K →+* ℝ` (equivalently, at every real infinite place `w`). For a totally complex field the condition is vacuous; the content is at the real places.
-
defdefined in TauCeti/NumberTheory/NumberField/TotallyPositive.leancomplete
def NumberField.totallyPositiveUnits.{u_1} {K : Type u_1} [Field K] : Subgroup Kˣ
def NumberField.totallyPositiveUnits.{u_1} {K : Type u_1} [Field K] : Subgroup Kˣ
The subgroup of **totally positive units** of `Kˣ`: the intersection, over the real infinite places `w`, of the preimages of the positive units of `ℝ` under the real embedding `w`. It is the kernel of the sign (signature) map on units, and controls the comparison between the narrow class group `Cl⁺(K)` and the ordinary class group `Cl(K)`.
-
NumberField.IsTotallyReal[complete] -
NumberField.IsTotallyReal.complexEmbedding_isReal[complete] -
NumberField.nrComplexPlaces_eq_zero_iff[complete] -
NumberField.Embeddings.range_eval_eq_rootSet_minpoly[complete]
Totally real. (LMFDB)
A global number field K is always of the form K=\Q(\alpha) where \alpha has monic irreducible polynomial f(x)\in\Q[x]. The field is totally real if all of the roots of f(x) in \C lie in the real numbers \R.
Equivalently, K is totally real if all the embeddings of K into \C have image contained in \R.
Depends on: Definition 2.1
Lean code for Definition2.67●4 declarations
Associated Lean declarations
-
NumberField.IsTotallyReal[complete]
-
NumberField.IsTotallyReal.complexEmbedding_isReal[complete]
-
NumberField.nrComplexPlaces_eq_zero_iff[complete]
-
NumberField.Embeddings.range_eval_eq_rootSet_minpoly[complete]
-
NumberField.IsTotallyReal[complete] -
NumberField.IsTotallyReal.complexEmbedding_isReal[complete] -
NumberField.nrComplexPlaces_eq_zero_iff[complete] -
NumberField.Embeddings.range_eval_eq_rootSet_minpoly[complete]
-
classdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.leancomplete
class NumberField.IsTotallyReal.{u_1} (K : Type u_1) [Field K] : Prop
class NumberField.IsTotallyReal.{u_1} (K : Type u_1) [Field K] : Prop
A field `K` is totally real if all of its infinite places are real. In other words, the image of every ring homomorphism `K → ℂ` is a subset of `ℝ`.
Methods
isReal : ∀ (v : NumberField.InfinitePlace K), v.IsReal
-
theoremdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.leancomplete
theorem NumberField.IsTotallyReal.complexEmbedding_isReal.{u_2} {K : Type u_2} [Field K] [NumberField.IsTotallyReal K] (φ : K →+* ℂ) : NumberField.ComplexEmbedding.IsReal φ
theorem NumberField.IsTotallyReal.complexEmbedding_isReal.{u_2} {K : Type u_2} [Field K] [NumberField.IsTotallyReal K] (φ : K →+* ℂ) : NumberField.ComplexEmbedding.IsReal φ
-
theoremdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.leancomplete
theorem NumberField.nrComplexPlaces_eq_zero_iff.{u_2} {K : Type u_2} [Field K] [NumberField K] : NumberField.InfinitePlace.nrComplexPlaces K = 0 ↔ NumberField.IsTotallyReal K
theorem NumberField.nrComplexPlaces_eq_zero_iff.{u_2} {K : Type u_2} [Field K] [NumberField K] : NumberField.InfinitePlace.nrComplexPlaces K = 0 ↔ NumberField.IsTotallyReal K
-
theoremdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.leancomplete
theorem NumberField.Embeddings.range_eval_eq_rootSet_minpoly.{u_1, u_2} (K : Type u_1) (A : Type u_2) [Field K] [NumberField K] [Field A] [Algebra ℚ A] [IsAlgClosed A] (x : K) : (Set.range fun φ => φ x) = (minpoly ℚ x).rootSet A
theorem NumberField.Embeddings.range_eval_eq_rootSet_minpoly.{u_1, u_2} (K : Type u_1) (A : Type u_2) [Field K] [NumberField K] [Field A] [Algebra ℚ A] [IsAlgClosed A] (x : K) : (Set.range fun φ => φ x) = (minpoly ℚ x).rootSet A
Let `A` be an algebraically closed field and let `x ∈ K`, with `K` a number field. The images of `x` by the embeddings of `K` in `A` are exactly the roots in `A` of the minimal polynomial of `x` over `ℚ`.
-
NumberField.RingOfIntegers[complete] -
Units[complete] -
NumberField.Units.torsion[complete] -
NumberField.Units.exist_unique_eq_mul_prod[complete]
Unit group of a number field. (LMFDB)
The unit group of a number field K is the group of units of the ring of integers of K. It is a finitely generated abelian group with cyclic torsion subgroup. A set of generators of a maximal torsion-free subgroup is called a set of fundamental units for K.
The unit group of K has as invariants the rank
and the regulator of K.
Depends on: Definition 2.1 Definition 2.56
Lean code for Definition2.68●4 declarations
Associated Lean declarations
-
NumberField.RingOfIntegers[complete]
-
Units[complete]
-
NumberField.Units.torsion[complete]
-
NumberField.Units.exist_unique_eq_mul_prod[complete]
-
NumberField.RingOfIntegers[complete] -
Units[complete] -
NumberField.Units.torsion[complete] -
NumberField.Units.exist_unique_eq_mul_prod[complete]
-
defdefined in Mathlib/NumberTheory/NumberField/Basic.leancomplete
def NumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1
def NumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1
The ring of integers (or number ring) corresponding to a number field is the integral closure of ℤ in the number field. This is defined as its own type, rather than a `Subalgebra`, for performance reasons: looking for instances of the form `SMul (RingOfIntegers _) (RingOfIntegers _)` makes much more effective use of the discrimination tree than instances of the form `SMul (Subtype _) (Subtype _)`. The drawback is we have to copy over instances manually.
-
structuredefined in Mathlib/Algebra/Group/Units/Defs.leancomplete
structure Units.{u} (α : Type u) [Monoid α] : Type u
structure Units.{u} (α : Type u) [Monoid α] : Type u
Units of a `Monoid`, bundled version. Notation: `αˣ`. An element of a `Monoid` is a unit if it has a two-sided inverse. This version bundles the inverse element so that it can be computed. For a predicate see `IsUnit`.
Fields
val : α
The underlying value in the base `Monoid`.
inv : α
The inverse value of `val` in the base `Monoid`.
val_inv : ↑self * self.inv = 1
`inv` is the right inverse of `val` in the base `Monoid`.
inv_val : self.inv * ↑self = 1
`inv` is the left inverse of `val` in the base `Monoid`.
-
defdefined in Mathlib/NumberTheory/NumberField/Units/Basic.leancomplete
def NumberField.Units.torsion.{u_1} (K : Type u_1) [Field K] : Subgroup (NumberField.RingOfIntegers K)ˣ
def NumberField.Units.torsion.{u_1} (K : Type u_1) [Field K] : Subgroup (NumberField.RingOfIntegers K)ˣ
The torsion subgroup of the group of units.
-
theoremdefined in Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.leancomplete
theorem NumberField.Units.exist_unique_eq_mul_prod.{u_1} (K : Type u_1) [Field K] [NumberField K] (x : (NumberField.RingOfIntegers K)ˣ) : ∃! ζe, x = ↑ζe.1 * ∏ i, NumberField.Units.fundSystem K i ^ ζe.2 i
theorem NumberField.Units.exist_unique_eq_mul_prod.{u_1} (K : Type u_1) [Field K] [NumberField K] (x : (NumberField.RingOfIntegers K)ˣ) : ∃! ζe, x = ↑ζe.1 * ∏ i, NumberField.Units.fundSystem K i ^ ζe.2 i
**Dirichlet Unit Theorem**. Any unit `x` of `𝓞 K` can be written uniquely as the product of a root of unity and powers of the units of the fundamental system `fundSystem`.
-
NumberField.unitSignatureRank[complete] -
TauCeti.GlobalNumberFields.integerUnitSignatures[complete] -
NumberField.unitSignatureRank_pos[complete] -
NumberField.unitSignatureRank_le[complete] -
NumberField.unitSignatureRank_eq_zero_iff[complete]
Unit signature rank of a number field. (LMFDB)
Let K be a number field with at least one real embedding, and let \sigma_1, \dots, \sigma_{r_1} : K \to \R be the r_1 real embeddings of K. The signature of a nonzero element \alpha \in K is the r_1-tuple of signs of \sigma(\alpha) over all real embeddings \sigma of K, viewed as lying in the additive group \F_2. I.e. the signature is the vector (\text{sign}(\sigma_1(\alpha)), \dots, \text{sign}(\sigma_{r_1}(\alpha))) \in \F_2^{r_1}, where \text{sign}(x) = 0 if x is positive, otherwise \text{sign}(x) = 1 if x is negative.
The collection of all signatures of units \alpha \in \mathcal{O}_K^\times can be viewed as a subspace of \F_2^{r_1}. The dimension of this subspace (over \F_2) is the unit signature rank of K.
By convention, we define the unit signature rank of a totally complex field to be 0.
If K has at least one real embedding, then the unit signature rank is always a positive integer which is at most the number of real embeddings r_1 of K. If K is a real quadratic field, then the unit signature rank of K is 1 if the fundamental unit for K has norm 1, otherwise the unit signature rank of K is 2 if the fundamental unit for K has norm -1.
Depends on: Definition 2.1 Definition 2.51
Lean code for Definition2.69●5 declarations
Associated Lean declarations
-
NumberField.unitSignatureRank[complete]
-
TauCeti.GlobalNumberFields.integerUnitSignatures[complete]
-
NumberField.unitSignatureRank_pos[complete]
-
NumberField.unitSignatureRank_le[complete]
-
NumberField.unitSignatureRank_eq_zero_iff[complete]
-
NumberField.unitSignatureRank[complete] -
TauCeti.GlobalNumberFields.integerUnitSignatures[complete] -
NumberField.unitSignatureRank_pos[complete] -
NumberField.unitSignatureRank_le[complete] -
NumberField.unitSignatureRank_eq_zero_iff[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/Units/SignatureRank.leancomplete
def NumberField.unitSignatureRank.{u_1} (K : Type u_1) [Field K] : ℕ
def NumberField.unitSignatureRank.{u_1} (K : Type u_1) [Field K] : ℕ
The **unit signature rank** of a number field `K` (LMFDB `nf.unit_signature_rank`): the dimension over `𝔽₂` of the space of signatures of the units of `𝓞 K`, where the signature of a unit is its vector of signs at the real places of `K`, each sign read in `ℝˣ ⧸ ℝˣ₊ ≅ 𝔽₂`. A totally complex field has no real places, so its unit signature rank is `0`, as in the LMFDB's convention (`unitSignatureRank_eq_zero_iff`).
-
defdefined in TauCeti/NumberTheory/NumberField/Global/RayClass/Narrow/Kernel.leancomplete
def TauCeti.GlobalNumberFields.integerUnitSignatures.{u_1} {K : Type u_1} [Field K] : Subgroup ({ w // w.IsReal } → ℝˣ ⧸ Units.posSubgroup ℝ)
def TauCeti.GlobalNumberFields.integerUnitSignatures.{u_1} {K : Type u_1} [Field K] : Subgroup ({ w // w.IsReal } → ℝˣ ⧸ Units.posSubgroup ℝ)
The subgroup of real sign patterns realized by units of the ring of integers.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/Units/SignatureRank.leancomplete
theorem NumberField.unitSignatureRank_pos.{u_1} (K : Type u_1) [Field K] [NumberField K] (h : 0 < NumberField.InfinitePlace.nrRealPlaces K) : 0 < NumberField.unitSignatureRank K
theorem NumberField.unitSignatureRank_pos.{u_1} (K : Type u_1) [Field K] [NumberField K] (h : 0 < NumberField.InfinitePlace.nrRealPlaces K) : 0 < NumberField.unitSignatureRank K
The unit signature rank of a number field with a real place is positive, since the unit `-1` is negative at every real place.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/Units/SignatureRank.leancomplete
theorem NumberField.unitSignatureRank_le.{u_1} (K : Type u_1) [Field K] [NumberField K] : NumberField.unitSignatureRank K ≤ NumberField.InfinitePlace.nrRealPlaces K
theorem NumberField.unitSignatureRank_le.{u_1} (K : Type u_1) [Field K] [NumberField K] : NumberField.unitSignatureRank K ≤ NumberField.InfinitePlace.nrRealPlaces K
The unit signature rank is at most the number of real places.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/Units/SignatureRank.leancomplete
theorem NumberField.unitSignatureRank_eq_zero_iff.{u_1} (K : Type u_1) [Field K] [NumberField K] : NumberField.unitSignatureRank K = 0 ↔ NumberField.IsTotallyComplex K
theorem NumberField.unitSignatureRank_eq_zero_iff.{u_1} (K : Type u_1) [Field K] [NumberField K] : NumberField.unitSignatureRank K = 0 ↔ NumberField.IsTotallyComplex K
The unit signature rank vanishes exactly for totally complex fields.
-
Algebra.IsUnramifiedIn[complete] -
Algebra.isUnramifiedIn_iff_forall_ramificationIdx_eq_one[complete] -
Ideal.ramificationIdx[complete] -
Ideal.IsDedekindDomain.ramificationIdx_eq_normalizedFactors_count[complete] -
NumberField.not_dvd_discr_iff_isUnramifiedIn[complete]
Unramified (rational) prime of a number field. (LMFDB)
A unramified (rational) prime of a number field K is a prime integer p such that the ideal generated by p is factored into distinct prime ideals in the ring of integers \mathcal{O}_K of K
p\mathcal{O}_K = \mathcal{P}_1\cdots \mathcal{P}_k.
The unramified primes of K are the primes which do not divide the discriminant of K.
Depends on: Definition 2.1 Definition 2.15
Lean code for Definition2.70●5 declarations
Associated Lean declarations
-
Algebra.IsUnramifiedIn[complete]
-
Algebra.isUnramifiedIn_iff_forall_ramificationIdx_eq_one[complete]
-
Ideal.ramificationIdx[complete]
-
Ideal.IsDedekindDomain.ramificationIdx_eq_normalizedFactors_count[complete]
-
NumberField.not_dvd_discr_iff_isUnramifiedIn[complete]
-
Algebra.IsUnramifiedIn[complete] -
Algebra.isUnramifiedIn_iff_forall_ramificationIdx_eq_one[complete] -
Ideal.ramificationIdx[complete] -
Ideal.IsDedekindDomain.ramificationIdx_eq_normalizedFactors_count[complete] -
NumberField.not_dvd_discr_iff_isUnramifiedIn[complete]
-
defdefined in Mathlib/RingTheory/Unramified/Locus.leancomplete
def Algebra.IsUnramifiedIn.{u_1, u_2} {R : Type u_1} [CommRing R] (A : Type u_2) [CommRing A] [Algebra R A] (𝔭 : Ideal R) : Prop
def Algebra.IsUnramifiedIn.{u_1, u_2} {R : Type u_1} [CommRing R] (A : Type u_2) [CommRing A] [Algebra R A] (𝔭 : Ideal R) : Prop
A prime `𝔭` of `R` is unramified in `A` if every prime ideal `𝔓` of `A` lying over `𝔭` is unramified.
-
theoremdefined in Mathlib/NumberTheory/RamificationInertia/Unramified.leancomplete
theorem Algebra.isUnramifiedIn_iff_forall_ramificationIdx_eq_one.{u_1, u_2} {R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] [IsDomain R] [Module.Finite ℤ R] [CharZero R] [Algebra.EssFiniteType R S] [Algebra.IsIntegral R S] {𝔭 : Ideal R} : Algebra.IsUnramifiedIn S 𝔭 ↔ ∀ (𝔓 : Ideal S) [𝔓.IsPrime], 𝔓.LiesOver 𝔭 → 𝔓.ramificationIdx R = 1
theorem Algebra.isUnramifiedIn_iff_forall_ramificationIdx_eq_one.{u_1, u_2} {R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] [IsDomain R] [Module.Finite ℤ R] [CharZero R] [Algebra.EssFiniteType R S] [Algebra.IsIntegral R S] {𝔭 : Ideal R} : Algebra.IsUnramifiedIn S 𝔭 ↔ ∀ (𝔓 : Ideal S) [𝔓.IsPrime], 𝔓.LiesOver 𝔭 → 𝔓.ramificationIdx R = 1
A nonzero ideal of `R` is unramified in `S` if and only if every prime ideal of `S` lying over it has ramification index `1`.
-
defdefined in Mathlib/RingTheory/RamificationInertia/Ramification.leancomplete
def Ideal.ramificationIdx.{u_1, u_2} {S : Type u_1} [CommRing S] (q : Ideal S) (R : Type u_2) [CommRing R] [Algebra R S] : ℕ
def Ideal.ramificationIdx.{u_1, u_2} {S : Type u_1} [CommRing S] (q : Ideal S) (R : Type u_2) [CommRing R] [Algebra R S] : ℕ
Let `S/R` be an extension of rings, and let `q` be a prime ideal of `S` lying over a prime ideal `p` of `R`. Let `Sq` be the localization of `S` and `q`, and let `pSq` be the image of `p` in `Sq`. Then the ramification index of `q` over `R` is defined to be the length of the quotient `Sq/pSq` as an `Sq`-module. When `q` is not prime, we use a junk value of `0`. This will eventually replace the existing definition of `Ideal.ramificationIdx'`.
-
theoremdefined in Mathlib/RingTheory/RamificationInertia/Ramification.leancomplete
theorem Ideal.IsDedekindDomain.ramificationIdx_eq_normalizedFactors_count.{u_1, u_2} {R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] (p : Ideal R) (q : Ideal S) [IsDedekindDomain S] [q.LiesOver p] (hp0 : Ideal.map (algebraMap R S) p ≠ ⊥) : q.ramificationIdx R = Multiset.count q (UniqueFactorizationMonoid.normalizedFactors (Ideal.map (algebraMap R S) p))
theorem Ideal.IsDedekindDomain.ramificationIdx_eq_normalizedFactors_count.{u_1, u_2} {R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] (p : Ideal R) (q : Ideal S) [IsDedekindDomain S] [q.LiesOver p] (hp0 : Ideal.map (algebraMap R S) p ≠ ⊥) : q.ramificationIdx R = Multiset.count q (UniqueFactorizationMonoid.normalizedFactors (Ideal.map (algebraMap R S) p))
-
theoremdefined in Mathlib/NumberTheory/NumberField/Discriminant/Different.leancomplete
theorem NumberField.not_dvd_discr_iff_isUnramifiedIn.{u_1, u_2} (K : Type u_1) (𝒪 : Type u_2) [Field K] [NumberField K] [CommRing 𝒪] [Algebra 𝒪 K] [IsIntegralClosure 𝒪 ℤ K] {p : ℤ} (hp : Prime p) : ¬p ∣ NumberField.discr K ↔ Algebra.IsUnramifiedIn 𝒪 (Ideal.span {p})
theorem NumberField.not_dvd_discr_iff_isUnramifiedIn.{u_1, u_2} (K : Type u_1) (𝒪 : Type u_2) [Field K] [NumberField K] [CommRing 𝒪] [Algebra 𝒪 K] [IsIntegralClosure 𝒪 ℤ K] {p : ℤ} (hp : Prime p) : ¬p ∣ NumberField.discr K ↔ Algebra.IsUnramifiedIn 𝒪 (Ideal.span {p})
A prime `p` does not divide `discr K` if and only if `p` (as the ideal `span {p}`) is unramified in the ring of integers `𝒪`. Also see `not_dvd_discr_iff_forall_liesOver` and `not_dvd_discr_iff_forall_mem` for variants whose RHS does not use `Algebra.IsUnramifiedIn`.
Weil height. (LMFDB)
The (logarithmic) Weil height of a nonzero rational number a/b\in\mathbb{Q} in lowest terms is the quantity
h(a/b) = \log\max\bigl\{|a|,|b|\bigr\}.
The height of 0 is taken to be 0.
The (absolute logarithmic) Weil height of an element \alpha in a number field K is the quantity
h(\alpha) = \frac{1}{[K:\mathbb{Q}]} \sum_{v\in M_K} [K_v:\mathbb{Q}_v]\log\max\bigl\{\|\alpha\|_v,1\bigr\},
where M_K is an appropriately normalized set of inequivalent absolute values on K. More generally, the height of a point P=[\alpha_0,\alpha_1,\ldots,\alpha_n] in projective space \mathbb{P}^n(K) is given by
h(P) = \frac{1}{[K:\mathbb{Q}]} \sum_{v\in M_K} [K_v:\mathbb{Q}_v]\log\max_{0\le i\le n}\bigl\{\|\alpha_i\|_v\bigr\}.
If \mathcal{L} is a very amply line bundle on a projective variety V inducing an embedding \iota \colon V \hookrightarrow \mathbb{P}^n, then the Weil height associated on X associated to \mathcal{L} is given by
h_{\mathcal{L}}(P) = h(\iota(P)).
This definition can be extended to all line bundles by using the following linearity:
h_{\mathcal{L}_1 \otimes \mathcal{L}_2}(P) = h_{\mathcal{L}_1}(P) + h_{\mathcal{L}_2}(P).
Depends on: Definition 1.28 Definition 2.1
-
Polynomial.IsWeilPolynomial[complete] -
Polynomial.finite_setOf_isWeilPolynomial[complete] -
Polynomial.IsWeilPolynomial.mahlerMeasure_le[complete]
Weil polynomial. (LMFDB)
For a prime power q, a Weil q-polynomial is a monic polynomial with integer coefficients whose complex roots are of absolute value \sqrt{q}.
Given q and a nonnegative integer d, there are only finitely many Weil q-polynomials of degree d.
The characteristic polynomial of an abelian variety over \F_q is a Weil q-polynomial, but it is not quite true that every Weil q-polynomial arises in this way. Every irreducible Weil q-polynomial has a unique power that is the characteristic polynomial of a simple abelian variety over \F_q; it is the products of these powers that arise from abelian varieties.
Depends on: Definition 1.5 Definition 1.42
Lean code for Definition2.72●3 declarations
Associated Lean declarations
-
Polynomial.IsWeilPolynomial[complete]
-
Polynomial.finite_setOf_isWeilPolynomial[complete]
-
Polynomial.IsWeilPolynomial.mahlerMeasure_le[complete]
-
Polynomial.IsWeilPolynomial[complete] -
Polynomial.finite_setOf_isWeilPolynomial[complete] -
Polynomial.IsWeilPolynomial.mahlerMeasure_le[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/WeilPolynomial.leancomplete
def Polynomial.IsWeilPolynomial (q : ℕ) (P : Polynomial ℤ) : Prop
def Polynomial.IsWeilPolynomial (q : ℕ) (P : Polynomial ℤ) : Prop
A **Weil `q`-polynomial** (LMFDB `nf.weil_polynomial`) is a monic polynomial with integer coefficients whose complex roots all have absolute value `√q`. The LMFDB considers prime powers `q`, the cardinalities of finite fields; the definition makes sense for every natural number `q`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/WeilPolynomial.leancomplete
theorem Polynomial.finite_setOf_isWeilPolynomial (q d : ℕ) : {P | P.natDegree = d ∧ Polynomial.IsWeilPolynomial q P}.Finite
theorem Polynomial.finite_setOf_isWeilPolynomial (q d : ℕ) : {P | P.natDegree = d ∧ Polynomial.IsWeilPolynomial q P}.Finite
There are only finitely many Weil `q`-polynomials of each degree.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/WeilPolynomial.leancomplete
theorem Polynomial.IsWeilPolynomial.mahlerMeasure_le {q : ℕ} {P : Polynomial ℤ} (hP : Polynomial.IsWeilPolynomial q P) : (Polynomial.map (Int.castRingHom ℂ) P).mahlerMeasure ≤ max 1 √↑q ^ P.natDegree
theorem Polynomial.IsWeilPolynomial.mahlerMeasure_le {q : ℕ} {P : Polynomial ℤ} (hP : Polynomial.IsWeilPolynomial q P) : (Polynomial.map (Int.castRingHom ℂ) P).mahlerMeasure ≤ max 1 √↑q ^ P.natDegree
-
NumberField.fieldIndex[complete] -
NumberField.dvd_fieldIndex_iff[complete] -
TauCeti.NumberField.IntegralPrimitiveElement.index[complete] -
NumberField.isCommonIndexDivisor_iff_dvd_fieldIndex[complete] -
NumberField.fieldIndex_eq_one_of_isMonogenic[complete]
Index of a number field. (LMFDB)
If K is a number field with ring of integers \mathcal{O}_K, then for all \alpha\in\mathcal{O}_K such that K=\Q(\alpha), the index of \alpha, i(\alpha) is the index of the order \Z[\alpha].
The index of the number field is the greatest common divisor of all i(\alpha) with \alpha as above.
Depends on: Definition 2.1 Definition 2.42 Definition 2.56
Lean code for Definition2.73●5 declarations
Associated Lean declarations
-
NumberField.fieldIndex[complete]
-
NumberField.dvd_fieldIndex_iff[complete]
-
TauCeti.NumberField.IntegralPrimitiveElement.index[complete]
-
NumberField.isCommonIndexDivisor_iff_dvd_fieldIndex[complete]
-
NumberField.fieldIndex_eq_one_of_isMonogenic[complete]
-
NumberField.fieldIndex[complete] -
NumberField.dvd_fieldIndex_iff[complete] -
TauCeti.NumberField.IntegralPrimitiveElement.index[complete] -
NumberField.isCommonIndexDivisor_iff_dvd_fieldIndex[complete] -
NumberField.fieldIndex_eq_one_of_isMonogenic[complete]
-
defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/FieldIndex.leancomplete
def NumberField.fieldIndex.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℕ
def NumberField.fieldIndex.{u_1} (K : Type u_1) [Field K] [NumberField K] : ℕ
The **index** of a number field `K` (LMFDB `nf.zk_index`): the greatest common divisor of the indices `[𝓞 K : ℤ[θ]]` of the algebraic integers `θ` with `K = ℚ(θ)`, defined as the largest natural number dividing all of them (`dvd_fieldIndex_iff` shows that it is their greatest common divisor in the sense of divisibility as well).
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/FieldIndex.leancomplete
theorem NumberField.dvd_fieldIndex_iff.{u_1} (K : Type u_1) [Field K] [NumberField K] {d : ℕ} : d ∣ NumberField.fieldIndex K ↔ ∀ (θ : TauCeti.NumberField.IntegralPrimitiveElement K), d ∣ θ.index
theorem NumberField.dvd_fieldIndex_iff.{u_1} (K : Type u_1) [Field K] [NumberField K] {d : ℕ} : d ∣ NumberField.fieldIndex K ↔ ∀ (θ : TauCeti.NumberField.IntegralPrimitiveElement K), d ∣ θ.index
The index of `K` is the greatest common divisor of the indices of the integral primitive elements of `K`: it is divisible by every common divisor of them.
-
defdefined in TauCeti/NumberTheory/NumberField/Index/Basic.leancomplete
def TauCeti.NumberField.IntegralPrimitiveElement.index.{u_1} {K : Type u_1} [Field K] [NumberField K] (θ : TauCeti.NumberField.IntegralPrimitiveElement K) : ℕ
def TauCeti.NumberField.IntegralPrimitiveElement.index.{u_1} {K : Type u_1} [Field K] [NumberField K] (θ : TauCeti.NumberField.IntegralPrimitiveElement K) : ℕ
The index `[𝓞 K : ℤ[θ]]`, defined as the cardinality of the additive quotient.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/FieldIndex.leancomplete
theorem NumberField.isCommonIndexDivisor_iff_dvd_fieldIndex.{u_1} (K : Type u_1) [Field K] [NumberField K] {d : ℕ} : TauCeti.NumberField.IsCommonIndexDivisor d K ↔ d ∣ NumberField.fieldIndex K
theorem NumberField.isCommonIndexDivisor_iff_dvd_fieldIndex.{u_1} (K : Type u_1) [Field K] [NumberField K] {d : ℕ} : TauCeti.NumberField.IsCommonIndexDivisor d K ↔ d ∣ NumberField.fieldIndex K
The common index divisors of `K` are the divisors of the index of `K`.
-
theoremdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/FieldIndex.leancomplete
theorem NumberField.fieldIndex_eq_one_of_isMonogenic.{u_1} (K : Type u_1) [Field K] [NumberField K] (h : TauCeti.NumberField.IsMonogenic K) : NumberField.fieldIndex K = 1
theorem NumberField.fieldIndex_eq_one_of_isMonogenic.{u_1} (K : Type u_1) [Field K] [NumberField K] (h : TauCeti.NumberField.IsMonogenic K) : NumberField.fieldIndex K = 1
A monogenic number field, one with `𝓞 K = ℤ[θ]`, has index `1`.