LeanBridge Blueprint

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.

Definition2.1
uses 1
Used by 95
Reverse dependency previews
Preview
Definition 1.37
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • class(2 methods)defined in Mathlib/NumberTheory/NumberField/Basic.lean
    complete
    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 ℚ. 
    to_charZero : CharZero K
    to_finiteDimensional : FiniteDimensional ℚ K
Definition2.2
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 2.10
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • class(extends 2, 3 methods)defined in Mathlib/FieldTheory/Galois/Abelian.lean
    complete
    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. 
    • IsGalois K L
    • IsMulCommutative Gal(L/K)
    to_isSeparable : Algebra.IsSeparable K L
    Inherited from
    1. IsGalois
    to_normal : Normal K L
    Inherited from
    1. IsGalois
    is_comm : Std.Commutative fun x1 x2 => x1 * x2
    Inherited from
    1. IsMulCommutative
Definition2.3
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • abbrevdefined in Mathlib/NumberTheory/NumberField/Discriminant/Defs.lean
    complete
    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. 
Definition2.4
uses 0
Used by 4
Reverse dependency previews
Preview
Definition 1.102
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

Absolute value of a field. (LMFDB)

An absolute value of a field k is a function |\ |:k\to \R_{\ge 0} that satisfies:

  • |x|=0 if and only if x=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
  • class(1 method)defined in Mathlib/Algebra/Order/Archimedean/Defs.lean
    complete
    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`. 
    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`. 
Definition2.5
Statement uses 6
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • defdefined in Mathlib/NumberTheory/NumberField/DedekindZeta.lean
    complete
    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`.
    
Definition2.6
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 6
Reverse dependency previews
Preview
Definition 2.7
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀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
  • defdefined in Mathlib/NumberTheory/NumberField/ClassNumber.lean
    complete
    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. 
Definition2.7
Statement uses 5
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0XL∃∀N

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

Definition2.8
Statement uses 3
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 8
Reverse dependency previews
Preview
Definition 1.9
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • class(2 methods)defined in Mathlib/NumberTheory/NumberField/CMField.lean
    complete
    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⁺`.
    
    to_isTotallyComplex : NumberField.IsTotallyComplex K
    is_quadratic : Algebra.IsQuadraticExtension (↥(NumberField.maximalRealSubfield K)) K
  • theoremdefined in Mathlib/NumberTheory/NumberField/CMField.lean
    complete
    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.lean
    complete
    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)
Definition2.9
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 4
Reverse dependency previews
Preview
Definition 2.17
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • abbrevdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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
Definition2.10
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

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
  • defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/AbelianConductor.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Definition2.11
uses 1used by 1✓L∃∀N

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
  • structure(3 fields)defined in Mathlib/RingTheory/IsAdjoinRoot.lean
    complete
    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.
    
    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.lean
    complete
    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.lean
    complete
    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⟮α⟯` 
Definition2.12
uses 1
Used by 15
Reverse dependency previews
Preview
Definition 1.9
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • defdefined in Mathlib/LinearAlgebra/Dimension/Finrank.lean
    complete
    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. 
Definition2.13
uses 0used by 1✓L∃∀N

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
  • defdefined in Mathlib/LinearAlgebra/Dimension/Finrank.lean
    complete
    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. 
Definition2.14
Statement uses 3
Statement dependency previews
Preview
Definition 1.45
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/AbelianConductor.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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`.
    
Definition2.15
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 11
Reverse dependency previews
Preview
Definition 2.3
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀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
  • abbrevdefined in Mathlib/NumberTheory/NumberField/Discriminant/Defs.lean
    complete
    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. 
Definition2.16
uses 0used by 0✓L∃∀N

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
  • defdefined in Mathlib/RingTheory/Polynomial/Resultant/Basic.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Definition2.17
Statement uses 6
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 4
Reverse dependency previews
Preview
Definition 2.52
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • structure(extends 8, 5 fields)defined in Mathlib/Algebra/Ring/Hom/Defs.lean
    complete
    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`. 
    • α →* β
    • α →+ β
    • α →ₙ+* β
    • α →*₀ β
    toFun : α → β
    Inherited from
    1. MonoidHom
    2. OneHom
    map_one' : (↑↑self).toFun 1 = 1
    Inherited from
    1. MonoidHom
    2. OneHom
    map_mul' : ∀ (x y : α), (↑↑self).toFun (x * y) = (↑↑self).toFun x * (↑↑self).toFun y
    Inherited from
    1. 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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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 `ℚ`. 
Definition2.18
uses 0used by 0✓L∃∀N

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
  • defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/FrobeniusCycleType.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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'`. 
Definition2.19
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 2.50
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • defdefined in Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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`. 
Definition2.20
uses 1
Used by 4
Reverse dependency previews
Preview
Definition 2.21
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • defdefined in Mathlib/FieldTheory/Normal/Closure.lean
    complete
    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`. 
  • class(2 methods)defined in Mathlib/FieldTheory/Normal/Closure.lean
    complete
    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`.) 
    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.lean
    complete
    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.lean
    complete
    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₂
Definition2.21
Statement uses 5
Statement dependency previews
Preview
Definition 1.100
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 5
Reverse dependency previews
Preview
Definition 1.35
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • defdefined in Mathlib/FieldTheory/PolynomialGaloisGroup.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Definition2.22
Statement uses 3
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • defdefined in Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean
    complete
    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.lean
    complete
    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`. 
  • class(2 methods)defined in Mathlib/FieldTheory/Normal/Closure.lean
    complete
    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`.) 
    splits : ∀ (x : K), (Polynomial.map (algebraMap F L) (minpoly F x)).Splits
    adjoin_rootSet : ⨆ x, IntermediateField.adjoin F ((minpoly F x).rootSet L) = ⊤
Definition2.23
Statement uses 3
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • defdefined in Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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)`. 
Definition2.24
Statement uses 4
Statement dependency previews
Preview
Definition 1.137
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 4
Reverse dependency previews
Preview
Definition 2.6
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • defdefined in Mathlib/RingTheory/ClassGroup/Basic.lean
    complete
    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. 
Definition2.25
uses 1used by 0XL∃∀N

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

Definition2.26
uses 0used by 0XL∃∀N

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:

  1. w(g) = 0 if and only if g equals the identity element of G.

  2. w(h g h^{-1}) = w(g) for all g,h \in G, i.e. w is invariant under conjugacy.

  3. w(g^n) = w(g) for all g \in G and all natural numbers n with n \nmid \#G, i.e. w is 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.

Definition2.27
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • defdefined in TauCeti/NumberTheory/NumberField/Index/Basic.lean
    complete
    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.lean
    complete
    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. 
Definition2.28
Statement uses 2
Statement dependency previews
Preview
Definition 1.139
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 3
Reverse dependency previews
Preview
Definition 3.34
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • defdefined in Mathlib/RingTheory/IntegralClosure/IsIntegral/Defs.lean
    complete
    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` 
Definition2.29
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

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
  • defdefined in Mathlib/NumberTheory/NumberField/Basic.lean
    complete
    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`. 
Definition2.30
uses 0used by 0✓L∃∀N

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
  • structure(extends 6, 7 fields)defined in Mathlib/FieldTheory/IntermediateField/Basic.lean
    complete
    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`. 
    • Subalgebra K L
    carrier : Set L
    Inherited from
    1. Subalgebra
    2. Subsemiring
    3. Submonoid
    4. Subsemigroup
    mul_mem' : ∀ {a b : L}, a ∈ self.carrier → b ∈ self.carrier → a * b ∈ self.carrier
    Inherited from
    1. Subalgebra
    2. Subsemiring
    3. Submonoid
    4. Subsemigroup
    one_mem' : 1 ∈ self.carrier
    Inherited from
    1. Subalgebra
    2. Subsemiring
    3. Submonoid
    add_mem' : ∀ {a b : L}, a ∈ self.carrier → b ∈ self.carrier → a + b ∈ self.carrier
    Inherited from
    1. Subalgebra
    2. Subsemiring
    zero_mem' : 0 ∈ self.carrier
    Inherited from
    1. Subalgebra
    2. Subsemiring
    algebraMap_mem' : ∀ (r : K), (algebraMap K L) r ∈ self.carrier
    Inherited from
    1. Subalgebra
    inv_mem' : ∀ x ∈ self.carrier, x⁻¹ ∈ self.carrier
Definition2.31
uses 0
Used by 6
Reverse dependency previews
Preview
Definition 1.36
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • class(2 methods)defined in Mathlib/FieldTheory/Galois/Basic.lean
    complete
    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. 
    to_isSeparable : Algebra.IsSeparable F E
    to_normal : Normal F E
  • theoremdefined in Mathlib/FieldTheory/Galois/Basic.lean
    complete
    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. 
Definition2.32
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

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
  • defdefined in Mathlib/LinearAlgebra/TensorProduct/Defs.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.
    
Definition2.33
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • defdefined in TauCeti/NumberTheory/NumberField/RamifiedPrimes.lean
    complete
    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. 
Definition2.34
Statement uses 3
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/MaximalCMSubfield.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Definition2.35
uses 1
Used by 3
Reverse dependency previews
Preview
Definition 2.9
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • defdefined in Mathlib/FieldTheory/Minpoly/Basic.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Definition2.36
Statement uses 5
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0XL∃∀N

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

Definition2.37
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • defdefined in TauCeti/NumberTheory/NumberField/Monogenic.lean
    complete
    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. 
Definition2.38
Statement uses 3
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • structure(3 fields)defined in TauCeti/NumberTheory/NumberField/Global/Orders/Basic.lean
    complete
    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`. 
    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.lean
    complete
    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. 
Definition2.39
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

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
  • defdefined in TauCeti/NumberTheory/NumberField/TotallyPositive.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Definition2.40
Statement uses 5
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • defdefined in TauCeti/NumberTheory/NumberField/NarrowClassGroup/Basic.lean
    complete
    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. 
Definition2.41
uses 0used by 0XL∃∀N

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_N is a primitive Nth 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 numbers s_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))}".

Definition2.42
uses 1
Used by 5
Reverse dependency previews
Preview
Definition 1.9
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • structure(3 fields)defined in TauCeti/NumberTheory/NumberField/Global/Orders/Basic.lean
    complete
    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`. 
    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.lean
    complete
    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. 
Definition2.43
Statement uses 9
Statement dependency previews
Preview
Definition 1.107
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • structure(1 field)defined in Mathlib/RingTheory/DedekindDomain/AdicValuation.lean
    complete
    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`. 
    toCompletion : (IsDedekindDomain.HeightOneSpectrum.valuation K v).Completion
    The underlying element of the completion `(v.valuation K).Completion`. 
  • defdefined in Mathlib/RingTheory/DedekindDomain/AdicValuation.lean
    complete
    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`. 
Definition2.44
Statement uses 6
Statement dependency previews
Preview
Definition 1.145
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 3.3
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
XL∃∀N

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

Definition2.45
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

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_0 be the list of (monic integral) defining polynomials for K that are minimal with respect to the T_2 norm.

  • Let L_1 be the sublist of L_0 of polynomials whose discriminant has minimal absolute value.

  • For a polynomial P = x^n + a_1x^{n-1} + \dots + a_n, let S(P) = (|a_1|,a_1,\dots,|a_n|,a_n), and order the polynomials in L_1 by the lexicographic order of the vectors S(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
  • defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/Polredabs.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Definition2.46
Statement uses 3
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

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
  • defdefined in Mathlib/RingTheory/Polynomial/Resultant/Basic.lean
    complete
    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. 
Definition2.47
Statement uses 3
Statement dependency previews
Preview
Definition 1.145
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 8
Reverse dependency previews
Preview
Definition 1.36
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • structure(3 fields)defined in Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean
    complete
    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. 
    asIdeal : Ideal R
    isPrime : self.asIdeal.IsPrime
    ne_bot : self.asIdeal ≠ ⊥
  • class(1 method)defined in Mathlib/RingTheory/Ideal/Over.lean
    complete
    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`. 
    over : p = Ideal.under A P
  • abbrevdefined in Mathlib/RingTheory/Ideal/Over.lean
    complete
    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.lean
    complete
    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`. 
Definition2.48
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • defdefined in Mathlib/RingTheory/Radical/Basic.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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`. 
Definition2.49
uses 0
Used by 2
Reverse dependency previews
Preview
Definition 1.39
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • defdefined in Mathlib/RingTheory/Unramified/Locus.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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`. 
Definition2.50
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • defdefined in Mathlib/NumberTheory/NumberField/Units/DirichletTheorem.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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
Definition2.51
uses 0
Used by 4
Reverse dependency previews
Preview
Definition 2.17
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • structure(extends 8, 5 fields)defined in Mathlib/Algebra/Ring/Hom/Defs.lean
    complete
    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`. 
    • α →* β
    • α →+ β
    • α →ₙ+* β
    • α →*₀ β
    toFun : α → β
    Inherited from
    1. MonoidHom
    2. OneHom
    map_one' : (↑↑self).toFun 1 = 1
    Inherited from
    1. MonoidHom
    2. OneHom
    map_mul' : ∀ (x y : α), (↑↑self).toFun (x * y) = (↑↑self).toFun x * (↑↑self).toFun y
    Inherited from
    1. 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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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
Definition2.52
Statement uses 5
Statement dependency previews
Preview
Definition 1.95
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

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
  • defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/ReflexField.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Definition2.53
Statement uses 2
Statement dependency previews
Preview
Definition 2.8
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0XL∃∀N

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

Definition2.54
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

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
  • defdefined in Mathlib/NumberTheory/NumberField/Units/Regulator.lean
    complete
    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.lean
    complete
    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'`.
    
Definition2.55
Statement uses 4
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • defdefined in Mathlib/NumberTheory/NumberField/ClassNumber.lean
    complete
    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.lean
    complete
    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`.
    
  • class(2 methods)defined in Mathlib/NumberTheory/NumberField/CMField.lean
    complete
    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⁺`.
    
    to_isTotallyComplex : NumberField.IsTotallyComplex K
    is_quadratic : Algebra.IsQuadraticExtension (↥(NumberField.maximalRealSubfield K)) K
Definition2.56
Statement uses 2
Statement dependency previews
Preview
Definition 1.139
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 15
Reverse dependency previews
Preview
Definition 1.133
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • defdefined in Mathlib/NumberTheory/NumberField/Basic.lean
    complete
    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.
    
Definition2.57
Statement uses 3
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 2.22
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • defdefined in Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean
    complete
    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`. 
Definition2.58
uses 1
Used by 4
Reverse dependency previews
Preview
Definition 2.20
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • defdefined in Mathlib/FieldTheory/Separable.lean
    complete
    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.
    
  • class(1 method)defined in Mathlib/FieldTheory/Separable.lean
    complete
    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. 
    isSeparable' : ∀ (x : K), IsSeparable F x
  • defdefined in Mathlib/FieldTheory/Separable.lean
    complete
    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.lean
    complete
    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. 
Definition2.59
uses 1used by 1✓L∃∀N

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
  • class(2 methods)defined in Mathlib/RingTheory/Etale/Basic.lean
    complete
    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. 
    formallyEtale : Algebra.FormallyEtale R A
    finitePresentation : Algebra.FinitePresentation R A
  • theoremdefined in Mathlib/RingTheory/Etale/Field.lean
    complete
    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.lean
    complete
    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. 
Definition2.60
Statement uses 4
Statement dependency previews
Preview
Definition 1.121
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0XL∃∀N

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

Definition2.61
Statement uses 2
Statement dependency previews
Preview
Definition 2.20
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 4
Reverse dependency previews
Preview
Definition 2.5
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/Sibling.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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`. 
Definition2.62
Statement uses 4
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 3
Reverse dependency previews
Preview
Definition 2.5
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • abbrevdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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
Definition2.63
Statement uses 2
Statement dependency previews
Preview
Definition 2.20
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • class(2 methods)defined in Mathlib/FieldTheory/Normal/Closure.lean
    complete
    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`.) 
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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⟮α⟯` 
Definition2.64
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • defdefined in Mathlib/NumberTheory/NumberField/Units/Basic.lean
    complete
    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. 
  • structure(2 fields)defined in Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean
    complete
    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`. 
    pow_eq_one : ζ ^ k = 1
    dvd_of_pow_eq_one : ∀ (l : ℕ), ζ ^ l = 1 → k ∣ l
  • defdefined in Mathlib/NumberTheory/NumberField/Units/Basic.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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
Definition2.65
uses 1
Used by 2
Reverse dependency previews
Preview
Definition 2.8
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • class(1 method)defined in Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean
    complete
    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.
    
    isComplex : ∀ (v : NumberField.InfinitePlace K), v.IsComplex
  • theoremdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean
    complete
    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.lean
    complete
    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
Definition2.66
uses 1used by 1✓L∃∀N

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
  • defdefined in TauCeti/NumberTheory/NumberField/TotallyPositive.lean
    complete
    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.lean
    complete
    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)`. 
Definition2.67
uses 1
Used by 4
Reverse dependency previews
Preview
Definition 1.150
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • class(1 method)defined in Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean
    complete
    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 `ℝ`. 
    isReal : ∀ (v : NumberField.InfinitePlace K), v.IsReal
  • theoremdefined in Mathlib/NumberTheory/NumberField/InfinitePlace/TotallyRealComplex.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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 `ℚ`. 
Definition2.68
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 2.19
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
✓L∃∀N

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
  • defdefined in Mathlib/NumberTheory/NumberField/Basic.lean
    complete
    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.
    
  • structure(4 fields)defined in Mathlib/Algebra/Group/Units/Defs.lean
    complete
    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`. 
    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.lean
    complete
    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.lean
    complete
    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`. 
Definition2.69
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/Units/SignatureRank.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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. 
Definition2.70
Statement uses 2
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • defdefined in Mathlib/RingTheory/Unramified/Locus.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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`. 
Definition2.71
Statement uses 2
Statement dependency previews
Preview
Definition 1.28
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
Used by 2
Reverse dependency previews
Preview
Definition 3.7
Loading preview
Reverse dependency preview content is loaded from the rendered-fragment cache.
XL∃∀N

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

Definition2.72
Statement uses 2
Statement dependency previews
Preview
Definition 1.5
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 0✓L∃∀N

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
  • defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/WeilPolynomial.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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
Definition2.73
Statement uses 3
Statement dependency previews
Preview
Definition 2.1
Loading preview
Statement dependency preview content is loaded from the rendered-fragment cache.
used by 1✓L∃∀N

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
  • defdefined in LeanBridge/ForMathlib/NumberTheory/NumberField/FieldIndex.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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.lean
    complete
    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`.