Documentation

Mathlib.NumberTheory.NumberField.Basic

Number fields #

This file defines a number field and the ring of integers corresponding to it.

Main definitions #

Implementation notes #

The definitions that involve a field of fractions choose a canonical field of fractions, but are independent of that choice.

References #

Tags #

number field, ring of integers

class NumberField (K : Type u_1) [Field K] :

A number field is a field which has characteristic zero and is finite dimensional over β„š.

Instances
    theorem NumberField.to_charZero {K : Type u_1} :
    βˆ€ {inst : Field K} [self : NumberField K], CharZero K
    theorem NumberField.to_finiteDimensional {K : Type u_1} :
    βˆ€ {inst : Field K} [self : NumberField K], FiniteDimensional β„š K

    β„€ with its usual ring structure is not a field.

    Equations
    • β‹― = β‹―
    theorem NumberField.of_module_finite (K : Type u_1) (L : Type u_2) [Field K] [Field L] [NumberField K] [Algebra K L] [Module.Finite K L] :

    A finite extension of a number field is a number field.

    instance NumberField.of_intermediateField {K : Type u_1} {L : Type u_2} [Field K] [Field L] [NumberField K] [NumberField L] [Algebra K L] (E : IntermediateField K L) :
    NumberField β†₯E
    Equations
    • β‹― = β‹―
    theorem NumberField.of_tower (K : Type u_1) (L : Type u_2) [Field K] [Field L] [NumberField K] [NumberField L] [Algebra K L] (E : Type u_3) [Field E] [Algebra K E] [Algebra E L] [IsScalarTower K E L] :
    def NumberField.RingOfIntegers (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.

    Equations
    Instances For

      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.

      Equations
      Instances For
        Equations
        • β‹― = β‹―
        @[reducible, inline]

        The canonical coercion from π“ž K to K.

        Equations
        Instances For

          This instance has to be CoeHead because we only want to apply it from π“ž K to K.

          Equations
          • NumberField.RingOfIntegers.instCoeHead = { coe := NumberField.RingOfIntegers.val }
          theorem NumberField.RingOfIntegers.ext {K : Type u_1} [Field K] {x : NumberField.RingOfIntegers K} {y : NumberField.RingOfIntegers K} (h : ↑x = ↑y) :
          x = y
          @[simp]
          theorem NumberField.RingOfIntegers.map_mk {K : Type u_1} [Field K] (x : K) (hx : x ∈ integralClosure β„€ K) :
          (algebraMap (NumberField.RingOfIntegers K) K) ⟨x, hx⟩ = x
          theorem NumberField.RingOfIntegers.coe_mk {K : Type u_1} [Field K] {x : K} (hx : x ∈ integralClosure β„€ K) :
          β†‘βŸ¨x, hx⟩ = x
          theorem NumberField.RingOfIntegers.mk_eq_mk {K : Type u_1} [Field K] (x : K) (y : K) (hx : x ∈ integralClosure β„€ K) (hy : y ∈ integralClosure β„€ K) :
          ⟨x, hx⟩ = ⟨y, hy⟩ ↔ x = y
          @[simp]
          theorem NumberField.RingOfIntegers.mk_one {K : Type u_1} [Field K] :
          ⟨1, β‹―βŸ© = 1
          @[simp]
          theorem NumberField.RingOfIntegers.mk_zero {K : Type u_1} [Field K] :
          ⟨0, β‹―βŸ© = 0
          @[simp]
          theorem NumberField.RingOfIntegers.mk_add_mk {K : Type u_1} [Field K] (x : K) (y : K) (hx : x ∈ integralClosure β„€ K) (hy : y ∈ integralClosure β„€ K) :
          ⟨x, hx⟩ + ⟨y, hy⟩ = ⟨x + y, β‹―βŸ©
          @[simp]
          theorem NumberField.RingOfIntegers.mk_mul_mk {K : Type u_1} [Field K] (x : K) (y : K) (hx : x ∈ integralClosure β„€ K) (hy : y ∈ integralClosure β„€ K) :
          ⟨x, hx⟩ * ⟨y, hy⟩ = ⟨x * y, β‹―βŸ©
          @[simp]
          theorem NumberField.RingOfIntegers.mk_sub_mk {K : Type u_1} [Field K] (x : K) (y : K) (hx : x ∈ integralClosure β„€ K) (hy : y ∈ integralClosure β„€ K) :
          ⟨x, hx⟩ - ⟨y, hy⟩ = ⟨x - y, β‹―βŸ©
          @[simp]
          theorem NumberField.RingOfIntegers.neg_mk {K : Type u_1} [Field K] (x : K) (hx : x ∈ integralClosure β„€ K) :
          -⟨x, hx⟩ = ⟨-x, β‹―βŸ©

          The ring homomorphism (π“ž K) β†’+* (π“ž L) given by restricting a ring homomorphism f : K β†’+* L to π“ž K.

          Equations
          Instances For

            The ring isomorphsim (π“ž K) ≃+* (π“ž L) given by restricting a ring isomorphsim e : K ≃+* L to π“ž K.

            Equations
            Instances For

              Given an algebra between two fields, create an algebra between their two rings of integers.

              Equations

              The algebra homomorphism (π“ž K) →ₐ[π“ž k] (π“ž L) given by restricting a algebra homomorphism f : K →ₐ[k] L to π“ž K.

              Equations
              Instances For

                The isomorphism of algebras (π“ž K) ≃ₐ[π“ž k] (π“ž L) given by restricting an isomorphism of algebras e : K ≃ₐ[k] L to π“ž K.

                Equations
                Instances For

                  The canonical map from π“ž K to K is injective.

                  This is a convenient abbreviation for NoZeroSMulDivisors.algebraMap_injective.

                  The canonical map from π“ž K to K is injective.

                  This is a convenient abbreviation for map_eq_zero_iff applied to NoZeroSMulDivisors.algebraMap_injective.

                  The canonical map from π“ž K to K is injective.

                  This is a convenient abbreviation for map_ne_zero_iff applied to NoZeroSMulDivisors.algebraMap_injective.

                  The ring of integers of K are equivalent to any integral closure of β„€ in K

                  Equations
                  Instances For

                    The ring of integers of a number field is not a field.

                    def NumberField.RingOfIntegers.restrict {K : Type u_1} [Field K] {M : Type u_3} (f : M β†’ K) (h : βˆ€ (x : M), IsIntegral β„€ (f x)) (x : M) :

                    Given f : M β†’ K such that βˆ€ x, IsIntegral β„€ (f x), the corresponding function M β†’ π“ž K.

                    Equations
                    Instances For

                      Given f : M β†’+ K such that βˆ€ x, IsIntegral β„€ (f x), the corresponding function M β†’+ π“ž K.

                      Equations
                      Instances For
                        def NumberField.RingOfIntegers.restrict_monoidHom {K : Type u_1} [Field K] {M : Type u_3} [MulOneClass M] (f : M β†’* K) (h : βˆ€ (x : M), IsIntegral β„€ (f x)) :

                        Given f : M β†’* K such that βˆ€ x, IsIntegral β„€ (f x), the corresponding function M β†’* π“ž K.

                        Equations
                        Instances For

                          The ring of integers of L is isomorphic to any integral closure of π“ž K in L

                          Equations
                          Instances For

                            Any extension between ring of integers is integral.

                            Equations
                            • β‹― = β‹―

                            Any extension between ring of integers of number fields is noetherian.

                            Equations
                            • β‹― = β‹―

                            The kernel of the algebraMap between ring of integers is βŠ₯.

                            The algebraMap between ring of integers is injective.

                            A basis of K over β„š that is also a basis of π“ž K over β„€.

                            Equations
                            Instances For

                              The ring of integers of β„š as a number field is just β„€.

                              Equations
                              Instances For

                                The quotient of β„š[X] by the ideal generated by an irreducible polynomial of β„š[X] is a number field.

                                Equations
                                • β‹― = β‹―