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

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

    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
    instance NumberField.of_subfield {K : Type u_1} [Field K] [NumberField K] (E : Subfield K) :
    NumberField β†₯E
    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
            instance NumberField.RingOfIntegers.instAlgebra_1 (K : Type u_1) [Field K] {L : Type u_3} [Ring L] [Algebra K L] :
            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
                    theorem NumberField.RingOfIntegers.ext {K : Type u_1} [Field K] {x y : RingOfIntegers K} (h : ↑x = ↑y) :
                    x = y
                    theorem NumberField.RingOfIntegers.ext_iff {K : Type u_1} [Field K] {x y : RingOfIntegers K} :
                    x = y ↔ ↑x = ↑y
                    theorem NumberField.RingOfIntegers.eq_iff {K : Type u_1} [Field K] {x y : RingOfIntegers K} :
                    ↑x = ↑y ↔ x = y
                    theorem NumberField.RingOfIntegers.coe_mk {K : Type u_1} [Field K] {x : K} (hx : x ∈ integralClosure β„€ K) :
                    β†‘βŸ¨x, hx⟩ = x
                    @[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]
                    @[simp]
                    @[simp]
                    @[simp]
                    theorem NumberField.RingOfIntegers.neg_mk {K : Type u_1} [Field K] (x : K) (hx : x ∈ integralClosure β„€ K) :
                    def NumberField.RingOfIntegers.mapRingHom {K : Type u_3} {L : Type u_4} {F : Type u_5} [Field K] [Field L] [FunLike F K L] [RingHomClass F K L] (f : F) :

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

                    Equations
                      Instances For
                        def NumberField.RingOfIntegers.mapRingEquiv {K : Type u_3} {L : Type u_4} {E : Type u_5} [Field K] [Field L] [EquivLike E K L] [RingEquivClass E K L] (e : E) :

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

                        Equations
                          Instances For

                            Given an algebra structure between two fields, this instance creates an algebra structure between their two rings of integers.

                            Equations
                              def NumberField.RingOfIntegers.mapAlgHom {k : Type u_3} {K : Type u_4} {L : Type u_5} {F : Type u_6} [Field k] [Field K] [Field L] [Algebra k K] [Algebra k L] [FunLike F K L] [AlgHomClass F k K L] (f : F) :

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

                              Equations
                                Instances For
                                  def NumberField.RingOfIntegers.mapAlgEquiv {k : Type u_3} {K : Type u_4} {L : Type u_5} {E : Type u_6} [Field k] [Field K] [Field L] [Algebra k K] [Algebra k L] [EquivLike E K L] [AlgEquivClass E k K L] (e : E) :

                                  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 FaithfulSMul.algebraMap_injective.

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

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

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

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

                                      noncomputable def NumberField.RingOfIntegers.equiv {K : Type u_1} [Field K] (R : Type u_3) [CommRing R] [Algebra R K] [IsIntegralClosure R β„€ K] :

                                      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.

                                          A β„€-basis of the ring of integers of K.

                                          Equations
                                            Instances For
                                              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
                                                  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.

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

                                                              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.