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) :
    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
      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 }
        @[simp]
        theorem NumberField.RingOfIntegers.map_mk {K : Type u_1} [Field K] (x : K) (hx : x integralClosure K) :
        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 : MK) (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
                    def NumberField.RingOfIntegers.restrict_addMonoidHom {K : Type u_1} [Field K] {M : Type u_3} [AddZeroClass 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
                      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
                              • =