Documentation

Mathlib.NumberTheory.NumberField.CanonicalEmbedding.Basic

Canonical embedding of a number field #

The canonical embedding of a number field K of degree n is the ring homomorphism K →+* ℂ^n that sends x ∈ K to (φ_₁(x),...,φ_n(x)) where the φ_i's are the complex embeddings of K. Note that we do not choose an ordering of the embeddings, but instead map K into the type (K →+* ℂ) → ℂ of -vectors indexed by the complex embeddings.

Main definitions and results #

Tags #

number field, infinite places

The canonical embedding of a number field K of degree n into ℂ^n.

Equations
Instances For
    @[simp]
    theorem NumberField.canonicalEmbedding.apply_at {K : Type u_1} [Field K] (φ : K →+* ) (x : K) :
    (canonicalEmbedding K) x φ = φ x

    The image of canonicalEmbedding lives in the -submodule of the x ∈ ((K →+* ℂ) → ℂ) such that conj x_φ = x_(conj φ) for all ∀ φ : K →+* ℂ.

    theorem NumberField.canonicalEmbedding.norm_le_iff {K : Type u_1} [Field K] [NumberField K] (x : K) (r : ) :
    (canonicalEmbedding K) x r ∀ (φ : K →+* ), φ x r
    @[reducible, inline]

    The mixed space ℝ^r₁ × ℂ^r₂ with (r₁, r₂) the signature of K.

    Equations
    Instances For

      The mixed embedding of a number field K into the mixed space of K.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem NumberField.mixedEmbedding.mixedEmbedding_apply_ofIsReal (K : Type u_1) [Field K] (x : K) (w : { w : InfinitePlace K // w.IsReal }) :
        @[simp]
        theorem NumberField.mixedEmbedding.mixedEmbedding_apply_ofIsComplex (K : Type u_1) [Field K] (x : K) (w : { w : InfinitePlace K // w.IsComplex }) :
        ((mixedEmbedding K) x).2 w = (↑w).embedding x
        theorem NumberField.mixedEmbedding.volume_eq_zero {K : Type u_1} [Field K] [NumberField K] (w : { w : InfinitePlace K // w.IsReal }) :
        MeasureTheory.volume {x : mixedSpace K | x.1 w = 0} = 0

        The set of points in the mixedSpace that are equal to 0 at a fixed (real) place has volume zero.

        noncomputable def NumberField.mixedEmbedding.commMap (K : Type u_1) [Field K] :

        The linear map that makes canonicalEmbedding and mixedEmbedding commute, see commMap_canonical_eq_mixed.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem NumberField.mixedEmbedding.commMap_apply_of_isReal (K : Type u_1) [Field K] (x : (K →+* )) {w : InfinitePlace K} (hw : w.IsReal) :
          ((commMap K) x).1 w, hw = (x w.embedding).re
          theorem NumberField.mixedEmbedding.commMap_apply_of_isComplex (K : Type u_1) [Field K] (x : (K →+* )) {w : InfinitePlace K} (hw : w.IsComplex) :
          ((commMap K) x).2 w, hw = x w.embedding

          This is a technical result to ensure that the image of the -basis of ℂ^n defined in canonicalEmbedding.latticeBasis is a -basis of the mixed space ℝ^r₁ × ℂ^r₂, see mixedEmbedding.latticeBasis.

          The norm at the infinite place w of an element of the mixed space. -

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem NumberField.mixedEmbedding.normAtPlace_smul {K : Type u_1} [Field K] (w : InfinitePlace K) (x : mixedSpace K) (c : ) :
            (normAtPlace w) (c x) = |c| * (normAtPlace w) x
            theorem NumberField.mixedEmbedding.normAtPlace_real {K : Type u_1} [Field K] (w : InfinitePlace K) (c : ) :
            (normAtPlace w) (fun (x : { w : InfinitePlace K // w.IsReal }) => c, fun (x : { w : InfinitePlace K // w.IsComplex }) => c) = |c|
            theorem NumberField.mixedEmbedding.normAtPlace_apply_isReal {K : Type u_1} [Field K] {w : InfinitePlace K} (hw : w.IsReal) (x : mixedSpace K) :
            (normAtPlace w) x = x.1 w, hw
            theorem NumberField.mixedEmbedding.normAtPlace_apply_isComplex {K : Type u_1} [Field K] {w : InfinitePlace K} (hw : w.IsComplex) (x : mixedSpace K) :
            (normAtPlace w) x = x.2 w, hw
            @[simp]
            @[deprecated NumberField.mixedEmbedding.forall_normAtPlace_eq_zero_iff (since := "2024-09-13")]
            theorem NumberField.mixedEmbedding.normAtPlace_eq_zero {K : Type u_1} [Field K] {x : mixedSpace K} :
            (∀ (w : InfinitePlace K), (normAtPlace w) x = 0) x = 0

            Alias of NumberField.mixedEmbedding.forall_normAtPlace_eq_zero_iff.

            The norm of x is ∏ w, (normAtPlace x) ^ mult w. It is defined such that the norm of mixedEmbedding K a for a : K is equal to the absolute value of the norm of a over , see norm_eq_norm.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              theorem NumberField.mixedEmbedding.norm_apply {K : Type u_1} [Field K] [NumberField K] (x : mixedSpace K) :
              mixedEmbedding.norm x = w : InfinitePlace K, (normAtPlace w) x ^ w.mult
              theorem NumberField.mixedEmbedding.norm_nonneg {K : Type u_1} [Field K] [NumberField K] (x : mixedSpace K) :
              0 mixedEmbedding.norm x
              theorem NumberField.mixedEmbedding.norm_eq_zero_iff {K : Type u_1} [Field K] [NumberField K] {x : mixedSpace K} :
              mixedEmbedding.norm x = 0 ∃ (w : InfinitePlace K), (normAtPlace w) x = 0
              theorem NumberField.mixedEmbedding.norm_ne_zero_iff {K : Type u_1} [Field K] [NumberField K] {x : mixedSpace K} :
              mixedEmbedding.norm x 0 ∀ (w : InfinitePlace K), (normAtPlace w) x 0
              theorem NumberField.mixedEmbedding.norm_eq_of_normAtPlace_eq {K : Type u_1} [Field K] [NumberField K] {x y : mixedSpace K} (h : ∀ (w : InfinitePlace K), (normAtPlace w) x = (normAtPlace w) y) :
              mixedEmbedding.norm x = mixedEmbedding.norm y
              theorem NumberField.mixedEmbedding.norm_smul {K : Type u_1} [Field K] [NumberField K] (c : ) (x : mixedSpace K) :
              mixedEmbedding.norm (c x) = |c| ^ Module.finrank K * mixedEmbedding.norm x
              theorem NumberField.mixedEmbedding.norm_real {K : Type u_1} [Field K] [NumberField K] (c : ) :
              mixedEmbedding.norm (fun (x : { w : InfinitePlace K // w.IsReal }) => c, fun (x : { w : InfinitePlace K // w.IsComplex }) => c) = |c| ^ Module.finrank K
              @[simp]
              theorem NumberField.mixedEmbedding.norm_eq_norm {K : Type u_1} [Field K] [NumberField K] (x : K) :
              mixedEmbedding.norm ((mixedEmbedding K) x) = |(Algebra.norm ) x|
              theorem NumberField.mixedEmbedding.norm_unit {K : Type u_1} [Field K] [NumberField K] (u : (RingOfIntegers K)ˣ) :
              mixedEmbedding.norm ((mixedEmbedding K) ((algebraMap (RingOfIntegers K) K) u)) = 1
              theorem NumberField.mixedEmbedding.norm_eq_zero_iff' {K : Type u_1} [Field K] [NumberField K] {x : mixedSpace K} (hx : x Set.range (mixedEmbedding K)) :
              mixedEmbedding.norm x = 0 x = 0
              @[reducible, inline]

              The type indexing the basis stdBasis.

              Equations
              Instances For

                The -basis of the mixed space of K formed by the vector equal to 1 at w and 0 elsewhere for IsReal w and by the couple of vectors equal to 1 (resp. I) at w and 0 elsewhere for IsComplex w.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]
                  theorem NumberField.mixedEmbedding.stdBasis_apply_ofIsReal {K : Type u_1} [Field K] [NumberField K] (x : mixedSpace K) (w : { w : InfinitePlace K // w.IsReal }) :
                  ((stdBasis K).repr x) (Sum.inl w) = x.1 w
                  @[simp]
                  theorem NumberField.mixedEmbedding.stdBasis_apply_ofIsComplex_fst {K : Type u_1} [Field K] [NumberField K] (x : mixedSpace K) (w : { w : InfinitePlace K // w.IsComplex }) :
                  ((stdBasis K).repr x) (Sum.inr (w, 0)) = (x.2 w).re
                  @[simp]
                  theorem NumberField.mixedEmbedding.stdBasis_apply_ofIsComplex_snd {K : Type u_1} [Field K] [NumberField K] (x : mixedSpace K) (w : { w : InfinitePlace K // w.IsComplex }) :
                  ((stdBasis K).repr x) (Sum.inr (w, 1)) = (x.2 w).im
                  theorem NumberField.mixedEmbedding.fundamentalDomain_stdBasis (K : Type u_1) [Field K] [NumberField K] :
                  ZSpan.fundamentalDomain (stdBasis K) = (Set.univ.pi fun (x : { w : InfinitePlace K // w.IsReal }) => Set.Ico 0 1) ×ˢ Set.univ.pi fun (x : { w : InfinitePlace K // w.IsComplex }) => Complex.measurableEquivPi ⁻¹' Set.univ.pi fun (x : Fin 2) => Set.Ico 0 1

                  The Equiv between index K and K →+* ℂ defined by sending a real infinite place w to the unique corresponding embedding w.embedding, and the pair ⟨w, 0⟩ (resp. ⟨w, 1⟩) for a complex infinite place w to w.embedding (resp. conjugate w.embedding).

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[simp]
                    theorem NumberField.mixedEmbedding.indexEquiv_apply_ofIsReal {K : Type u_1} [Field K] [NumberField K] (w : { w : InfinitePlace K // w.IsReal }) :
                    (indexEquiv K) (Sum.inl w) = (↑w).embedding
                    @[simp]
                    theorem NumberField.mixedEmbedding.indexEquiv_apply_ofIsComplex_fst {K : Type u_1} [Field K] [NumberField K] (w : { w : InfinitePlace K // w.IsComplex }) :
                    (indexEquiv K) (Sum.inr (w, 0)) = (↑w).embedding
                    @[simp]
                    theorem NumberField.mixedEmbedding.indexEquiv_apply_ofIsComplex_snd {K : Type u_1} [Field K] [NumberField K] (w : { w : InfinitePlace K // w.IsComplex }) :
                    (indexEquiv K) (Sum.inr (w, 1)) = ComplexEmbedding.conjugate (↑w).embedding

                    The matrix that gives the representation on stdBasis of the image by commMap of an element x of (K →+* ℂ) → ℂ fixed by the map x_φ ↦ conj x_(conjugate φ), see stdBasis_repr_eq_matrixToStdBasis_mul.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      theorem NumberField.mixedEmbedding.stdBasis_repr_eq_matrixToStdBasis_mul (K : Type u_1) [Field K] [NumberField K] (x : (K →+* )) (hx : ∀ (φ : K →+* ), (starRingEnd ) (x φ) = x (ComplexEmbedding.conjugate φ)) (c : index K) :
                      (((stdBasis K).repr ((commMap K) x)) c) = (matrixToStdBasis K).mulVec (x (indexEquiv K)) c

                      Let x : (K →+* ℂ) → ℂ such that x_φ = conj x_(conj φ) for all φ : K →+* ℂ, then the representation of commMap K x on stdBasis is given (up to reindexing) by the product of matrixToStdBasis by x.

                      @[reducible, inline]

                      The image of the ring of integers of K in the mixed space.

                      Equations
                      Instances For

                        A -basis of the mixed space that is also a -basis of the image of 𝓞 K.

                        Equations
                        Instances For
                          @[reducible, inline]

                          The image of the fractional ideal I in the mixed space.

                          Equations
                          Instances For

                            The generalized index of the lattice generated by I in the lattice generated by 𝓞 K is equal to the norm of the ideal I. The result is stated in terms of base change determinant and is the translation of NumberField.det_basisOfFractionalIdeal_eq_absNorm in the mixed space. This is useful, in particular, to prove that the family obtained from the -basis of I is actually an -basis of the mixed space, see fractionalIdealLatticeBasis.

                            A -basis of the mixed space of K that is also a -basis of the image of the fractional ideal I.

                            Equations
                            Instances For
                              @[reducible, inline]

                              The mixed space ℝ^r₁ × ℂ^r₂, with (r₁, r₂) the signature of K, as an Euclidean space.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                Equations
                                • One or more equations did not get rendered due to their size.

                                The continuous linear equivalence between the euclidean mixed space and the mixed space.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For

                                  An orthonormal basis of the euclidean mixed space.

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    def NumberField.mixedEmbedding.negAt {K : Type u_1} [Field K] (s : Set { w : InfinitePlace K // w.IsReal }) :

                                    Let s be a set of real places, define the continuous linear equiv of the mixed space that swaps sign at places in s and leaves the rest unchanged.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      @[simp]
                                      theorem NumberField.mixedEmbedding.negAt_apply_of_isReal_and_mem {K : Type u_1} [Field K] {s : Set { w : InfinitePlace K // w.IsReal }} (x : mixedSpace K) {w : { w : InfinitePlace K // w.IsReal }} (hw : w s) :
                                      ((negAt s) x).1 w = -x.1 w
                                      @[simp]
                                      theorem NumberField.mixedEmbedding.negAt_apply_of_isReal_and_not_mem {K : Type u_1} [Field K] {s : Set { w : InfinitePlace K // w.IsReal }} (x : mixedSpace K) {w : { w : InfinitePlace K // w.IsReal }} (hw : ws) :
                                      ((negAt s) x).1 w = x.1 w
                                      @[simp]
                                      theorem NumberField.mixedEmbedding.negAt_apply_of_isComplex {K : Type u_1} [Field K] {s : Set { w : InfinitePlace K // w.IsReal }} (x : mixedSpace K) (w : { w : InfinitePlace K // w.IsComplex }) :
                                      ((negAt s) x).2 w = x.2 w
                                      @[simp]
                                      theorem NumberField.mixedEmbedding.negAt_apply_snd {K : Type u_1} [Field K] {s : Set { w : InfinitePlace K // w.IsReal }} (x : mixedSpace K) :
                                      ((negAt s) x).2 = x.2
                                      @[simp]
                                      theorem NumberField.mixedEmbedding.negAt_apply_abs_of_isReal {K : Type u_1} [Field K] {s : Set { w : InfinitePlace K // w.IsReal }} (x : mixedSpace K) (w : { w : InfinitePlace K // w.IsReal }) :
                                      |((negAt s) x).1 w| = |x.1 w|
                                      @[simp]
                                      theorem NumberField.mixedEmbedding.normAtPlace_negAt {K : Type u_1} [Field K] (s : Set { w : InfinitePlace K // w.IsReal }) (x : mixedSpace K) (w : InfinitePlace K) :
                                      (normAtPlace w) ((negAt s) x) = (normAtPlace w) x

                                      negAt preserves normAtPlace.

                                      @[simp]
                                      theorem NumberField.mixedEmbedding.norm_negAt {K : Type u_1} [Field K] {s : Set { w : InfinitePlace K // w.IsReal }} [NumberField K] (x : mixedSpace K) :
                                      mixedEmbedding.norm ((negAt s) x) = mixedEmbedding.norm x

                                      negAt preserves the norm.

                                      @[simp]
                                      theorem NumberField.mixedEmbedding.negAt_symm {K : Type u_1} [Field K] {s : Set { w : InfinitePlace K // w.IsReal }} :
                                      (negAt s).symm = negAt s

                                      negAt is its own inverse.

                                      def NumberField.mixedEmbedding.signSet {K : Type u_1} [Field K] (x : mixedSpace K) :
                                      Set { w : InfinitePlace K // w.IsReal }

                                      For x : mixedSpace K, the set signSet x is the set of real places w s.t. x w ≤ 0.

                                      Equations
                                      Instances For
                                        @[simp]
                                        theorem NumberField.mixedEmbedding.negAt_signSet_apply_of_isReal {K : Type u_1} [Field K] (x : mixedSpace K) (w : { w : InfinitePlace K // w.IsReal }) :
                                        ((negAt (signSet x)) x).1 w = |x.1 w|
                                        @[simp]
                                        theorem NumberField.mixedEmbedding.negAt_signSet_apply_of_isComplex {K : Type u_1} [Field K] (x : mixedSpace K) (w : { w : InfinitePlace K // w.IsComplex }) :
                                        ((negAt (signSet x)) x).2 w = x.2 w
                                        theorem NumberField.mixedEmbedding.negAt_preimage {K : Type u_1} [Field K] (s : Set { w : InfinitePlace K // w.IsReal }) (A : Set (mixedSpace K)) :
                                        (negAt s) ⁻¹' A = (negAt s) '' A

                                        negAt s A is also equal to the preimage of A by negAt s. This fact is used to simplify some proofs.

                                        @[reducible, inline]

                                        The plusPart of a subset A of the mixedSpace is the set of points in A that are positive at all real places.

                                        Equations
                                        Instances For
                                          theorem NumberField.mixedEmbedding.neg_of_mem_negA_plusPart {K : Type u_1} [Field K] {s : Set { w : InfinitePlace K // w.IsReal }} (A : Set (mixedSpace K)) {x : mixedSpace K} (hx : x (negAt s) '' plusPart A) {w : { w : InfinitePlace K // w.IsReal }} (hw : w s) :
                                          x.1 w < 0
                                          theorem NumberField.mixedEmbedding.pos_of_not_mem_negAt_plusPart {K : Type u_1} [Field K] {s : Set { w : InfinitePlace K // w.IsReal }} (A : Set (mixedSpace K)) {x : mixedSpace K} (hx : x (negAt s) '' plusPart A) {w : { w : InfinitePlace K // w.IsReal }} (hw : ws) :
                                          0 < x.1 w
                                          theorem NumberField.mixedEmbedding.disjoint_negAt_plusPart {K : Type u_1} [Field K] (A : Set (mixedSpace K)) :
                                          Pairwise (Function.onFun Disjoint fun (s : Set { w : InfinitePlace K // w.IsReal }) => (negAt s) '' plusPart A)

                                          The images of plusPart by negAt are pairwise disjoint.

                                          theorem NumberField.mixedEmbedding.mem_negAt_plusPart_of_mem {K : Type u_1} [Field K] {s : Set { w : InfinitePlace K // w.IsReal }} (A : Set (mixedSpace K)) {x : mixedSpace K} (hA : ∀ (x : mixedSpace K), x A (fun (w : { w : InfinitePlace K // w.IsReal }) => |x.1 w|, x.2) A) (hx₁ : x A) (hx₂ : ∀ (w : { w : InfinitePlace K // w.IsReal }), x.1 w 0) :
                                          x (negAt s) '' plusPart A (∀ ws, x.1 w < 0) ws, x.1 w > 0
                                          theorem NumberField.mixedEmbedding.iUnion_negAt_plusPart_union {K : Type u_1} [Field K] (A : Set (mixedSpace K)) (hA : ∀ (x : mixedSpace K), x A (fun (w : { w : InfinitePlace K // w.IsReal }) => |x.1 w|, x.2) A) :
                                          (⋃ (s : Set { w : InfinitePlace K // w.IsReal }), (negAt s) '' plusPart A) A ⋃ (w : { w : InfinitePlace K // w.IsReal }), {x : mixedSpace K | x.1 w = 0} = A

                                          Assume that A is symmetric at real places then, the union of the images of plusPart by negAt and of the set of elements of A that are zero at at least one real place is equal to A.

                                          theorem NumberField.mixedEmbedding.iUnion_negAt_plusPart_ae {K : Type u_1} [Field K] (A : Set (mixedSpace K)) (hA : ∀ (x : mixedSpace K), x A (fun (w : { w : InfinitePlace K // w.IsReal }) => |x.1 w|, x.2) A) [NumberField K] :
                                          ⋃ (s : Set { w : InfinitePlace K // w.IsReal }), (negAt s) '' plusPart A =ᵐ[MeasureTheory.volume] A
                                          theorem NumberField.mixedEmbedding.volume_negAt_plusPart {K : Type u_1} [Field K] {s : Set { w : InfinitePlace K // w.IsReal }} (A : Set (mixedSpace K)) [NumberField K] (hm : MeasurableSet A) :
                                          MeasureTheory.volume ((negAt s) '' plusPart A) = MeasureTheory.volume (plusPart A)

                                          The image of the plusPart of A by negAt have all the same volume as plusPart A.

                                          theorem NumberField.mixedEmbedding.volume_eq_two_pow_mul_volume_plusPart {K : Type u_1} [Field K] (A : Set (mixedSpace K)) (hA : ∀ (x : mixedSpace K), x A (fun (w : { w : InfinitePlace K // w.IsReal }) => |x.1 w|, x.2) A) [NumberField K] (hm : MeasurableSet A) :
                                          MeasureTheory.volume A = 2 ^ InfinitePlace.nrRealPlaces K * MeasureTheory.volume (plusPart A)

                                          If a subset A of the mixedSpace is symmetric at real places, then its volume is 2^ nrRealPlaces K times the volume of its plusPart.