Fermat's Last Theorem Blueprint

9. Miniproject: Adeles🔗

9.1. Status🔗

This is an active miniproject.

9.2. Goals🔗

There are several goals to this miniproject.

  1. Define the adeles \A_K of a number field K and give them the structure of a K-algebra.

  2. Prove that \A_K is a locally compact topological ring.

  3. Base change: show that if L/K is a finite extension of number fields then the natural map L\otimes_K\A_K\to\A_L is an isomorphism, both algebraic and topological.

  4. Prove that K \subseteq \A_K is a discrete subgroup and the quotient is compact.

  5. Get this stuff into mathlib.

We briefly go through the basic definitions. Let K be a number field. Let \Zhat=\projlim_{N\geq1}(\Z/N\Z) be the profinite completion of \Z, equipped with the projective limit topology.

A cheap definition of the finite adeles \A_K^\infty of K is K\otimes_{\Z}\Zhat, equipped with the \Zhat-module topology.

A cheap definition of the infinite adeles K_\infty is K\otimes_{\Q}\R with the \R-module topology. This is a finite-dimensional \R-vector space, so this is just the usual topology on \R^n.

A cheap definition of the adeles of K is \A_K^\infty\times K_\infty with the product topology. This is a commutative topological ring.

However in the literature (and in mathlib) we see different definitions. The finite adeles of K are usually defined in the books as the so-called restricted product \prod'_{\mathfrak{p}}K_{\mathfrak{p}} over the completions K_{\mathfrak{p}} of K at all maximal ideals \mathfrak{p}\subseteq\mathcal{O}_K of the integers of K. Here the restricted product is the subset of \prod_{\mathfrak{p}}K_{\mathfrak{p}} consisting of elements which are in the integers \mathcal{O}_{K,\mathfrak{p}} of K_{\mathfrak{p}} for all but finitely many \mathfrak{p}. This is the definition given in mathlib. Mathlib also has the proof that they are a topological ring; furthermore the construction of the finite adeles in mathlib works for any Dedekind domain. The adeles are an arithmetic object, but the finite adeles are an algebraic object.

Similarly the infinite adeles of a number field K are usually defined as \prod_v K_v, the product running over the archimedean completions of K, and this is the mathlib definition.

The adeles of a number field K are the product of the finite and infinite adeles, and mathlib knows that they are a K-algebra and a topological ring.

9.3. Local compactness🔗

As mentioned above, Salvatore Mercuri was the first to give a complete formalization of the proof that the adele ring is locally compact as a topological space. His work proved the result using the ad hoc topology on the adeles which we initially had. Since then, adeles have been refactored to have the direct limit topology and mathlib has RestrictedProduct.locallyCompactSpace_of_addGroup, the result that a restricted product of topological additive groups K_v over compact open subgroups A_v is locally compact.

What we need then is this (note that this is not true for a general Dedekind domain):

Theorem9.1
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.2
Blueprint label
  • «NumberField.AdeleRing.locallyCompactSpace»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀N
Used by 2
Hover a use site to preview it.
Preview
Theorem 9.2
Blueprint label
  • «NumberField.AdeleRing.locallyCompactSpace»
Uses target in
  • statement

If K is a number field and v is a nonzero prime ideal of the integers of K, then the integers of K_v is a compact open subgroup.

Code for Theorem9.11 theorem
  • theorem NumberField.instCompactSpaceAdicCompletionIntegers.{u_1} (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1]
      (vIsDedekindDomain.HeightOneSpectrum (NumberField.RingOfIntegers K) :
        IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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.  (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1)) :
      CompactSpaceCompactSpace.{u_1} (X : Type u_1) [TopologicalSpace X] : PropType class for compact spaces. Separation is sometimes included in the definition, especially
    in the French literature, but we do not include it here. 
        (IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegersIsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers.{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) :
      ValuationSubring (IsDedekindDomain.HeightOneSpectrum.adicCompletion K v)The ring of integers of `adicCompletion`.  KType u_1 vIsDedekindDomain.HeightOneSpectrum (NumberField.RingOfIntegers K))
    theorem NumberField.instCompactSpaceAdicCompletionIntegers.{u_1}
      (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1]
      (vIsDedekindDomain.HeightOneSpectrum (NumberField.RingOfIntegers K) :
        IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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. 
          (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1)) :
      CompactSpaceCompactSpace.{u_1} (X : Type u_1) [TopologicalSpace X] : PropType class for compact spaces. Separation is sometimes included in the definition, especially
    in the French literature, but we do not include it here. 
        (IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegersIsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers.{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) :
      ValuationSubring (IsDedekindDomain.HeightOneSpectrum.adicCompletion K v)The ring of integers of `adicCompletion`. 
            KType u_1 vIsDedekindDomain.HeightOneSpectrum (NumberField.RingOfIntegers K))
    complete
Proof

Openness should follow from the fact that the integers are \{x : v(x)<v(1/\pi)\} where \pi is a uniformizer. Compactness needs finiteness of the residue field \mathcal{O}_K/v.

Once we have this, the above result from mathlib gives us

Theorem9.2
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 0

Theorem 9.1 The adeles of a number field are locally compact.

Code for Theorem9.21 theorem
  • theorem NumberField.AdeleRing.locallyCompactSpace.{u_1} {KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] :
      LocallyCompactSpaceLocallyCompactSpace.{u_3} (X : Type u_3) [TopologicalSpace X] : PropThere are various definitions of "locally compact space" in the literature,
    which agree for Hausdorff spaces but not in general.
    This one is the precise condition on X needed
    for the evaluation map `C(X, Y) × X → Y` to be continuous for all `Y`
    when `C(X, Y)` is given the compact-open topology.
    
    See also `WeaklyLocallyCompactSpace`, a typeclass that only assumes
    that each point has a compact neighborhood. 
        (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1) KType u_1)
    theorem NumberField.AdeleRing.locallyCompactSpace.{u_1}
      {KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] :
      LocallyCompactSpaceLocallyCompactSpace.{u_3} (X : Type u_3) [TopologicalSpace X] : PropThere are various definitions of "locally compact space" in the literature,
    which agree for Hausdorff spaces but not in general.
    This one is the precise condition on X needed
    for the evaluation map `C(X, Y) × X → Y` to be continuous for all `Y`
    when `C(X, Y)` is given the compact-open topology.
    
    See also `WeaklyLocallyCompactSpace`, a typeclass that only assumes
    that each point has a compact neighborhood. 
        (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
    
          (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1) KType u_1)
    complete
Proof

The adeles of a number field are a product of the finite adeles and the infinite adeles so it suffices to prove that the finite and infinite adeles are locally compact. The infinite adeles are just isomorphic to \R^n as a topological space, so they're certainly locally compact. As for the finite adeles, the mathlib theorem RestrictedProduct.locallyCompactSpace_of_addGroup says that a restricted product of locally compact additive groups with respect to open compact subgroups is locally compact, so this reduces us the previous result.

9.4. Base change🔗

The "theorem" we want is that if L/K is a finite extension of number fields, then \A_L = L \otimes_K \A_K. This isn't a theorem though, this is actually a definition (the map between the two objects) and a theorem about the definition (that it's an isomorphism).

In fact the full claim is that it is both a homeomorphism and an L-algebra isomorphism. Before we can prove the theorem, we need to make the definition.

Recall that the adeles \A_K of a number field is a product \A_K^\infty\times K_\infty of the finite adeles and the infinite adeles. So our "theorem" follows immediately from the "theorems" that \A_L^\infty=L\otimes_K\A_K^\infty and L_\infty=L\otimes_KK_\infty (both of these equalities mean an algebraic and topological isomorphism). We may thus treat the finite and infinite results separately.

9.4.1. Base Change For Nonarchimedean Completions🔗

As pointed out above, the theory of finite adeles works fine for Dedekind domains. So for the time being let A be a Dedekind domain. Recall that the height one spectrum of A is the nonzero prime ideals of A.

Note that because we stick to the literature, rather than to common sense, fields are Dedekind domains in mathlib, and the height one spectrum of a field is empty.

Lemma9.3
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀N
Used by 2
Hover a use site to preview it.
Preview
Definition 9.4
Blueprint label
  • «IsDedekindDomain.HeightOneSpectrum.adicCompletionComapSemialgHom»
Uses target in
  • statement

If i:K\to L denotes the inclusion then for k\in K we have e\times w(i(k))=v(k), where e is the ramification index of w/v (recall that valuations here are written additively, unlike in mathlib).

Code for Lemma9.31 theorem
  • theorem IsDedekindDomain.HeightOneSpectrum.valuation_comap.{u_1, u_2, u_3, u_4}
      (AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3] [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3] (wIsDedekindDomain.HeightOneSpectrum B : IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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.  BType u_4)
      (xK : KType u_2) :
      (IsDedekindDomain.HeightOneSpectrum.valuationIsDedekindDomain.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`.  KType u_2
              (IsDedekindDomain.HeightOneSpectrum.comapIsDedekindDomain.HeightOneSpectrum.comap.{u_1, u_4} (A : Type u_1) {B : Type u_4} [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (w : IsDedekindDomain.HeightOneSpectrum B) : IsDedekindDomain.HeightOneSpectrum AIf B/A is an integral extension of Dedekind domains, `comap w` is the pullback
    of the nonzero prime `w` to `A`.  AType u_1 wIsDedekindDomain.HeightOneSpectrum B))
            xK ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`.
    The meaning of this notation is type-dependent. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `^` in identifiers is `pow`.
          Ideal.ramificationIdxIdeal.ramificationIdx.{u, v} {R : Type u} [CommRing R] {S : Type v} [CommRing S] (f : R →+* S) (p : Ideal R)
      (P : Ideal S) : ℕThe ramification index of `P` over `p` is the largest exponent `n` such that
    `p` is contained in `P^n`.
    
    In particular, if `p` is not contained in `P^n`, then the ramification index is 0.
    
    If there is no largest such `n` (e.g. because `p = ⊥`), then `ramificationIdx` is
    defined to be 0.
     (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  AType u_1 BType u_4)
            (IsDedekindDomain.HeightOneSpectrum.comapIsDedekindDomain.HeightOneSpectrum.comap.{u_1, u_4} (A : Type u_1) {B : Type u_4} [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (w : IsDedekindDomain.HeightOneSpectrum B) : IsDedekindDomain.HeightOneSpectrum AIf B/A is an integral extension of Dedekind domains, `comap w` is the pullback
    of the nonzero prime `w` to `A`.  AType u_1 wIsDedekindDomain.HeightOneSpectrum B).asIdealIsDedekindDomain.HeightOneSpectrum.asIdeal.{u_1} {R : Type u_1} [CommRing R]
      (self : IsDedekindDomain.HeightOneSpectrum R) : Ideal R
            wIsDedekindDomain.HeightOneSpectrum B.asIdealIsDedekindDomain.HeightOneSpectrum.asIdeal.{u_1} {R : Type u_1} [CommRing R]
      (self : IsDedekindDomain.HeightOneSpectrum R) : Ideal R =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
        (IsDedekindDomain.HeightOneSpectrum.valuationIsDedekindDomain.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`.  LType u_3 wIsDedekindDomain.HeightOneSpectrum B)
          ((algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_2 LType u_3) xK)
    theorem IsDedekindDomain.HeightOneSpectrum.valuation_comap.{u_1,
        u_2, u_3, u_4}
      (AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3]
      [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      (wIsDedekindDomain.HeightOneSpectrum B :
        IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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.  BType u_4)
      (xK : KType u_2) :
      (IsDedekindDomain.HeightOneSpectrum.valuationIsDedekindDomain.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`. 
              KType u_2
              (IsDedekindDomain.HeightOneSpectrum.comapIsDedekindDomain.HeightOneSpectrum.comap.{u_1, u_4} (A : Type u_1) {B : Type u_4} [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (w : IsDedekindDomain.HeightOneSpectrum B) : IsDedekindDomain.HeightOneSpectrum AIf B/A is an integral extension of Dedekind domains, `comap w` is the pullback
    of the nonzero prime `w` to `A`. 
                AType u_1 wIsDedekindDomain.HeightOneSpectrum B))
            xK ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`.
    The meaning of this notation is type-dependent. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `^` in identifiers is `pow`.
          Ideal.ramificationIdxIdeal.ramificationIdx.{u, v} {R : Type u} [CommRing R] {S : Type v} [CommRing S] (f : R →+* S) (p : Ideal R)
      (P : Ideal S) : ℕThe ramification index of `P` over `p` is the largest exponent `n` such that
    `p` is contained in `P^n`.
    
    In particular, if `p` is not contained in `P^n`, then the ramification index is 0.
    
    If there is no largest such `n` (e.g. because `p = ⊥`), then `ramificationIdx` is
    defined to be 0.
    
            (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  AType u_1 BType u_4)
            (IsDedekindDomain.HeightOneSpectrum.comapIsDedekindDomain.HeightOneSpectrum.comap.{u_1, u_4} (A : Type u_1) {B : Type u_4} [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (w : IsDedekindDomain.HeightOneSpectrum B) : IsDedekindDomain.HeightOneSpectrum AIf B/A is an integral extension of Dedekind domains, `comap w` is the pullback
    of the nonzero prime `w` to `A`. 
                AType u_1 wIsDedekindDomain.HeightOneSpectrum B).asIdealIsDedekindDomain.HeightOneSpectrum.asIdeal.{u_1} {R : Type u_1} [CommRing R]
      (self : IsDedekindDomain.HeightOneSpectrum R) : Ideal R
            wIsDedekindDomain.HeightOneSpectrum B.asIdealIsDedekindDomain.HeightOneSpectrum.asIdeal.{u_1} {R : Type u_1} [CommRing R]
      (self : IsDedekindDomain.HeightOneSpectrum R) : Ideal R =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
        (IsDedekindDomain.HeightOneSpectrum.valuationIsDedekindDomain.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`. 
            LType u_3 wIsDedekindDomain.HeightOneSpectrum B)
          ((algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_2 LType u_3) xK)
    If w | v then for x ∈ K we have w(x)=v(x)^e where e is the ramification index. 
    complete
Proof

Standard (and formalized).

Definition9.4
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀N

Lemma 9.3 There's a natural ring map K_v\to L_w extending the map K\to L. It is defined by completing the inclusion K\to L at the finite places v and w (which can be done because the previous lemma shows that the map is uniformly continuous for the v-adic and w-adic topologies).

Code for Definition9.41 definition
  • def IsDedekindDomain.HeightOneSpectrum.Extension.adicCompletionSemialgHom.{u_1,
        u_2, u_3, u_4}
      {AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) {BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. }
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3] [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4] {vIsDedekindDomain.HeightOneSpectrum A : IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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.  AType u_1}
      (wIsDedekindDomain.HeightOneSpectrum.Extension B v : IsDedekindDomain.HeightOneSpectrum.ExtensionIsDedekindDomain.HeightOneSpectrum.Extension.{u_1, u_4} {A : Type u_1} (B : Type u_4) [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (v : IsDedekindDomain.HeightOneSpectrum A) : Type u_4If `B` is an `A`-algebra and `v : HeightOneSpectrum A` is a nonzero prime,
    then `v.Extension B` is the subtype of `HeightOneSpeectrum B` consisting of valuations of `B`
    which restrict to `v`.  BType u_4 vIsDedekindDomain.HeightOneSpectrum A) :
      IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation.  KType u_2
          vIsDedekindDomain.HeightOneSpectrum A →ₛₐ[SemialgHom.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [CommSemiring R] [CommSemiring S] (φ : R →+* S)
      (A : Type u_3) (B : Type u_4) [Semiring A] [Semiring B] [Algebra R A] [Algebra S B] : Type (max u_3 u_4)Let `φ : R →+* S` be a ring homomorphism, let `A` be an `R`-algebra and let `B` be
    an `S`-algebra. Then `SemialgHom φ A B` or `A →ₛₐ[φ] B` is the ring homomorphisms `ψ : A →+* B`
    making lying above `φ` (i.e. such that `ψ (r • a) = φ r • ψ a`).
    (fun vIsDedekindDomain.HeightOneSpectrum A wIsDedekindDomain.HeightOneSpectrum B 
            algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure. 
              (WithValWithVal.{u_1, u_2} {R : Type u_1} {Γ₀ : Type u_2} [LinearOrderedCommGroupWithZero Γ₀] [Ring R] :
      Valuation R Γ₀ → Type u_1Type synonym for a ring equipped with the topology coming from a valuation.  (IsDedekindDomain.HeightOneSpectrum.valuationIsDedekindDomain.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`.  KType u_2 vIsDedekindDomain.HeightOneSpectrum A))
              (WithValWithVal.{u_1, u_2} {R : Type u_1} {Γ₀ : Type u_2} [LinearOrderedCommGroupWithZero Γ₀] [Ring R] :
      Valuation R Γ₀ → Type u_1Type synonym for a ring equipped with the topology coming from a valuation.  (IsDedekindDomain.HeightOneSpectrum.valuationIsDedekindDomain.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`.  LType u_3 wIsDedekindDomain.HeightOneSpectrum B)))
          vIsDedekindDomain.HeightOneSpectrum A wIsDedekindDomain.HeightOneSpectrum.Extension B v]SemialgHom.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [CommSemiring R] [CommSemiring S] (φ : R →+* S)
      (A : Type u_3) (B : Type u_4) [Semiring A] [Semiring B] [Algebra R A] [Algebra S B] : Type (max u_3 u_4)Let `φ : R →+* S` be a ring homomorphism, let `A` be an `R`-algebra and let `B` be
    an `S`-algebra. Then `SemialgHom φ A B` or `A →ₛₐ[φ] B` is the ring homomorphisms `ψ : A →+* B`
    making lying above `φ` (i.e. such that `ψ (r • a) = φ r • ψ a`).
    
        IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation.  LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v
    def IsDedekindDomain.HeightOneSpectrum.Extension.adicCompletionSemialgHom.{u_1,
        u_2, u_3, u_4}
      {AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) {BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. }
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3]
      [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4]
      {vIsDedekindDomain.HeightOneSpectrum A :
        IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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.  AType u_1}
      (wIsDedekindDomain.HeightOneSpectrum.Extension B v :
        IsDedekindDomain.HeightOneSpectrum.ExtensionIsDedekindDomain.HeightOneSpectrum.Extension.{u_1, u_4} {A : Type u_1} (B : Type u_4) [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (v : IsDedekindDomain.HeightOneSpectrum A) : Type u_4If `B` is an `A`-algebra and `v : HeightOneSpectrum A` is a nonzero prime,
    then `v.Extension B` is the subtype of `HeightOneSpeectrum B` consisting of valuations of `B`
    which restrict to `v`. 
          BType u_4 vIsDedekindDomain.HeightOneSpectrum A) :
      IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation. 
          KType u_2
          vIsDedekindDomain.HeightOneSpectrum A →ₛₐ[SemialgHom.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [CommSemiring R] [CommSemiring S] (φ : R →+* S)
      (A : Type u_3) (B : Type u_4) [Semiring A] [Semiring B] [Algebra R A] [Algebra S B] : Type (max u_3 u_4)Let `φ : R →+* S` be a ring homomorphism, let `A` be an `R`-algebra and let `B` be
    an `S`-algebra. Then `SemialgHom φ A B` or `A →ₛₐ[φ] B` is the ring homomorphisms `ψ : A →+* B`
    making lying above `φ` (i.e. such that `ψ (r • a) = φ r • ψ a`).
    (fun vIsDedekindDomain.HeightOneSpectrum A wIsDedekindDomain.HeightOneSpectrum B 
            algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure. 
              (WithValWithVal.{u_1, u_2} {R : Type u_1} {Γ₀ : Type u_2} [LinearOrderedCommGroupWithZero Γ₀] [Ring R] :
      Valuation R Γ₀ → Type u_1Type synonym for a ring equipped with the topology coming from a valuation. 
                (IsDedekindDomain.HeightOneSpectrum.valuationIsDedekindDomain.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`. 
                  KType u_2 vIsDedekindDomain.HeightOneSpectrum A))
              (WithValWithVal.{u_1, u_2} {R : Type u_1} {Γ₀ : Type u_2} [LinearOrderedCommGroupWithZero Γ₀] [Ring R] :
      Valuation R Γ₀ → Type u_1Type synonym for a ring equipped with the topology coming from a valuation. 
                (IsDedekindDomain.HeightOneSpectrum.valuationIsDedekindDomain.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`. 
                  LType u_3 wIsDedekindDomain.HeightOneSpectrum B)))
          vIsDedekindDomain.HeightOneSpectrum A wIsDedekindDomain.HeightOneSpectrum.Extension B v]SemialgHom.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [CommSemiring R] [CommSemiring S] (φ : R →+* S)
      (A : Type u_3) (B : Type u_4) [Semiring A] [Semiring B] [Algebra R A] [Algebra S B] : Type (max u_3 u_4)Let `φ : R →+* S` be a ring homomorphism, let `A` be an `R`-algebra and let `B` be
    an `S`-algebra. Then `SemialgHom φ A B` or `A →ₛₐ[φ] B` is the ring homomorphisms `ψ : A →+* B`
    making lying above `φ` (i.e. such that `ψ (r • a) = φ r • ψ a`).
    
        IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation. 
          LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v
    If w of L divides v of K, `comapSemialgHom v w pf` is the canonical map
    `Kᵥ → L_w` lying above `K → L`. Here we actually use the type synonyms `WithVal K` and `WithVal L`.
    
    complete
Lemma9.5
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

Lemma 9.3 Definition 9.4 If i_v:K_v\to L_w denotes the map of the previous definition then for x\in K_v we have e\times w(i(k))=v(k), where e is the ramification index of w/v.

Code for Lemma9.51 theorem
  • theorem IsDedekindDomain.HeightOneSpectrum.Extension.valued_adicCompletionSemialgHom.{u_1,
        u_2, u_3, u_4}
      {AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) {BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. }
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3] [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4] {vIsDedekindDomain.HeightOneSpectrum A : IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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.  AType u_1}
      (wIsDedekindDomain.HeightOneSpectrum.Extension B v : IsDedekindDomain.HeightOneSpectrum.ExtensionIsDedekindDomain.HeightOneSpectrum.Extension.{u_1, u_4} {A : Type u_1} (B : Type u_4) [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (v : IsDedekindDomain.HeightOneSpectrum A) : Type u_4If `B` is an `A`-algebra and `v : HeightOneSpectrum A` is a nonzero prime,
    then `v.Extension B` is the subtype of `HeightOneSpeectrum B` consisting of valuations of `B`
    which restrict to `v`.  BType u_4 vIsDedekindDomain.HeightOneSpectrum A)
      (xIsDedekindDomain.HeightOneSpectrum.adicCompletion K v : IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation.  KType u_2 vIsDedekindDomain.HeightOneSpectrum A) :
      Valued.vValued.v.{v, u} {R : Type u} {inst✝ : Ring R} {Γ₀ : outParam (Type v)} {inst✝¹ : LinearOrderedCommGroupWithZero Γ₀}
      [self : Valued R Γ₀] : Valuation R Γ₀
          ((IsDedekindDomain.HeightOneSpectrum.Extension.adicCompletionSemialgHomIsDedekindDomain.HeightOneSpectrum.Extension.adicCompletionSemialgHom.{u_1, u_2, u_3, u_4} {A : Type u_1} (K : Type u_2)
      (L : Type u_3) {B : Type u_4} [CommRing A] [CommRing B] [Algebra A B] [Field K] [Field L] [Algebra A K]
      [IsFractionRing A K] [Algebra B L] [IsDedekindDomain A] [Algebra K L] [Algebra A L] [IsScalarTower A B L]
      [IsScalarTower A K L] [Algebra.IsIntegral A B] [IsFractionRing B L] [IsDedekindDomain B]
      {v : IsDedekindDomain.HeightOneSpectrum A} (w : IsDedekindDomain.HeightOneSpectrum.Extension B v) :
      IsDedekindDomain.HeightOneSpectrum.adicCompletion K
          v →ₛₐ[(fun v w ↦
            algebraMap (WithVal (IsDedekindDomain.HeightOneSpectrum.valuation K v))
              (WithVal (IsDedekindDomain.HeightOneSpectrum.valuation L w)))
          v ↑w]
        IsDedekindDomain.HeightOneSpectrum.adicCompletion L ↑wIf w of L divides v of K, `comapSemialgHom v w pf` is the canonical map
    `Kᵥ → L_w` lying above `K → L`. Here we actually use the type synonyms `WithVal K` and `WithVal L`.
    
              KType u_2 LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v)
            xIsDedekindDomain.HeightOneSpectrum.adicCompletion K v) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
        Valued.vValued.v.{v, u} {R : Type u} {inst✝ : Ring R} {Γ₀ : outParam (Type v)} {inst✝¹ : LinearOrderedCommGroupWithZero Γ₀}
      [self : Valued R Γ₀] : Valuation R Γ₀ xIsDedekindDomain.HeightOneSpectrum.adicCompletion K v ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`.
    The meaning of this notation is type-dependent. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `^` in identifiers is `pow`.
          Ideal.ramificationIdxIdeal.ramificationIdx.{u, v} {R : Type u} [CommRing R] {S : Type v} [CommRing S] (f : R →+* S) (p : Ideal R)
      (P : Ideal S) : ℕThe ramification index of `P` over `p` is the largest exponent `n` such that
    `p` is contained in `P^n`.
    
    In particular, if `p` is not contained in `P^n`, then the ramification index is 0.
    
    If there is no largest such `n` (e.g. because `p = ⊥`), then `ramificationIdx` is
    defined to be 0.
     (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  AType u_1 BType u_4)
            (IsDedekindDomain.HeightOneSpectrum.comapIsDedekindDomain.HeightOneSpectrum.comap.{u_1, u_4} (A : Type u_1) {B : Type u_4} [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (w : IsDedekindDomain.HeightOneSpectrum B) : IsDedekindDomain.HeightOneSpectrum AIf B/A is an integral extension of Dedekind domains, `comap w` is the pullback
    of the nonzero prime `w` to `A`.  AType u_1 wIsDedekindDomain.HeightOneSpectrum.Extension B v).asIdealIsDedekindDomain.HeightOneSpectrum.asIdeal.{u_1} {R : Type u_1} [CommRing R]
      (self : IsDedekindDomain.HeightOneSpectrum R) : Ideal R
            (↑wIsDedekindDomain.HeightOneSpectrum.Extension B v).asIdealIsDedekindDomain.HeightOneSpectrum.asIdeal.{u_1} {R : Type u_1} [CommRing R]
      (self : IsDedekindDomain.HeightOneSpectrum R) : Ideal R
    theorem IsDedekindDomain.HeightOneSpectrum.Extension.valued_adicCompletionSemialgHom.{u_1,
        u_2, u_3, u_4}
      {AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) {BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. }
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3]
      [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4]
      {vIsDedekindDomain.HeightOneSpectrum A :
        IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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.  AType u_1}
      (wIsDedekindDomain.HeightOneSpectrum.Extension B v :
        IsDedekindDomain.HeightOneSpectrum.ExtensionIsDedekindDomain.HeightOneSpectrum.Extension.{u_1, u_4} {A : Type u_1} (B : Type u_4) [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (v : IsDedekindDomain.HeightOneSpectrum A) : Type u_4If `B` is an `A`-algebra and `v : HeightOneSpectrum A` is a nonzero prime,
    then `v.Extension B` is the subtype of `HeightOneSpeectrum B` consisting of valuations of `B`
    which restrict to `v`. 
          BType u_4 vIsDedekindDomain.HeightOneSpectrum A)
      (xIsDedekindDomain.HeightOneSpectrum.adicCompletion K v :
        IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation. 
          KType u_2 vIsDedekindDomain.HeightOneSpectrum A) :
      Valued.vValued.v.{v, u} {R : Type u} {inst✝ : Ring R} {Γ₀ : outParam (Type v)} {inst✝¹ : LinearOrderedCommGroupWithZero Γ₀}
      [self : Valued R Γ₀] : Valuation R Γ₀
          ((IsDedekindDomain.HeightOneSpectrum.Extension.adicCompletionSemialgHomIsDedekindDomain.HeightOneSpectrum.Extension.adicCompletionSemialgHom.{u_1, u_2, u_3, u_4} {A : Type u_1} (K : Type u_2)
      (L : Type u_3) {B : Type u_4} [CommRing A] [CommRing B] [Algebra A B] [Field K] [Field L] [Algebra A K]
      [IsFractionRing A K] [Algebra B L] [IsDedekindDomain A] [Algebra K L] [Algebra A L] [IsScalarTower A B L]
      [IsScalarTower A K L] [Algebra.IsIntegral A B] [IsFractionRing B L] [IsDedekindDomain B]
      {v : IsDedekindDomain.HeightOneSpectrum A} (w : IsDedekindDomain.HeightOneSpectrum.Extension B v) :
      IsDedekindDomain.HeightOneSpectrum.adicCompletion K
          v →ₛₐ[(fun v w ↦
            algebraMap (WithVal (IsDedekindDomain.HeightOneSpectrum.valuation K v))
              (WithVal (IsDedekindDomain.HeightOneSpectrum.valuation L w)))
          v ↑w]
        IsDedekindDomain.HeightOneSpectrum.adicCompletion L ↑wIf w of L divides v of K, `comapSemialgHom v w pf` is the canonical map
    `Kᵥ → L_w` lying above `K → L`. Here we actually use the type synonyms `WithVal K` and `WithVal L`.
    
              KType u_2 LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v)
            xIsDedekindDomain.HeightOneSpectrum.adicCompletion K v) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
        Valued.vValued.v.{v, u} {R : Type u} {inst✝ : Ring R} {Γ₀ : outParam (Type v)} {inst✝¹ : LinearOrderedCommGroupWithZero Γ₀}
      [self : Valued R Γ₀] : Valuation R Γ₀ xIsDedekindDomain.HeightOneSpectrum.adicCompletion K v ^HPow.hPow.{u, v, w} {α : Type u} {β : Type v} {γ : outParam (Type w)} [self : HPow α β γ] : α → β → γ`a ^ b` computes `a` to the power of `b`.
    The meaning of this notation is type-dependent. 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `^` in identifiers is `pow`.
          Ideal.ramificationIdxIdeal.ramificationIdx.{u, v} {R : Type u} [CommRing R] {S : Type v} [CommRing S] (f : R →+* S) (p : Ideal R)
      (P : Ideal S) : ℕThe ramification index of `P` over `p` is the largest exponent `n` such that
    `p` is contained in `P^n`.
    
    In particular, if `p` is not contained in `P^n`, then the ramification index is 0.
    
    If there is no largest such `n` (e.g. because `p = ⊥`), then `ramificationIdx` is
    defined to be 0.
    
            (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  AType u_1 BType u_4)
            (IsDedekindDomain.HeightOneSpectrum.comapIsDedekindDomain.HeightOneSpectrum.comap.{u_1, u_4} (A : Type u_1) {B : Type u_4} [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (w : IsDedekindDomain.HeightOneSpectrum B) : IsDedekindDomain.HeightOneSpectrum AIf B/A is an integral extension of Dedekind domains, `comap w` is the pullback
    of the nonzero prime `w` to `A`. 
                AType u_1 wIsDedekindDomain.HeightOneSpectrum.Extension B v).asIdealIsDedekindDomain.HeightOneSpectrum.asIdeal.{u_1} {R : Type u_1} [CommRing R]
      (self : IsDedekindDomain.HeightOneSpectrum R) : Ideal R
            (↑wIsDedekindDomain.HeightOneSpectrum.Extension B v).asIdealIsDedekindDomain.HeightOneSpectrum.asIdeal.{u_1} {R : Type u_1} [CommRing R]
      (self : IsDedekindDomain.HeightOneSpectrum R) : Ideal R
    The local ramification index for the extension L_w/K_v is equal to the global ramification
    index for the extension w/v. In other words, if x in K_v and i:K_v->L_w then w(i(x))=v(x)^e
    where e is computed globally.
    
    complete
Proof

Follows by continuity from lemma IsDedekindDomain.HeightOneSpectrum.valuation_comap.

Lemma9.6
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

Lemma 9.5 The map i_v:K_v\to L_w sends the integer ring A_v into B_w.

Code for Lemma9.61 theorem
  • theorem IsDedekindDomain.HeightOneSpectrum.Extension.adicCompletionSemialgHom_image_adicCompletionIntegers.{u_1,
        u_2, u_3, u_4}
      {AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) {BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. }
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3] [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4] {vIsDedekindDomain.HeightOneSpectrum A : IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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.  AType u_1}
      (wIsDedekindDomain.HeightOneSpectrum.Extension B v : IsDedekindDomain.HeightOneSpectrum.ExtensionIsDedekindDomain.HeightOneSpectrum.Extension.{u_1, u_4} {A : Type u_1} (B : Type u_4) [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (v : IsDedekindDomain.HeightOneSpectrum A) : Type u_4If `B` is an `A`-algebra and `v : HeightOneSpectrum A` is a nonzero prime,
    then `v.Extension B` is the subtype of `HeightOneSpeectrum B` consisting of valuations of `B`
    which restrict to `v`.  BType u_4 vIsDedekindDomain.HeightOneSpectrum A) :
      (IsDedekindDomain.HeightOneSpectrum.Extension.adicCompletionSemialgHomIsDedekindDomain.HeightOneSpectrum.Extension.adicCompletionSemialgHom.{u_1, u_2, u_3, u_4} {A : Type u_1} (K : Type u_2)
      (L : Type u_3) {B : Type u_4} [CommRing A] [CommRing B] [Algebra A B] [Field K] [Field L] [Algebra A K]
      [IsFractionRing A K] [Algebra B L] [IsDedekindDomain A] [Algebra K L] [Algebra A L] [IsScalarTower A B L]
      [IsScalarTower A K L] [Algebra.IsIntegral A B] [IsFractionRing B L] [IsDedekindDomain B]
      {v : IsDedekindDomain.HeightOneSpectrum A} (w : IsDedekindDomain.HeightOneSpectrum.Extension B v) :
      IsDedekindDomain.HeightOneSpectrum.adicCompletion K
          v →ₛₐ[(fun v w ↦
            algebraMap (WithVal (IsDedekindDomain.HeightOneSpectrum.valuation K v))
              (WithVal (IsDedekindDomain.HeightOneSpectrum.valuation L w)))
          v ↑w]
        IsDedekindDomain.HeightOneSpectrum.adicCompletion L ↑wIf w of L divides v of K, `comapSemialgHom v w pf` is the canonical map
    `Kᵥ → L_w` lying above `K → L`. Here we actually use the type synonyms `WithVal K` and `WithVal L`.
    
              KType u_2 LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v) ''Set.image.{u, v} {α : Type u} {β : Type v} (f : α → β) (s : Set α) : Set βThe image of `s : Set α` by `f : α → β`, written `f '' s`, is the set of `b : β` such that
    `f a = b` for some `a ∈ s`. 
          (IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegersIsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers.{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) :
      ValuationSubring (IsDedekindDomain.HeightOneSpectrum.adicCompletion K v)The ring of integers of `adicCompletion`.  KType u_2 vIsDedekindDomain.HeightOneSpectrum A) HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b`  
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `⊆` in identifiers is `subset`.
        (IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegersIsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers.{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) :
      ValuationSubring (IsDedekindDomain.HeightOneSpectrum.adicCompletion K v)The ring of integers of `adicCompletion`.  LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v)
    theorem IsDedekindDomain.HeightOneSpectrum.Extension.adicCompletionSemialgHom_image_adicCompletionIntegers.{u_1,
        u_2, u_3, u_4}
      {AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) {BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. }
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3]
      [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4]
      {vIsDedekindDomain.HeightOneSpectrum A :
        IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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.  AType u_1}
      (wIsDedekindDomain.HeightOneSpectrum.Extension B v :
        IsDedekindDomain.HeightOneSpectrum.ExtensionIsDedekindDomain.HeightOneSpectrum.Extension.{u_1, u_4} {A : Type u_1} (B : Type u_4) [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (v : IsDedekindDomain.HeightOneSpectrum A) : Type u_4If `B` is an `A`-algebra and `v : HeightOneSpectrum A` is a nonzero prime,
    then `v.Extension B` is the subtype of `HeightOneSpeectrum B` consisting of valuations of `B`
    which restrict to `v`. 
          BType u_4 vIsDedekindDomain.HeightOneSpectrum A) :
      (IsDedekindDomain.HeightOneSpectrum.Extension.adicCompletionSemialgHomIsDedekindDomain.HeightOneSpectrum.Extension.adicCompletionSemialgHom.{u_1, u_2, u_3, u_4} {A : Type u_1} (K : Type u_2)
      (L : Type u_3) {B : Type u_4} [CommRing A] [CommRing B] [Algebra A B] [Field K] [Field L] [Algebra A K]
      [IsFractionRing A K] [Algebra B L] [IsDedekindDomain A] [Algebra K L] [Algebra A L] [IsScalarTower A B L]
      [IsScalarTower A K L] [Algebra.IsIntegral A B] [IsFractionRing B L] [IsDedekindDomain B]
      {v : IsDedekindDomain.HeightOneSpectrum A} (w : IsDedekindDomain.HeightOneSpectrum.Extension B v) :
      IsDedekindDomain.HeightOneSpectrum.adicCompletion K
          v →ₛₐ[(fun v w ↦
            algebraMap (WithVal (IsDedekindDomain.HeightOneSpectrum.valuation K v))
              (WithVal (IsDedekindDomain.HeightOneSpectrum.valuation L w)))
          v ↑w]
        IsDedekindDomain.HeightOneSpectrum.adicCompletion L ↑wIf w of L divides v of K, `comapSemialgHom v w pf` is the canonical map
    `Kᵥ → L_w` lying above `K → L`. Here we actually use the type synonyms `WithVal K` and `WithVal L`.
    
              KType u_2 LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v) ''Set.image.{u, v} {α : Type u} {β : Type v} (f : α → β) (s : Set α) : Set βThe image of `s : Set α` by `f : α → β`, written `f '' s`, is the set of `b : β` such that
    `f a = b` for some `a ∈ s`. 
          (IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegersIsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers.{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) :
      ValuationSubring (IsDedekindDomain.HeightOneSpectrum.adicCompletion K v)The ring of integers of `adicCompletion`. 
              KType u_2 vIsDedekindDomain.HeightOneSpectrum A) HasSubset.Subset.{u} {α : Type u} [self : HasSubset α] : α → α → PropSubset relation: `a ⊆ b`  
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `⊆` in identifiers is `subset`.
        (IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegersIsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers.{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) :
      ValuationSubring (IsDedekindDomain.HeightOneSpectrum.adicCompletion K v)The ring of integers of `adicCompletion`. 
            LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v)
    The canonical map K_v → L_w sends 𝓞_v to 𝓞_w. 
    complete
Proof

The integer ring is defined by v\geq0 (or v\leq 1 in mathlib, which uses multiplicative valuations) so the result follows from IsDedekindDomain.HeightOneSpectrum.valued_adicCompletionComap.

Theorem9.7
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

Definition 9.4 Giving L_w the K_v-algebra structure coming from the natural map K_v\to L_w, the w-adic topology on L_w is the K_v-module topology.

Code for Theorem9.71 theorem
  • theorem IsDedekindDomain.HeightOneSpectrum.adicCompletion.instIsModuleTopology.{u_1,
        u_2, u_3, u_4}
      {AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3] [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4] (vIsDedekindDomain.HeightOneSpectrum A : IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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.  AType u_1)
      [FiniteDimensionalFiniteDimensional.{u_1, u_2} (K : Type u_1) (V : Type u_2) [DivisionRing K] [AddCommGroup V] [Module K V] : Prop`FiniteDimensional` vector spaces are defined to be finite modules.
    Use `Module.Basis.finiteDimensional_of_finite` to prove finite dimension from another definition.  KType u_2 LType u_3]
      (wIsDedekindDomain.HeightOneSpectrum.Extension B v : IsDedekindDomain.HeightOneSpectrum.ExtensionIsDedekindDomain.HeightOneSpectrum.Extension.{u_1, u_4} {A : Type u_1} (B : Type u_4) [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (v : IsDedekindDomain.HeightOneSpectrum A) : Type u_4If `B` is an `A`-algebra and `v : HeightOneSpectrum A` is a nonzero prime,
    then `v.Extension B` is the subtype of `HeightOneSpeectrum B` consisting of valuations of `B`
    which restrict to `v`.  BType u_4 vIsDedekindDomain.HeightOneSpectrum A) :
      IsModuleTopologyIsModuleTopology.{u_1, u_2} (R : Type u_1) [TopologicalSpace R] (A : Type u_2) [Add A] [SMul R A]
      [τA : TopologicalSpace A] : PropA class asserting that the topology on a module over a topological ring `R` is
    the module topology. See `moduleTopology` for more discussion of the module topology. 
        (IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation.  KType u_2 vIsDedekindDomain.HeightOneSpectrum A)
        (IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation.  LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v)
    theorem IsDedekindDomain.HeightOneSpectrum.adicCompletion.instIsModuleTopology.{u_1,
        u_2, u_3, u_4}
      {AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3]
      [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4]
      (vIsDedekindDomain.HeightOneSpectrum A :
        IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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.  AType u_1)
      [FiniteDimensionalFiniteDimensional.{u_1, u_2} (K : Type u_1) (V : Type u_2) [DivisionRing K] [AddCommGroup V] [Module K V] : Prop`FiniteDimensional` vector spaces are defined to be finite modules.
    Use `Module.Basis.finiteDimensional_of_finite` to prove finite dimension from another definition.  KType u_2 LType u_3]
      (wIsDedekindDomain.HeightOneSpectrum.Extension B v :
        IsDedekindDomain.HeightOneSpectrum.ExtensionIsDedekindDomain.HeightOneSpectrum.Extension.{u_1, u_4} {A : Type u_1} (B : Type u_4) [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (v : IsDedekindDomain.HeightOneSpectrum A) : Type u_4If `B` is an `A`-algebra and `v : HeightOneSpectrum A` is a nonzero prime,
    then `v.Extension B` is the subtype of `HeightOneSpeectrum B` consisting of valuations of `B`
    which restrict to `v`. 
          BType u_4 vIsDedekindDomain.HeightOneSpectrum A) :
      IsModuleTopologyIsModuleTopology.{u_1, u_2} (R : Type u_1) [TopologicalSpace R] (A : Type u_2) [Add A] [SMul R A]
      [τA : TopologicalSpace A] : PropA class asserting that the topology on a module over a topological ring `R` is
    the module topology. See `moduleTopology` for more discussion of the module topology. 
        (IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation. 
          KType u_2 vIsDedekindDomain.HeightOneSpectrum A)
        (IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation. 
          LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v)
    L_w has the K_v-module topology. 
    complete
Proof

Any basis for L as a K-vector space spans L_w as a K_v-module, so L_w is finite-dimensional over K_v and the module topology is the same as the product topology. So we need to establish that the product topology on L_w=K_v^n is the w-adic topology. But the w-adic topology is induced by the w-adic norm, which makes L_w into a normed K_v-vector space, and (after picking a basis) the product norm on L_w=K_v^n also makes L_w into a normed K_v-vector space. So the result follows from the standard fact (see for example the lemma on p52 of Cassels-Froelich, formalized as ContinuousLinearEquiv.ofFinrankEq in mathlib) that any two norms on a finite-dimensional vector space over a complete field are equivalent (and thus induce the same topology).

we can view L_w as an L\otimes_KK_v-algebra.

Now instead of fixing w upstairs, we fix v downstairs and consider all w lying over it at once. So say v is in the height one spectrum of A.

Lemma9.8
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

There are only finitely many primes w of B lying above v.

Code for Lemma9.81 theorem
  • theorem IsDedekindDomain.HeightOneSpectrum.Extension.finite.{u_1, u_2, u_3, u_4}
      (AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3] [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4]
      (vIsDedekindDomain.HeightOneSpectrum A : IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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.  AType u_1) :
      FiniteFinite.{u_3} (α : Sort u_3) : PropA type is `Finite` if it is in bijective correspondence to some `Fin n`.
    
    This is similar to `Fintype`, but `Finite` is a proposition rather than data.
    A particular benefit to this is that `Finite` instances are definitionally equal to one another
    (due to proof irrelevance) rather than being merely propositionally equal,
    and, furthermore, `Finite` instances generally avoid the need for `Decidable` instances.
    One other notable difference is that `Finite` allows there to be `Finite p` instances
    for all `p : Prop`, which is not allowed by `Fintype` due to universe constraints.
    An application of this is that `Finite (x ∈ s → β x)` follows from the general instance for pi
    types, assuming `[∀ x, Finite (β x)]`.
    Implementation note: this is a reason `Finite α` is not defined as `Nonempty (Fintype α)`.
    
    Every `Fintype` instance provides a `Finite` instance via `Finite.of_fintype`.
    Conversely, one can noncomputably create a `Fintype` instance from a `Finite` instance
    via `Fintype.ofFinite`. In a proof one might write
    ```lean
      have := Fintype.ofFinite α
    ```
    to obtain such an instance.
    
    Do not write noncomputable `Fintype` instances; instead write `Finite` instances
    and use this `Fintype.ofFinite` interface.
    The `Fintype` instances should be relied upon to be computable for evaluation purposes.
    
    Theorems should use `Finite` instead of `Fintype`, unless definitions in the theorem statement
    require `Fintype`.
    Definitions should prefer `Finite` as well, unless it is important that the definitions
    are meant to be computable in the reduction or `#eval` sense.
     (IsDedekindDomain.HeightOneSpectrum.ExtensionIsDedekindDomain.HeightOneSpectrum.Extension.{u_1, u_4} {A : Type u_1} (B : Type u_4) [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (v : IsDedekindDomain.HeightOneSpectrum A) : Type u_4If `B` is an `A`-algebra and `v : HeightOneSpectrum A` is a nonzero prime,
    then `v.Extension B` is the subtype of `HeightOneSpeectrum B` consisting of valuations of `B`
    which restrict to `v`.  BType u_4 vIsDedekindDomain.HeightOneSpectrum A)
    theorem IsDedekindDomain.HeightOneSpectrum.Extension.finite.{u_1,
        u_2, u_3, u_4}
      (AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3]
      [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4]
      (vIsDedekindDomain.HeightOneSpectrum A :
        IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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. 
          AType u_1) :
      FiniteFinite.{u_3} (α : Sort u_3) : PropA type is `Finite` if it is in bijective correspondence to some `Fin n`.
    
    This is similar to `Fintype`, but `Finite` is a proposition rather than data.
    A particular benefit to this is that `Finite` instances are definitionally equal to one another
    (due to proof irrelevance) rather than being merely propositionally equal,
    and, furthermore, `Finite` instances generally avoid the need for `Decidable` instances.
    One other notable difference is that `Finite` allows there to be `Finite p` instances
    for all `p : Prop`, which is not allowed by `Fintype` due to universe constraints.
    An application of this is that `Finite (x ∈ s → β x)` follows from the general instance for pi
    types, assuming `[∀ x, Finite (β x)]`.
    Implementation note: this is a reason `Finite α` is not defined as `Nonempty (Fintype α)`.
    
    Every `Fintype` instance provides a `Finite` instance via `Finite.of_fintype`.
    Conversely, one can noncomputably create a `Fintype` instance from a `Finite` instance
    via `Fintype.ofFinite`. In a proof one might write
    ```lean
      have := Fintype.ofFinite α
    ```
    to obtain such an instance.
    
    Do not write noncomputable `Fintype` instances; instead write `Finite` instances
    and use this `Fintype.ofFinite` interface.
    The `Fintype` instances should be relied upon to be computable for evaluation purposes.
    
    Theorems should use `Finite` instead of `Fintype`, unless definitions in the theorem statement
    require `Fintype`.
    Definitions should prefer `Finite` as well, unless it is important that the definitions
    are meant to be computable in the reduction or `#eval` sense.
    
        (IsDedekindDomain.HeightOneSpectrum.ExtensionIsDedekindDomain.HeightOneSpectrum.Extension.{u_1, u_4} {A : Type u_1} (B : Type u_4) [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (v : IsDedekindDomain.HeightOneSpectrum A) : Type u_4If `B` is an `A`-algebra and `v : HeightOneSpectrum A` is a nonzero prime,
    then `v.Extension B` is the subtype of `HeightOneSpeectrum B` consisting of valuations of `B`
    which restrict to `v`. 
          BType u_4 vIsDedekindDomain.HeightOneSpectrum A)
    There are only finitely many nonzero primes of B above a nonzero prime of A. 
    complete
Proof

This is a standard fact about Dedekind domains. The key input is mathlib's theorem primesOver_finite.

We write w|v to denote the fact that w is a prime of B above v of A.

Definition9.9
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

Definition 9.4 The product of the maps K_v\to L_w for w|v is a natural ring map K_v\to\prod_{w|v}L_w lying over K\to L.

Code for Definition9.91 definition
  • def IsDedekindDomain.HeightOneSpectrum.adicCompletion.semialgHomPi.{u_1,
        u_2, u_3, u_4}
      {AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3] [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4] (vIsDedekindDomain.HeightOneSpectrum A : IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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.  AType u_1) :
      IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation.  KType u_2
          vIsDedekindDomain.HeightOneSpectrum A →ₛₐ[SemialgHom.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [CommSemiring R] [CommSemiring S] (φ : R →+* S)
      (A : Type u_3) (B : Type u_4) [Semiring A] [Semiring B] [Algebra R A] [Algebra S B] : Type (max u_3 u_4)Let `φ : R →+* S` be a ring homomorphism, let `A` be an `R`-algebra and let `B` be
    an `S`-algebra. Then `SemialgHom φ A B` or `A →ₛₐ[φ] B` is the ring homomorphisms `ψ : A →+* B`
    making lying above `φ` (i.e. such that `ψ (r • a) = φ r • ψ a`).
    algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_2 LType u_3]SemialgHom.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [CommSemiring R] [CommSemiring S] (φ : R →+* S)
      (A : Type u_3) (B : Type u_4) [Semiring A] [Semiring B] [Algebra R A] [Algebra S B] : Type (max u_3 u_4)Let `φ : R →+* S` be a ring homomorphism, let `A` be an `R`-algebra and let `B` be
    an `S`-algebra. Then `SemialgHom φ A B` or `A →ₛₐ[φ] B` is the ring homomorphisms `ψ : A →+* B`
    making lying above `φ` (i.e. such that `ψ (r • a) = φ r • ψ a`).
    
        (wIsDedekindDomain.HeightOneSpectrum.Extension B v : IsDedekindDomain.HeightOneSpectrum.ExtensionIsDedekindDomain.HeightOneSpectrum.Extension.{u_1, u_4} {A : Type u_1} (B : Type u_4) [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (v : IsDedekindDomain.HeightOneSpectrum A) : Type u_4If `B` is an `A`-algebra and `v : HeightOneSpectrum A` is a nonzero prime,
    then `v.Extension B` is the subtype of `HeightOneSpeectrum B` consisting of valuations of `B`
    which restrict to `v`.  BType u_4 vIsDedekindDomain.HeightOneSpectrum A) 
          IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation.  LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v
    def IsDedekindDomain.HeightOneSpectrum.adicCompletion.semialgHomPi.{u_1,
        u_2, u_3, u_4}
      {AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3]
      [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4]
      (vIsDedekindDomain.HeightOneSpectrum A :
        IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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. 
          AType u_1) :
      IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation. 
          KType u_2 vIsDedekindDomain.HeightOneSpectrum A →ₛₐ[SemialgHom.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [CommSemiring R] [CommSemiring S] (φ : R →+* S)
      (A : Type u_3) (B : Type u_4) [Semiring A] [Semiring B] [Algebra R A] [Algebra S B] : Type (max u_3 u_4)Let `φ : R →+* S` be a ring homomorphism, let `A` be an `R`-algebra and let `B` be
    an `S`-algebra. Then `SemialgHom φ A B` or `A →ₛₐ[φ] B` is the ring homomorphisms `ψ : A →+* B`
    making lying above `φ` (i.e. such that `ψ (r • a) = φ r • ψ a`).
    algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_2 LType u_3]SemialgHom.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [CommSemiring R] [CommSemiring S] (φ : R →+* S)
      (A : Type u_3) (B : Type u_4) [Semiring A] [Semiring B] [Algebra R A] [Algebra S B] : Type (max u_3 u_4)Let `φ : R →+* S` be a ring homomorphism, let `A` be an `R`-algebra and let `B` be
    an `S`-algebra. Then `SemialgHom φ A B` or `A →ₛₐ[φ] B` is the ring homomorphisms `ψ : A →+* B`
    making lying above `φ` (i.e. such that `ψ (r • a) = φ r • ψ a`).
    
        (wIsDedekindDomain.HeightOneSpectrum.Extension B v :
            IsDedekindDomain.HeightOneSpectrum.ExtensionIsDedekindDomain.HeightOneSpectrum.Extension.{u_1, u_4} {A : Type u_1} (B : Type u_4) [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (v : IsDedekindDomain.HeightOneSpectrum A) : Type u_4If `B` is an `A`-algebra and `v : HeightOneSpectrum A` is a nonzero prime,
    then `v.Extension B` is the subtype of `HeightOneSpeectrum B` consisting of valuations of `B`
    which restrict to `v`. 
              BType u_4 vIsDedekindDomain.HeightOneSpectrum A) 
          IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation. 
            LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v
    The canonical map `K_v → ∏_{w|v} L_w` extending K → L. 
    complete

Because K_v\to\prod_{w|v}L_w lies over K\to L, there's an induced L-algebra map L\otimes_KK_v\to\prod_{w|v}L_w. We are now able to state one of the key results in this section. The proof is probably the hardest proof in this section to formalize.

Theorem9.10
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

Definition 9.9 Lemma 9.8 The induced L-algebra homomorphism L\otimes_KK_v\to\prod_{w|v}L_w is an isomorphism of rings.

Code for Theorem9.101 definition
  • def IsDedekindDomain.HeightOneSpectrum.adicCompletion.baseChangeAlgEquiv.{u_1,
        u_2, u_3, u_4}
      {AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3] [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4] [FiniteDimensionalFiniteDimensional.{u_1, u_2} (K : Type u_1) (V : Type u_2) [DivisionRing K] [AddCommGroup V] [Module K V] : Prop`FiniteDimensional` vector spaces are defined to be finite modules.
    Use `Module.Basis.finiteDimensional_of_finite` to prove finite dimension from another definition.  KType u_2 LType u_3] [Module.FiniteModule.Finite.{u_1, u_4} (R : Type u_1) (M : Type u_4) [Semiring R] [AddCommMonoid M] [Module R M] : PropA module over a semiring is `Module.Finite` if it is finitely generated as a module.  AType u_1 BType u_4]
      (vIsDedekindDomain.HeightOneSpectrum A : IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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.  AType u_1) :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_2 LType u_3
          (IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation.  KType u_2 vIsDedekindDomain.HeightOneSpectrum A) ≃ₐ[AlgEquiv.{u, v, w} (R : Type u) (A : Type v) (B : Type w) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra R B] : Type (max v w)An equivalence of algebras (denoted as `A ≃ₐ[R] B`)
    is an equivalence of rings commuting with the actions of scalars. LType u_3]AlgEquiv.{u, v, w} (R : Type u) (A : Type v) (B : Type w) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra R B] : Type (max v w)An equivalence of algebras (denoted as `A ≃ₐ[R] B`)
    is an equivalence of rings commuting with the actions of scalars. 
        (wIsDedekindDomain.HeightOneSpectrum.Extension B v : IsDedekindDomain.HeightOneSpectrum.ExtensionIsDedekindDomain.HeightOneSpectrum.Extension.{u_1, u_4} {A : Type u_1} (B : Type u_4) [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (v : IsDedekindDomain.HeightOneSpectrum A) : Type u_4If `B` is an `A`-algebra and `v : HeightOneSpectrum A` is a nonzero prime,
    then `v.Extension B` is the subtype of `HeightOneSpeectrum B` consisting of valuations of `B`
    which restrict to `v`.  BType u_4 vIsDedekindDomain.HeightOneSpectrum A) 
          IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation.  LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v
    def IsDedekindDomain.HeightOneSpectrum.adicCompletion.baseChangeAlgEquiv.{u_1,
        u_2, u_3, u_4}
      {AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3]
      [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4]
      [FiniteDimensionalFiniteDimensional.{u_1, u_2} (K : Type u_1) (V : Type u_2) [DivisionRing K] [AddCommGroup V] [Module K V] : Prop`FiniteDimensional` vector spaces are defined to be finite modules.
    Use `Module.Basis.finiteDimensional_of_finite` to prove finite dimension from another definition.  KType u_2 LType u_3]
      [Module.FiniteModule.Finite.{u_1, u_4} (R : Type u_1) (M : Type u_4) [Semiring R] [AddCommMonoid M] [Module R M] : PropA module over a semiring is `Module.Finite` if it is finitely generated as a module.  AType u_1 BType u_4]
      (vIsDedekindDomain.HeightOneSpectrum A :
        IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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. 
          AType u_1) :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_2 LType u_3
          (IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation. 
            KType u_2 vIsDedekindDomain.HeightOneSpectrum A) ≃ₐ[AlgEquiv.{u, v, w} (R : Type u) (A : Type v) (B : Type w) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra R B] : Type (max v w)An equivalence of algebras (denoted as `A ≃ₐ[R] B`)
    is an equivalence of rings commuting with the actions of scalars. LType u_3]AlgEquiv.{u, v, w} (R : Type u) (A : Type v) (B : Type w) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra R B] : Type (max v w)An equivalence of algebras (denoted as `A ≃ₐ[R] B`)
    is an equivalence of rings commuting with the actions of scalars. 
        (wIsDedekindDomain.HeightOneSpectrum.Extension B v :
            IsDedekindDomain.HeightOneSpectrum.ExtensionIsDedekindDomain.HeightOneSpectrum.Extension.{u_1, u_4} {A : Type u_1} (B : Type u_4) [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (v : IsDedekindDomain.HeightOneSpectrum A) : Type u_4If `B` is an `A`-algebra and `v : HeightOneSpectrum A` is a nonzero prime,
    then `v.Extension B` is the subtype of `HeightOneSpeectrum B` consisting of valuations of `B`
    which restrict to `v`. 
              BType u_4 vIsDedekindDomain.HeightOneSpectrum A) 
          IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation. 
            LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v
    The L-algebra isomorphism `L ⊗[K] K_v ≅ ∏_{w|v} L_w`. 
    complete
Proof

My current proposal to formalize this is as follows. The map is surjective because the image is dense and closed; this has been formalized already. It is also a K_v-algebra homomorphism if we give L_w the obvious K_v-algebra structure. Thus we can conclude the result if we can prove that both spaces are finite-dimensional and have the same dimension. The K_v-dimension of L⊗_KK_v is equal to the K-dimension of L, which is ∑_{w|v} e_w f_w using the standard notation that e_w is the ramification index of w and f_w the residue degree. So it suffices to prove that [L_w:K_v]=e_wf_w. We already have that e_w (defined globally) is equal to the local ramification index (defined as the factor by which the valuations differ on K). So what is left is to prove that (i) the residue field extension induced by L_w/K_v has degree is equal to the globally-defined f_w, (ii) an extension of local fields has degree ef. Now (i) sounds straightforward given what we have (the map from A to \mathcal{O}_v has kernel v and dense image) and (ii) is true for any complete discretely-valued field; I am not suggesting we formalize the following proof, but at least it represents a rigorous justification: A field complete with respect to a discrete valuation is stable in the sense of the book by Bosch-Guntzer-Remmert (Prop 3.6.2.1), so every finite extension of such a field is cartesian (def 3.6.1.1) and thus ef=n (Prop 3.6.2.4, (iii) implies (ii)). Note that if you weaken the hypotheses too much then there are counterexamples; it's possible to have ef<n and BGR goes into details.

Theorem9.11
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

Theorem 9.7 For v fixed, the product topology on \prod_{w|v}L_w is the K_v-module topology.

Code for Theorem9.111 theorem
  • theorem IsDedekindDomain.HeightOneSpectrum.adicCompletion.instIsModuleTopologyPi.{u_1,
        u_2, u_3, u_4}
      {AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3] [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4] (vIsDedekindDomain.HeightOneSpectrum A : IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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.  AType u_1)
      [FiniteDimensionalFiniteDimensional.{u_1, u_2} (K : Type u_1) (V : Type u_2) [DivisionRing K] [AddCommGroup V] [Module K V] : Prop`FiniteDimensional` vector spaces are defined to be finite modules.
    Use `Module.Basis.finiteDimensional_of_finite` to prove finite dimension from another definition.  KType u_2 LType u_3] :
      IsModuleTopologyIsModuleTopology.{u_1, u_2} (R : Type u_1) [TopologicalSpace R] (A : Type u_2) [Add A] [SMul R A]
      [τA : TopologicalSpace A] : PropA class asserting that the topology on a module over a topological ring `R` is
    the module topology. See `moduleTopology` for more discussion of the module topology. 
        (IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation.  KType u_2 vIsDedekindDomain.HeightOneSpectrum A)
        ((wIsDedekindDomain.HeightOneSpectrum.Extension B v : IsDedekindDomain.HeightOneSpectrum.ExtensionIsDedekindDomain.HeightOneSpectrum.Extension.{u_1, u_4} {A : Type u_1} (B : Type u_4) [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (v : IsDedekindDomain.HeightOneSpectrum A) : Type u_4If `B` is an `A`-algebra and `v : HeightOneSpectrum A` is a nonzero prime,
    then `v.Extension B` is the subtype of `HeightOneSpeectrum B` consisting of valuations of `B`
    which restrict to `v`.  BType u_4 vIsDedekindDomain.HeightOneSpectrum A) 
          IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation.  LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v)
    theorem IsDedekindDomain.HeightOneSpectrum.adicCompletion.instIsModuleTopologyPi.{u_1,
        u_2, u_3, u_4}
      {AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3]
      [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4]
      (vIsDedekindDomain.HeightOneSpectrum A :
        IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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.  AType u_1)
      [FiniteDimensionalFiniteDimensional.{u_1, u_2} (K : Type u_1) (V : Type u_2) [DivisionRing K] [AddCommGroup V] [Module K V] : Prop`FiniteDimensional` vector spaces are defined to be finite modules.
    Use `Module.Basis.finiteDimensional_of_finite` to prove finite dimension from another definition.  KType u_2 LType u_3] :
      IsModuleTopologyIsModuleTopology.{u_1, u_2} (R : Type u_1) [TopologicalSpace R] (A : Type u_2) [Add A] [SMul R A]
      [τA : TopologicalSpace A] : PropA class asserting that the topology on a module over a topological ring `R` is
    the module topology. See `moduleTopology` for more discussion of the module topology. 
        (IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation. 
          KType u_2 vIsDedekindDomain.HeightOneSpectrum A)
        ((wIsDedekindDomain.HeightOneSpectrum.Extension B v :
            IsDedekindDomain.HeightOneSpectrum.ExtensionIsDedekindDomain.HeightOneSpectrum.Extension.{u_1, u_4} {A : Type u_1} (B : Type u_4) [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (v : IsDedekindDomain.HeightOneSpectrum A) : Type u_4If `B` is an `A`-algebra and `v : HeightOneSpectrum A` is a nonzero prime,
    then `v.Extension B` is the subtype of `HeightOneSpeectrum B` consisting of valuations of `B`
    which restrict to `v`. 
              BType u_4 vIsDedekindDomain.HeightOneSpectrum A) 
          IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation. 
            LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v)
    ∏_{w|v} L_w has the K_v-module topology. 
    complete
Proof

This is a finite product of K_v-modules each of which has the K_v-module topology, and the product topology is the module topology for a finite product of modules each of which has the module topology.

Theorem9.12
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 0

Theorem 9.11 If L \otimes_K K_v is given the K_v-module topology, then the local algebraic isomorphism L \otimes_K K_v \cong \prod_{w \mid v} L_w is also a homeomorphism.

Code for Theorem9.121 definition
  • def IsDedekindDomain.HeightOneSpectrum.adicCompletion.baseChangeContinuousAlgEquiv.{u_1,
        u_2, u_3, u_4}
      {AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3] [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4] [FiniteDimensionalFiniteDimensional.{u_1, u_2} (K : Type u_1) (V : Type u_2) [DivisionRing K] [AddCommGroup V] [Module K V] : Prop`FiniteDimensional` vector spaces are defined to be finite modules.
    Use `Module.Basis.finiteDimensional_of_finite` to prove finite dimension from another definition.  KType u_2 LType u_3] [Module.FiniteModule.Finite.{u_1, u_4} (R : Type u_1) (M : Type u_4) [Semiring R] [AddCommMonoid M] [Module R M] : PropA module over a semiring is `Module.Finite` if it is finitely generated as a module.  AType u_1 BType u_4]
      (vIsDedekindDomain.HeightOneSpectrum A : IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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.  AType u_1) :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_2 LType u_3
          (IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation.  KType u_2 vIsDedekindDomain.HeightOneSpectrum A) ≃A[ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    LType u_3]ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    
        (wIsDedekindDomain.HeightOneSpectrum.Extension B v : IsDedekindDomain.HeightOneSpectrum.ExtensionIsDedekindDomain.HeightOneSpectrum.Extension.{u_1, u_4} {A : Type u_1} (B : Type u_4) [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (v : IsDedekindDomain.HeightOneSpectrum A) : Type u_4If `B` is an `A`-algebra and `v : HeightOneSpectrum A` is a nonzero prime,
    then `v.Extension B` is the subtype of `HeightOneSpeectrum B` consisting of valuations of `B`
    which restrict to `v`.  BType u_4 vIsDedekindDomain.HeightOneSpectrum A) 
          IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation.  LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v
    def IsDedekindDomain.HeightOneSpectrum.adicCompletion.baseChangeContinuousAlgEquiv.{u_1,
        u_2, u_3, u_4}
      {AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3]
      [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4]
      [FiniteDimensionalFiniteDimensional.{u_1, u_2} (K : Type u_1) (V : Type u_2) [DivisionRing K] [AddCommGroup V] [Module K V] : Prop`FiniteDimensional` vector spaces are defined to be finite modules.
    Use `Module.Basis.finiteDimensional_of_finite` to prove finite dimension from another definition.  KType u_2 LType u_3]
      [Module.FiniteModule.Finite.{u_1, u_4} (R : Type u_1) (M : Type u_4) [Semiring R] [AddCommMonoid M] [Module R M] : PropA module over a semiring is `Module.Finite` if it is finitely generated as a module.  AType u_1 BType u_4]
      (vIsDedekindDomain.HeightOneSpectrum A :
        IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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. 
          AType u_1) :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_2 LType u_3
          (IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation. 
            KType u_2 vIsDedekindDomain.HeightOneSpectrum A) ≃A[ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    LType u_3]ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    
        (wIsDedekindDomain.HeightOneSpectrum.Extension B v :
            IsDedekindDomain.HeightOneSpectrum.ExtensionIsDedekindDomain.HeightOneSpectrum.Extension.{u_1, u_4} {A : Type u_1} (B : Type u_4) [CommRing A] [CommRing B]
      [Algebra A B] [IsDedekindDomain A] [Algebra.IsIntegral A B] [IsDedekindDomain B]
      (v : IsDedekindDomain.HeightOneSpectrum A) : Type u_4If `B` is an `A`-algebra and `v : HeightOneSpectrum A` is a nonzero prime,
    then `v.Extension B` is the subtype of `HeightOneSpeectrum B` consisting of valuations of `B`
    which restrict to `v`. 
              BType u_4 vIsDedekindDomain.HeightOneSpectrum A) 
          IsDedekindDomain.HeightOneSpectrum.adicCompletionIsDedekindDomain.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_2The completion of `K` with respect to its `v`-adic valuation. 
            LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v
    The continuous L-algebra isomorphism `L ⊗[K] K_v ≅ ∏_{w|v} L_w`. 
    complete
Proof

Indeed, it is a K_v-algebra isomorphism between two modules each of which has the module topology, and any module map is automatically continuous for the module topologies.

Theorem9.13
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀N
Used by 2
Hover a use site to preview it.
Preview
Theorem 9.18
Blueprint label
  • «IsDedekindDomain.FiniteAdeleRing.baseChangeAlgEquiv»
Uses target in
  • statement

Theorem 9.10 The isomorphism L\otimes_KK_v\to\prod_{w|v}L_w induces an isomorphism B\otimes_AA_v\to \prod_{w|v}B_w for all v in the height one spectrum of A.

Code for Theorem9.131 theorem
  • theorem IsDedekindDomain.HeightOneSpectrum.adicCompletion.integerBaseChangeLinearEquiv_bijOn.{u_1,
        u_2, u_3, u_4}
      {AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) {BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. }
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3] [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4] [FiniteDimensionalFiniteDimensional.{u_1, u_2} (K : Type u_1) (V : Type u_2) [DivisionRing K] [AddCommGroup V] [Module K V] : Prop`FiniteDimensional` vector spaces are defined to be finite modules.
    Use `Module.Basis.finiteDimensional_of_finite` to prove finite dimension from another definition.  KType u_2 LType u_3] [Module.FiniteModule.Finite.{u_1, u_4} (R : Type u_1) (M : Type u_4) [Semiring R] [AddCommMonoid M] [Module R M] : PropA module over a semiring is `Module.Finite` if it is finitely generated as a module.  AType u_1 BType u_4]
      (vIsDedekindDomain.HeightOneSpectrum A : IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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.  AType u_1) :
      Set.BijOnSet.BijOn.{u, v} {α : Type u} {β : Type v} (f : α → β) (s : Set α) (t : Set β) : Prop`f` is bijective from `s` to `t` if `f` is injective on `s` and `f '' s = t`. 
        (⇑(IsDedekindDomain.HeightOneSpectrum.adicCompletion.integerBaseChangeLinearEquivIsDedekindDomain.HeightOneSpectrum.adicCompletion.integerBaseChangeLinearEquiv.{u_1, u_2, u_3, u_4} {A : Type u_1}
      (K : Type u_2) (L : Type u_3) (B : Type u_4) [CommRing A] [CommRing B] [Algebra A B] [Field K] [Field L] [Algebra A K]
      [IsFractionRing A K] [Algebra B L] [IsDedekindDomain A] [Algebra K L] [Algebra A L] [IsScalarTower A B L]
      [IsScalarTower A K L] [Algebra.IsIntegral A B] [IsFractionRing B L] [IsDedekindDomain B] [FiniteDimensional K L]
      [Module.Finite A B] (v : IsDedekindDomain.HeightOneSpectrum A) :
      TensorProduct A B (IsDedekindDomain.HeightOneSpectrum.adicCompletion K v) ≃ₗ[A]
        (w : IsDedekindDomain.HeightOneSpectrum.Extension B v) → IsDedekindDomain.HeightOneSpectrum.adicCompletion L ↑wThe A-module isomorphism `B ⊗[A] K_v ≅ ∏_{w|v} L_w`. 
            KType u_2 LType u_3 BType u_4 vIsDedekindDomain.HeightOneSpectrum A))
        (Set.rangeSet.range.{u, u_1} {α : Type u} {ι : Sort u_1} (f : ι → α) : Set αRange of a function.
    
    This function is more flexible than `f '' univ`, as the image requires that the domain is in Type
    and not an arbitrary Sort. 
          (IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers.tensorCoeIsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers.tensorCoe.{u_1, u_2, u_4} {A : Type u_1} (K : Type u_2)
      (B : Type u_4) [CommRing A] [CommRing B] [Algebra A B] [Field K] [Algebra A K] [IsFractionRing A K]
      [IsDedekindDomain A] (v : IsDedekindDomain.HeightOneSpectrum A) :
      TensorProduct A B ↥(IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers K v) →ₗ[A]
        TensorProduct A B (IsDedekindDomain.HeightOneSpectrum.adicCompletion K v)The canonical A-linear map `B ⊗[A] 𝓞_v → B ⊗[A] K_v`. 
              KType u_2 BType u_4 vIsDedekindDomain.HeightOneSpectrum A))
        (Submodule.piSubmodule.pi.{u, x, u_1} {R : Type u} {ι : Type x} [Semiring R] {φ : ι → Type u_1} [(i : ι) → AddCommMonoid (φ i)]
      [(i : ι) → Module R (φ i)] (I : Set ι) (p : (i : ι) → Submodule R (φ i)) : Submodule R ((i : ι) → φ i)A version of `Set.pi` for submodules. Given an index set `I` and a family of submodules
    `p : (i : ι) → Submodule R (φ i)`, `pi I s` is the submodule of dependent functions
    `f : (i : ι) → φ i` such that `f i` belongs to `p a` whenever `i ∈ I`.  Set.univSet.univ.{u} {α : Type u} : Set αThe universal set on a type `α` is the set containing all elements of `α`.
    
    This is conceptually the "same as" `α` (in set theory, it is actually the same), but type theory
    makes the distinction that `α` is a type while `Set.univ` is a term of type `Set α`. `Set.univ` can
    itself be coerced to a type `↥Set.univ` which is in bijection with (but distinct from) `α`.  fun wIsDedekindDomain.HeightOneSpectrum.Extension B v 
            IsDedekindDomain.HeightOneSpectrum.adicCompletion.integerSubmoduleIsDedekindDomain.HeightOneSpectrum.adicCompletion.integerSubmodule.{u_1, u_2} {A : Type u_1} (K : Type u_2) [CommRing A]
      [Field K] [Algebra A K] [IsFractionRing A K] [IsDedekindDomain A] (v : IsDedekindDomain.HeightOneSpectrum A) :
      Submodule A (IsDedekindDomain.HeightOneSpectrum.adicCompletion K v)`𝓞_v` as an `A`-submodule of `K_v`. 
              LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v)
    theorem IsDedekindDomain.HeightOneSpectrum.adicCompletion.integerBaseChangeLinearEquiv_bijOn.{u_1,
        u_2, u_3, u_4}
      {AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) {BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. }
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3]
      [Algebra.IsIntegralAlgebra.IsIntegral.{u_1, u_3} (R : Type u_1) (A : Type u_3) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is integral if every element of the extension is integral over the base ring.  AType u_1 BType u_4]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4]
      [FiniteDimensionalFiniteDimensional.{u_1, u_2} (K : Type u_1) (V : Type u_2) [DivisionRing K] [AddCommGroup V] [Module K V] : Prop`FiniteDimensional` vector spaces are defined to be finite modules.
    Use `Module.Basis.finiteDimensional_of_finite` to prove finite dimension from another definition.  KType u_2 LType u_3]
      [Module.FiniteModule.Finite.{u_1, u_4} (R : Type u_1) (M : Type u_4) [Semiring R] [AddCommMonoid M] [Module R M] : PropA module over a semiring is `Module.Finite` if it is finitely generated as a module.  AType u_1 BType u_4]
      (vIsDedekindDomain.HeightOneSpectrum A :
        IsDedekindDomain.HeightOneSpectrumIsDedekindDomain.HeightOneSpectrum.{u_1} (R : Type u_1) [CommRing R] : Type u_1The 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. 
          AType u_1) :
      Set.BijOnSet.BijOn.{u, v} {α : Type u} {β : Type v} (f : α → β) (s : Set α) (t : Set β) : Prop`f` is bijective from `s` to `t` if `f` is injective on `s` and `f '' s = t`. 
        (⇑(IsDedekindDomain.HeightOneSpectrum.adicCompletion.integerBaseChangeLinearEquivIsDedekindDomain.HeightOneSpectrum.adicCompletion.integerBaseChangeLinearEquiv.{u_1, u_2, u_3, u_4} {A : Type u_1}
      (K : Type u_2) (L : Type u_3) (B : Type u_4) [CommRing A] [CommRing B] [Algebra A B] [Field K] [Field L] [Algebra A K]
      [IsFractionRing A K] [Algebra B L] [IsDedekindDomain A] [Algebra K L] [Algebra A L] [IsScalarTower A B L]
      [IsScalarTower A K L] [Algebra.IsIntegral A B] [IsFractionRing B L] [IsDedekindDomain B] [FiniteDimensional K L]
      [Module.Finite A B] (v : IsDedekindDomain.HeightOneSpectrum A) :
      TensorProduct A B (IsDedekindDomain.HeightOneSpectrum.adicCompletion K v) ≃ₗ[A]
        (w : IsDedekindDomain.HeightOneSpectrum.Extension B v) → IsDedekindDomain.HeightOneSpectrum.adicCompletion L ↑wThe A-module isomorphism `B ⊗[A] K_v ≅ ∏_{w|v} L_w`. 
            KType u_2 LType u_3 BType u_4 vIsDedekindDomain.HeightOneSpectrum A))
        (Set.rangeSet.range.{u, u_1} {α : Type u} {ι : Sort u_1} (f : ι → α) : Set αRange of a function.
    
    This function is more flexible than `f '' univ`, as the image requires that the domain is in Type
    and not an arbitrary Sort. 
          (IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers.tensorCoeIsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers.tensorCoe.{u_1, u_2, u_4} {A : Type u_1} (K : Type u_2)
      (B : Type u_4) [CommRing A] [CommRing B] [Algebra A B] [Field K] [Algebra A K] [IsFractionRing A K]
      [IsDedekindDomain A] (v : IsDedekindDomain.HeightOneSpectrum A) :
      TensorProduct A B ↥(IsDedekindDomain.HeightOneSpectrum.adicCompletionIntegers K v) →ₗ[A]
        TensorProduct A B (IsDedekindDomain.HeightOneSpectrum.adicCompletion K v)The canonical A-linear map `B ⊗[A] 𝓞_v → B ⊗[A] K_v`. 
              KType u_2 BType u_4 vIsDedekindDomain.HeightOneSpectrum A))
        (Submodule.piSubmodule.pi.{u, x, u_1} {R : Type u} {ι : Type x} [Semiring R] {φ : ι → Type u_1} [(i : ι) → AddCommMonoid (φ i)]
      [(i : ι) → Module R (φ i)] (I : Set ι) (p : (i : ι) → Submodule R (φ i)) : Submodule R ((i : ι) → φ i)A version of `Set.pi` for submodules. Given an index set `I` and a family of submodules
    `p : (i : ι) → Submodule R (φ i)`, `pi I s` is the submodule of dependent functions
    `f : (i : ι) → φ i` such that `f i` belongs to `p a` whenever `i ∈ I`.  Set.univSet.univ.{u} {α : Type u} : Set αThe universal set on a type `α` is the set containing all elements of `α`.
    
    This is conceptually the "same as" `α` (in set theory, it is actually the same), but type theory
    makes the distinction that `α` is a type while `Set.univ` is a term of type `Set α`. `Set.univ` can
    itself be coerced to a type `↥Set.univ` which is in bijection with (but distinct from) `α`.  fun wIsDedekindDomain.HeightOneSpectrum.Extension B v 
            IsDedekindDomain.HeightOneSpectrum.adicCompletion.integerSubmoduleIsDedekindDomain.HeightOneSpectrum.adicCompletion.integerSubmodule.{u_1, u_2} {A : Type u_1} (K : Type u_2) [CommRing A]
      [Field K] [Algebra A K] [IsFractionRing A K] [IsDedekindDomain A] (v : IsDedekindDomain.HeightOneSpectrum A) :
      Submodule A (IsDedekindDomain.HeightOneSpectrum.adicCompletion K v)`𝓞_v` as an `A`-submodule of `K_v`. 
              LType u_3 wIsDedekindDomain.HeightOneSpectrum.Extension B v)
    complete
Proof

Certainly the image of the integral elements are integral. The argument in the other direction is more delicate. My original plan was to follow Cassels--Froehlich, Cassels' article Global fields, section 12 lemma, p61, which proves it for all but finitely many primes, but a PR by Matthew Jasper gives another approach which works for all primes. Jasper's argument is to show that the closure of A in K_v is A_v for a valuation on a Dedekind domain, and then that the closure of A in \prod_{v \in S} K_v is \prod_{v \in S} A_v for S a finite set of valuations (using the Chinese remainder theorem). Applying this to B we get that the closure of B in \prod_{w \mid v} L_w is \prod_{w \mid v} B_w. He then shows that this closure is the image of B \otimes_A \mathcal{O}_v by showing that this image is closed because it's open), giving surjectivity; injectivity follows from the statement that L \otimes_K K_v = \prod_{w \mid v} L_w.

A summary of what we have so far: for all finite places v of A we have shown that the natural map L \otimes_K K_v \to \prod_w L_w is an isomorphism of L-algebras, and that if L \otimes_K K_v has the K_v-module topology and each L_w has the valuation topology then this map is also a homeomorphism. Furthermore we have shown that there is an induced algebraic isomorphism B \otimes_A A_v \cong \prod_w B_w on the subrings of the left and right hand sides.

Recall that the finite adeles \A_{A,K}^\infty is defined in mathlib to be the restricted product of the K_v with respect to the A_v, equipped with a certain restricted product topology (which is not the subspace topology of the product topology, indeed \prod_v A_v is open in this topology). We have seen in definition IsDedekindDomain.HeightOneSpectrum.adicCompletionComapSemialgHom that there's a map K_v\to L_w if w|v, extending K\to L, and we have seen in theorem IsDedekindDomain.HeightOneSpectrum.adicCompletionComapSemialgHom.mapadicCompletionIntegers that this sends A_v to B_w. We conclude

Definition9.14
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 0

Definition 9.4 Lemma 9.6 There's a natural ring homomorphism \A_{A,K}^\infty\to\A_{B,L}^\infty lying over K\to L.

Code for Definition9.141 definition
  • def IsDedekindDomain.FiniteAdeleRing.mapSemialgHom.{u_1, u_2, u_3, u_4}
      (AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3] [Module.FiniteModule.Finite.{u_1, u_4} (R : Type u_1) (M : Type u_4) [Semiring R] [AddCommMonoid M] [Module R M] : PropA module over a semiring is `Module.Finite` if it is finitely generated as a module.  AType u_1 BType u_4] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3] :
      IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     AType u_1 KType u_2 →SA[ContinuousSemialgHom.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [CommSemiring R] [CommSemiring S] (φ : R →+* S)
      (A : Type u_3) (B : Type u_4) [TopologicalSpace A] [TopologicalSpace B] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra S B] : Type (max u_3 u_4)A `SemialgHom` (i.e., `ψ` such that `ψ (r • a) = φ r • ψ a` for some `φ : R →+* S`) that
    is also continuous. algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_2 LType u_3]ContinuousSemialgHom.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [CommSemiring R] [CommSemiring S] (φ : R →+* S)
      (A : Type u_3) (B : Type u_4) [TopologicalSpace A] [TopologicalSpace B] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra S B] : Type (max u_3 u_4)A `SemialgHom` (i.e., `ψ` such that `ψ (r • a) = φ r • ψ a` for some `φ : R →+* S`) that
    is also continuous. 
        IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3
    def IsDedekindDomain.FiniteAdeleRing.mapSemialgHom.{u_1,
        u_2, u_3, u_4}
      (AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3]
      [Module.FiniteModule.Finite.{u_1, u_4} (R : Type u_1) (M : Type u_4) [Semiring R] [AddCommMonoid M] [Module R M] : PropA module over a semiring is `Module.Finite` if it is finitely generated as a module.  AType u_1 BType u_4] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3] :
      IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     AType u_1
          KType u_2 →SA[ContinuousSemialgHom.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [CommSemiring R] [CommSemiring S] (φ : R →+* S)
      (A : Type u_3) (B : Type u_4) [TopologicalSpace A] [TopologicalSpace B] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra S B] : Type (max u_3 u_4)A `SemialgHom` (i.e., `ψ` such that `ψ (r • a) = φ r • ψ a` for some `φ : R →+* S`) that
    is also continuous. algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_2 LType u_3]ContinuousSemialgHom.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [CommSemiring R] [CommSemiring S] (φ : R →+* S)
      (A : Type u_3) (B : Type u_4) [TopologicalSpace A] [TopologicalSpace B] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra S B] : Type (max u_3 u_4)A `SemialgHom` (i.e., `ψ` such that `ψ (r • a) = φ r • ψ a` for some `φ : R →+* S`) that
    is also continuous. 
        IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3
    The ring homomorphism `𝔸_K^∞ → 𝔸_L^∞` for `L/K` an extension of number fields,
    as a morphism lying over the canonical map `K → L`. 
    complete

Hence there is a natural L-algebra homomorphism L \otimes_K \A_{A,K}^\infty \to \A_{B,L}^\infty.

We start with the following observation. If M is a K-module then there's a canonical map B\otimes_A M\to L\otimes_K M sending b\otimes m to b\otimes m by the universal property of the tensor product. Our first goal is to show that this map is an isomorphism, so let us establish some lemmas first.

Lemma9.15
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
XL∃∀N
Used by 2
Hover a use site to preview it.
Preview
Corollary 9.16
Blueprint label
  • «IsDedekindDomain.AKLB.surjective_tensorProduct_map»
Uses target in
  • statement

If 0\not=b\in B then there exists 0\not=a\in A such that b divides the image of a in B.

Proof

Let a=N_{L/K}(b), the norm. This is known to take nonzero elements of L to nonzero elements of K because the norm is the determinant of an invertible linear map, and integral elements to integral elements. Furthermore a/b\in L is the product of the conjugates of b in some normal closure of L, and hence it is integral, so it lies in B.

Corollary9.16
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
XL∃∀Nused by 0

Lemma 9.15 The A-bilinear map B\times K\to L sending (b,k) to bk is surjective.

Proof

Given \lambda\in L, write it as n/d with 0\not=d\in B. Choose 0\not=a\in A and b\in B with db=a, and then note that \lambda=nb\times a^{-1}.

Corollary9.17
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
XL∃∀Nused by 0

Lemma 9.15 The natural map B\otimes_AK\to L is a B-algebra isomorphism.

Proof

We write down an inverse. Regard B\otimes_AK as a B-algebra via the action on the left. Note that at this point it's not even clear that B\otimes_AK is a field. We have the structure map B\to B\otimes_AK sending b to b\otimes1, which is B-linear. I claim that every nonzero element of B gets sent to an invertible element of B\otimes_AK. Indeed, if b\not=0 and, using the previous lemma, we choose 0\not=a\in A such that bb'=a, then (b\otimes1)(b'\otimes\frac1a)=1. Thus by the universal property of localization, the B-linear map B\to B\otimes_AK extends to a ring homomorphism from the field of fractions of B to B\otimes_AK, which we claim is our desired inverse. Checking that both composites are the identity should be straightforward. Starting with B\otimes_AK we only have to check on elements of the form b\otimes k; starting with L we only have to check on elements of B. Hopefully both are straightforward.

Our next goal in this section is the following two results. First the algebraic claim.

Theorem9.18
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀N
Used by 2
Hover a use site to preview it.
Preview
Theorem 4.1
Blueprint label
  • modularity_lifting_theorem
Uses target in
  • statement

The natural map L \otimes_K \A_{A,K}^\infty \to \A_{B,L}^\infty is an isomorphism. Theorem 9.13 Definition 9.22 Theorem 9.27 Corollary 9.19

Code for Theorem9.181 definition
  • def IsDedekindDomain.FiniteAdeleRing.baseChangeAlgEquiv.{u_1, u_2, u_3, u_4}
      (AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3] [Module.FiniteModule.Finite.{u_1, u_4} (R : Type u_1) (M : Type u_4) [Semiring R] [AddCommMonoid M] [Module R M] : PropA module over a semiring is `Module.Finite` if it is finitely generated as a module.  AType u_1 BType u_4] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     AType u_1 KType u_2)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3)]
      [IsDedekindDomain.FiniteAdeleRing.ComapFiberwiseSMulIsDedekindDomain.FiniteAdeleRing.ComapFiberwiseSMul.{u_1, u_2, u_3, u_4} (A : Type u_1) (K : Type u_2) (L : Type u_3)
      (B : Type u_4) [CommRing A] [CommRing B] [Algebra A B] [Field K] [Field L] [Algebra A K] [IsFractionRing A K]
      [Algebra B L] [IsDedekindDomain A] [Algebra K L] [Algebra A L] [IsScalarTower A B L] [IsScalarTower A K L]
      [Module.Finite A B] [IsDedekindDomain B] [IsFractionRing B L]
      [Algebra (IsDedekindDomain.FiniteAdeleRing A K) (IsDedekindDomain.FiniteAdeleRing B L)] : PropUtility class which specialises `RestrictedProduct.FiberwiseSMul` to the case of
    finite adele rings.  AType u_1 KType u_2 LType u_3 BType u_4]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  KType u_2 (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     AType u_1 KType u_2)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3)]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     AType u_1 KType u_2)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3)]
      [FiniteDimensionalFiniteDimensional.{u_1, u_2} (K : Type u_1) (V : Type u_2) [DivisionRing K] [AddCommGroup V] [Module K V] : Prop`FiniteDimensional` vector spaces are defined to be finite modules.
    Use `Module.Basis.finiteDimensional_of_finite` to prove finite dimension from another definition.  KType u_2 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  KType u_2 LType u_3 (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3)] :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_2 LType u_3 (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     AType u_1 KType u_2) ≃ₐ[AlgEquiv.{u, v, w} (R : Type u) (A : Type v) (B : Type w) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra R B] : Type (max v w)An equivalence of algebras (denoted as `A ≃ₐ[R] B`)
    is an equivalence of rings commuting with the actions of scalars. LType u_3]AlgEquiv.{u, v, w} (R : Type u) (A : Type v) (B : Type w) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra R B] : Type (max v w)An equivalence of algebras (denoted as `A ≃ₐ[R] B`)
    is an equivalence of rings commuting with the actions of scalars. 
        IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3
    def IsDedekindDomain.FiniteAdeleRing.baseChangeAlgEquiv.{u_1,
        u_2, u_3, u_4}
      (AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3]
      [Module.FiniteModule.Finite.{u_1, u_4} (R : Type u_1) (M : Type u_4) [Semiring R] [AddCommMonoid M] [Module R M] : PropA module over a semiring is `Module.Finite` if it is finitely generated as a module.  AType u_1 BType u_4] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
    
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     AType u_1
            KType u_2)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4
            LType u_3)]
      [IsDedekindDomain.FiniteAdeleRing.ComapFiberwiseSMulIsDedekindDomain.FiniteAdeleRing.ComapFiberwiseSMul.{u_1, u_2, u_3, u_4} (A : Type u_1) (K : Type u_2) (L : Type u_3)
      (B : Type u_4) [CommRing A] [CommRing B] [Algebra A B] [Field K] [Field L] [Algebra A K] [IsFractionRing A K]
      [Algebra B L] [IsDedekindDomain A] [Algebra K L] [Algebra A L] [IsScalarTower A B L] [IsScalarTower A K L]
      [Module.Finite A B] [IsDedekindDomain B] [IsFractionRing B L]
      [Algebra (IsDedekindDomain.FiniteAdeleRing A K) (IsDedekindDomain.FiniteAdeleRing B L)] : PropUtility class which specialises `RestrictedProduct.FiberwiseSMul` to the case of
    finite adele rings. 
          AType u_1 KType u_2 LType u_3 BType u_4]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4
            LType u_3)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  KType u_2
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     AType u_1
            KType u_2)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4
            LType u_3)]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4
            LType u_3)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4
            LType u_3)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     AType u_1
            KType u_2)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4
            LType u_3)]
      [FiniteDimensionalFiniteDimensional.{u_1, u_2} (K : Type u_1) (V : Type u_2) [DivisionRing K] [AddCommGroup V] [Module K V] : Prop`FiniteDimensional` vector spaces are defined to be finite modules.
    Use `Module.Basis.finiteDimensional_of_finite` to prove finite dimension from another definition.  KType u_2 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  KType u_2 LType u_3
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4
            LType u_3)] :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_2 LType u_3
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     AType u_1
            KType u_2) ≃ₐ[AlgEquiv.{u, v, w} (R : Type u) (A : Type v) (B : Type w) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra R B] : Type (max v w)An equivalence of algebras (denoted as `A ≃ₐ[R] B`)
    is an equivalence of rings commuting with the actions of scalars. LType u_3]AlgEquiv.{u, v, w} (R : Type u) (A : Type v) (B : Type w) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra R B] : Type (max v w)An equivalence of algebras (denoted as `A ≃ₐ[R] B`)
    is an equivalence of rings commuting with the actions of scalars. 
        IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3
    The `L`-algebra isomorphism `L ⊗_K 𝔸_K^∞ ≅ 𝔸_L^∞`. 
    complete
Corollary9.19
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

If M is any K-module then the canonical map B \otimes_A M \to L \otimes_K M is an isomorphism.

Code for Corollary9.191 definition
  • def IsDedekindDomain.linearEquivTensorProductModule.{u_1, u_2, u_3, u_4,
        u_5}
      (AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3] [IsIntegralClosureIsIntegralClosure.{u_1, u_2, u_3} (A : Type u_1) (R : Type u_2) (B : Type u_3) [CommRing R] [CommSemiring A]
      [CommRing B] [Algebra R B] [Algebra A B] : Prop`IsIntegralClosure A R B` is the characteristic predicate stating `A` is
    the integral closure of `R` in `B`,
    i.e. that an element of `B` is integral over `R` iff it is an element of (the image of) `A`.
     BType u_4 AType u_1 LType u_3]
      [Algebra.IsAlgebraicAlgebra.IsAlgebraic.{u, v} (R : Type u) (A : Type v) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is algebraic if all its elements are algebraic.  KType u_2 LType u_3] (MType u_5 : Type u_5A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [AddCommGroupAddCommGroup.{u} (G : Type u) : Type uAn additive commutative group is an additive group with commutative `(+)`.  MType u_5] [ModuleModule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] : Type (max u v)A module is a generalization of vector spaces to a scalar semiring.
    It consists of a scalar semiring `R` and an additive monoid of "vectors" `M`,
    connected by a "scalar multiplication" operation `r • x : M`
    (where `r : R` and `x : M`) with some natural associativity and
    distributivity axioms similar to those on a ring.  KType u_2 MType u_5]
      [ModuleModule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] : Type (max u v)A module is a generalization of vector spaces to a scalar semiring.
    It consists of a scalar semiring `R` and an additive monoid of "vectors" `M`,
    connected by a "scalar multiplication" operation `r • x : M`
    (where `r : R` and `x : M`) with some natural associativity and
    distributivity axioms similar to those on a ring.  AType u_1 MType u_5] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 MType u_5] :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_2 LType u_3 MType u_5 ≃ₗ[LinearEquiv.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      {σ' : S →+* R} [RingHomInvPair σ σ'] [RingHomInvPair σ' σ] (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M]
      [AddCommMonoid M₂] [Module R M] [Module S M₂] : Type (max u_16 u_17)A linear equivalence is an invertible linear map. AType u_1]LinearEquiv.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      {σ' : S →+* R} [RingHomInvPair σ σ'] [RingHomInvPair σ' σ] (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M]
      [AddCommMonoid M₂] [Module R M] [Module S M₂] : Type (max u_16 u_17)A linear equivalence is an invertible linear map.  TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  AType u_1 BType u_4 MType u_5
    def IsDedekindDomain.linearEquivTensorProductModule.{u_1,
        u_2, u_3, u_4, u_5}
      (AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3]
      [IsIntegralClosureIsIntegralClosure.{u_1, u_2, u_3} (A : Type u_1) (R : Type u_2) (B : Type u_3) [CommRing R] [CommSemiring A]
      [CommRing B] [Algebra R B] [Algebra A B] : Prop`IsIntegralClosure A R B` is the characteristic predicate stating `A` is
    the integral closure of `R` in `B`,
    i.e. that an element of `B` is integral over `R` iff it is an element of (the image of) `A`.
     BType u_4 AType u_1 LType u_3]
      [Algebra.IsAlgebraicAlgebra.IsAlgebraic.{u, v} (R : Type u) (A : Type v) [CommRing R] [Ring A] [Algebra R A] : PropAn algebra is algebraic if all its elements are algebraic.  KType u_2 LType u_3] (MType u_5 : Type u_5A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [AddCommGroupAddCommGroup.{u} (G : Type u) : Type uAn additive commutative group is an additive group with commutative `(+)`.  MType u_5] [ModuleModule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] : Type (max u v)A module is a generalization of vector spaces to a scalar semiring.
    It consists of a scalar semiring `R` and an additive monoid of "vectors" `M`,
    connected by a "scalar multiplication" operation `r • x : M`
    (where `r : R` and `x : M`) with some natural associativity and
    distributivity axioms similar to those on a ring.  KType u_2 MType u_5]
      [ModuleModule.{u, v} (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] : Type (max u v)A module is a generalization of vector spaces to a scalar semiring.
    It consists of a scalar semiring `R` and an additive monoid of "vectors" `M`,
    connected by a "scalar multiplication" operation `r • x : M`
    (where `r : R` and `x : M`) with some natural associativity and
    distributivity axioms similar to those on a ring.  AType u_1 MType u_5] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 MType u_5] :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_2 LType u_3 MType u_5 ≃ₗ[LinearEquiv.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      {σ' : S →+* R} [RingHomInvPair σ σ'] [RingHomInvPair σ' σ] (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M]
      [AddCommMonoid M₂] [Module R M] [Module S M₂] : Type (max u_16 u_17)A linear equivalence is an invertible linear map. AType u_1]LinearEquiv.{u_14, u_15, u_16, u_17} {R : Type u_14} {S : Type u_15} [Semiring R] [Semiring S] (σ : R →+* S)
      {σ' : S →+* R} [RingHomInvPair σ σ'] [RingHomInvPair σ' σ] (M : Type u_16) (M₂ : Type u_17) [AddCommMonoid M]
      [AddCommMonoid M₂] [Module R M] [Module S M₂] : Type (max u_16 u_17)A linear equivalence is an invertible linear map. 
        TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  AType u_1 BType u_4 MType u_5
    The canonical `A`-linear isomorphism `L ⊗ M ≅ B ⊗ M` for any `K`-module `M`. 
    complete
Proof

We can factor this map as B \otimes_A M \cong B \otimes_A (K \otimes_K M) \cong (B \otimes_A K) \otimes_K M \to L \otimes_K M$, and we just showed that the latter map was an isomorphism.

The reason we care about this is the following.

Theorem9.20
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
XL∃∀Nused by 1

B is a finitely presented A-module.

Proof

A is Noetherian as it is a Dedekind domain, so it suffices to prove that B is finitely generated as an A-module. But this is in mathlib already.

Theorem9.21
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
XL∃∀Nused by 1

If R is a commutative ring, if M is a finitely presented R-module and if N_i are a collection of R-modules, then the canonical map M \otimes_R \prod_i N_i \to \prod_i (M \otimes_R N_i) is an isomorphism.

Proof

If M is finite and free then Maddy Crim has already formalized this in FLT. For the general case present M as R^a \to R^b \to M \to 0 and use that tensor products and arbitrary products preserve surjections.

Definition9.22
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
XL∃∀N

Let V and W be index sets, and let f:W→V be a map with finite fibres. Let X_v be sets, with subsets C_v, let Y_w be sets with subsets D_w, and say for all v ∈ V we're given a bijection X_v \to \prod_{w \mid f(w)=v} Y_w, identifying C_v with \prod_{w:f(w)=v} D_w. Then there's an induced bijection between the restricted products ∏'_v(X_v,C_v) and ∏'_w(Y_w,D_w).

Proof

Let V be the finite places of K and W the finite places of L, let X_v be B \otimes_A K_v, let C_v be B \otimes_A A_v, let Y_w be L_w, let D_w be B_w, and the result follows from the previous definition, given theorem IsDedekindDomain.HeightOneSpectrum.adicCompletionComapAlgEquiv_integral.

Theorem9.23
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
XL∃∀Nused by 0

In the same setup as RestrictedProduct.relabelIso (V, W index sets, f : W → V, C_v ⊆ X_v and D_w ⊆ Y_w, bijections b_v : X_v → ∏_{w | f(w) = v} Y_w identifying C_v with ∏_{w | f(w) = v} D_w), if all the X_v and Y_w are furthermore topological spaces, all the C_v and D_w are open, and all the b_v are homeomorphisms, then the induced map ∏'_v(X_v,C_v) → ∏'_w(Y_w,D_w) is also a homeomorphism.

Proof

I have only thought about the cofinite filter case, where this should follow easily from the definition of the topology.

Corollary9.24
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
XL∃∀Nused by 1

Theorem 9.20 Theorem 9.21 If S is a finite set of nonzero primes of A then the natural map B\otimes((\prod_{v\in S}K_v)\times(\prod_{v\notin S}A_v))\to (\prod_{v\in S}(B\otimes_AK_v))\times(\prod_{v\notin S}(B\otimes_AA_v))$ is an isomorphism.

Proof

Follows from the previous two theorems.

Recall that \A_K^\infty is the finite adeles of K, defined as the restricted product of the K_v with respect to the A_v, where v runs through the nonzero primes of A. Let R denote the restricted product of the B\otimes_A K_v with respect to the B\otimes_A A_v.

Corollary9.25
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
XL∃∀Nused by 1

Corollary 9.24 The natural map B\otimes_A\A_K^\infty\to R is a B-algebra isomorphism.

Proof

This follows from the previous corollary and the fact that tensor products commute with filtered colimits.

Corollary9.26
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
XL∃∀Nused by 1

Definition 9.22 The ring R introduced above, the restricted product of the B\otimes_A K_v with respect to the B\otimes_A A_v, is isomorphic to \mathbb{A}_L.

Proof

Let V be the finite places of K and W the finite places of L, let X_v be B\otimes_A K_v, let C_v be B\otimes_A A_v, let Y_w be L_w, let D_w be B_w, and the result follows from the previous definition, given theorem IsDedekindDomain.HeightOneSpectrum.adicCompletionComapAlgEquiv_integral.

From this, we can deduce the theorem we claimed earlier:

Theorem9.27
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
XL∃∀Nused by 1

Definition 9.22 Corollary 9.25 Corollary 9.26 The natural map B \otimes_A \A_K^\infty \to \A_L^\infty is a B-algebra isomorphism.

Proof

This map factors through the auxiliary ring~R so the result follows from the previous two constructions.

Because this map factors through the isomorphism B\otimes_A\A_K^\infty\to L\otimes_K\A_K^\infty we can finally deduce that the natural map L\otimes_K\A_K^\infty\to\A_L^\infty is an algebraic isomorphism.

Proof

Follows immediately from theorem and theorem cited above.

Now L \otimes_K \A_{A,K}^\infty is an \A_{A,K}^\infty-module and hence can be given the \A_{A,K}^\infty-module topology. We also claim

Theorem9.28
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 0

The induced L-algebra morphism L \otimes_K \A_{A,K}^\infty \to \A_{B,L}^\infty is a topological isomorphism. Theorem 9.13

Code for Theorem9.281 definition
  • def IsDedekindDomain.FiniteAdeleRing.baseChangeContinuousAlgEquiv.{u_1, u_2,
        u_3, u_4}
      (AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2] [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3] [Module.FiniteModule.Finite.{u_1, u_4} (R : Type u_1) (M : Type u_4) [Semiring R] [AddCommMonoid M] [Module R M] : PropA module over a semiring is `Module.Finite` if it is finitely generated as a module.  AType u_1 BType u_4] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     AType u_1 KType u_2)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3)]
      [IsDedekindDomain.FiniteAdeleRing.ComapFiberwiseSMulIsDedekindDomain.FiniteAdeleRing.ComapFiberwiseSMul.{u_1, u_2, u_3, u_4} (A : Type u_1) (K : Type u_2) (L : Type u_3)
      (B : Type u_4) [CommRing A] [CommRing B] [Algebra A B] [Field K] [Field L] [Algebra A K] [IsFractionRing A K]
      [Algebra B L] [IsDedekindDomain A] [Algebra K L] [Algebra A L] [IsScalarTower A B L] [IsScalarTower A K L]
      [Module.Finite A B] [IsDedekindDomain B] [IsFractionRing B L]
      [Algebra (IsDedekindDomain.FiniteAdeleRing A K) (IsDedekindDomain.FiniteAdeleRing B L)] : PropUtility class which specialises `RestrictedProduct.FiberwiseSMul` to the case of
    finite adele rings.  AType u_1 KType u_2 LType u_3 BType u_4]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  KType u_2 (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     AType u_1 KType u_2)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3)]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     AType u_1 KType u_2)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3)]
      [FiniteDimensionalFiniteDimensional.{u_1, u_2} (K : Type u_1) (V : Type u_2) [DivisionRing K] [AddCommGroup V] [Module K V] : Prop`FiniteDimensional` vector spaces are defined to be finite modules.
    Use `Module.Basis.finiteDimensional_of_finite` to prove finite dimension from another definition.  KType u_2 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  KType u_2 LType u_3 (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3)] :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_2 LType u_3 (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     AType u_1 KType u_2) ≃A[ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    LType u_3]ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    
        IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3
    def IsDedekindDomain.FiniteAdeleRing.baseChangeContinuousAlgEquiv.{u_1,
        u_2, u_3, u_4}
      (AType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (KType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      (LType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (BType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  AType u_1] [CommRingCommRing.{u} (α : Type u) : Type uA commutative ring is a ring with commutative multiplication.  BType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 BType u_4]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_2] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_3] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 KType u_2]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  AType u_1 KType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     BType u_4 LType u_3]
      [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     AType u_1] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2 LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1 LType u_3] [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 KType u_2 LType u_3]
      [Module.FiniteModule.Finite.{u_1, u_4} (R : Type u_1) (M : Type u_4) [Semiring R] [AddCommMonoid M] [Module R M] : PropA module over a semiring is `Module.Finite` if it is finitely generated as a module.  AType u_1 BType u_4] [IsDedekindDomainIsDedekindDomain.{u_2} (A : Type u_2) [CommRing A] : PropA Dedekind domain is an integral domain that is Noetherian, integrally closed, and
    has Krull dimension at most one.
    
    This is definition 3.2 of [Neukirch1992].
    
    This is exactly `IsDedekindRing` plus the `IsDomain` hypothesis.
    
    The integral closure condition is independent of the choice of field of fractions:
    use `isDedekindDomain_iff` to prove `IsDedekindDomain` for a given `fraction_map`.
    
    This is the default implementation, but there are equivalent definitions,
    `IsDedekindDomainDvr` and `IsDedekindDomainInv`.
     BType u_4]
      [IsFractionRingIsFractionRing.{u_6, u_7} (R : Type u_6) [CommSemiring R] (K : Type u_7) [CommSemiring K] [Algebra R K] : Prop`IsFractionRing R K` states `K` is the ring of fractions of a commutative ring `R`.  BType u_4 LType u_3]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
    
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     AType u_1
            KType u_2)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4
            LType u_3)]
      [IsDedekindDomain.FiniteAdeleRing.ComapFiberwiseSMulIsDedekindDomain.FiniteAdeleRing.ComapFiberwiseSMul.{u_1, u_2, u_3, u_4} (A : Type u_1) (K : Type u_2) (L : Type u_3)
      (B : Type u_4) [CommRing A] [CommRing B] [Algebra A B] [Field K] [Field L] [Algebra A K] [IsFractionRing A K]
      [Algebra B L] [IsDedekindDomain A] [Algebra K L] [Algebra A L] [IsScalarTower A B L] [IsScalarTower A K L]
      [Module.Finite A B] [IsDedekindDomain B] [IsFractionRing B L]
      [Algebra (IsDedekindDomain.FiniteAdeleRing A K) (IsDedekindDomain.FiniteAdeleRing B L)] : PropUtility class which specialises `RestrictedProduct.FiberwiseSMul` to the case of
    finite adele rings. 
          AType u_1 KType u_2 LType u_3 BType u_4]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_2
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4
            LType u_3)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  KType u_2
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     AType u_1
            KType u_2)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4
            LType u_3)]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     AType u_1
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4
            LType u_3)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1 BType u_4
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4
            LType u_3)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  AType u_1
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     AType u_1
            KType u_2)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4
            LType u_3)]
      [FiniteDimensionalFiniteDimensional.{u_1, u_2} (K : Type u_1) (V : Type u_2) [DivisionRing K] [AddCommGroup V] [Module K V] : Prop`FiniteDimensional` vector spaces are defined to be finite modules.
    Use `Module.Basis.finiteDimensional_of_finite` to prove finite dimension from another definition.  KType u_2 LType u_3]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  KType u_2 LType u_3
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4
            LType u_3)] :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_2 LType u_3
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     AType u_1
            KType u_2) ≃A[ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    LType u_3]ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    
        IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     BType u_4 LType u_3
    The continuous `L`-algebra isomorphism `L ⊗_K 𝔸_K^∞ ≅ 𝔸_L^∞` 
    complete

Informally, the proofs are simple: componentwise we know that L \otimes_K K_v is isomorphic both algebraically and topologically to \prod_{w \mid v} L_w, and that this isomorphism sends the open set B \otimes_A A_v homeomorphically onto \prod_{w \mid v} B_w, so now it's "just a case of putting everything together". Formally, we really need to spell this out, as there is a lot going on. We do this in the next subsection.

Corollary9.29
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
XL∃∀Nused by 0

\mathbb{\A_L^\infty} is homeomorphic to \prod_v(B\otimes_AK_v,B\otimes_AA_v).

Proof

Follows from the previous theorem with X_v=B\otimes_AK_v, D_w=L_w, etc.

Theorem9.30
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

Let S be a set of infinite places of K. The image of K under the embedding K \hookrightarrow (K_v)_{v \in S}, k \mapsto (k)_v, is dense in the product topology.

Code for Theorem9.301 theorem
  • theorem NumberField.InfinitePlace.Completion.denseRange_algebraMap_subtype_pi.{u_1}
      (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1] (pNumberField.InfinitePlace K → Prop : NumberField.InfinitePlaceNumberField.InfinitePlace.{u_1} (K : Type u_1) [Field K] : Type u_1An infinite place of a number field `K` is a place associated to a complex embedding.  KType u_1  PropThe universe of propositions. `Prop ≡ Sort 0`.
    
    Every proposition is propositionally equal to either `True` or `False`. )
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] :
      DenseRangeDenseRange.{u, u_1} {X : Type u} [TopologicalSpace X] {α : Type u_1} (f : α → X) : Prop`f : α → X` has dense range if its range (image) is a dense subset of `X`.  (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_1 ((vSubtype p : SubtypeSubtype.{u} {α : Sort u} (p : α → Prop) : Sort (max 1 u)All the elements of a type that satisfy a predicate.
    
    `Subtype p`, usually written `{ x : α // p x }` or `{ x // p x }`, contains all elements `x : α` for
    which `p x` is true. Its constructor is a pair of the value and the proof that it satisfies the
    predicate. In run-time code, `{ x : α // p x }` is represented identically to `α`.
    
    There is a coercion from `{ x : α // p x }` to `α`, so elements of a subtype may be used where the
    underlying type is expected.
    
    Examples:
     * `{ n : Nat // n % 2 = 0 }` is the type of even numbers.
     * `{ xs : Array String // xs.size = 5 }` is the type of arrays with five `String`s.
     * Given `xs : List α`, `List { x : α // x ∈ xs }` is the type of lists in which all elements are
       contained in `xs`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `{ x // p x }` in identifiers is `subtype`. pNumberField.InfinitePlace K → Prop)  (↑vSubtype p).CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. ))
    theorem NumberField.InfinitePlace.Completion.denseRange_algebraMap_subtype_pi.{u_1}
      (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      (pNumberField.InfinitePlace K → Prop : NumberField.InfinitePlaceNumberField.InfinitePlace.{u_1} (K : Type u_1) [Field K] : Type u_1An infinite place of a number field `K` is a place associated to a complex embedding.  KType u_1  PropThe universe of propositions. `Prop ≡ Sort 0`.
    
    Every proposition is propositionally equal to either `True` or `False`. )
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] :
      DenseRangeDenseRange.{u, u_1} {X : Type u} [TopologicalSpace X] {α : Type u_1} (f : α → X) : Prop`f : α → X` has dense range if its range (image) is a dense subset of `X`. 
        (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_1
            ((vSubtype p : SubtypeSubtype.{u} {α : Sort u} (p : α → Prop) : Sort (max 1 u)All the elements of a type that satisfy a predicate.
    
    `Subtype p`, usually written `{ x : α // p x }` or `{ x // p x }`, contains all elements `x : α` for
    which `p x` is true. Its constructor is a pair of the value and the proof that it satisfies the
    predicate. In run-time code, `{ x : α // p x }` is represented identically to `α`.
    
    There is a coercion from `{ x : α // p x }` to `α`, so elements of a subtype may be used where the
    underlying type is expected.
    
    Examples:
     * `{ n : Nat // n % 2 = 0 }` is the type of even numbers.
     * `{ xs : Array String // xs.size = 5 }` is the type of arrays with five `String`s.
     * Given `xs : List α`, `List { x : α // x ∈ xs }` is the type of lists in which all elements are
       contained in `xs`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `{ x // p x }` in identifiers is `subtype`. pNumberField.InfinitePlace K → Prop) 
              (↑vSubtype p).CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. ))
    *Weak approximation for subcollections*: this is the result that `K` is dense in any subcollection
    `Π v ∈ S, Kᵥ` of completions at infinite places.
    
    complete
Proof

Let (K, v) denote K equipped with the topology induced by the infinite place v. It suffices to show that the image of K under the embedding K \hookrightarrow \prod_{v \mid \infty} (K, v) is dense in the product topology. By a standard analytic argument, for each v it is possible to select a sequence (x_n^{(v)})_n with the property that x_n^{(v)} \to 1 in v's topology, while x_n^{(v)} \to 0 in any other infinite place's topology. Let (z_v)_v \in \prod_{v \mid \infty} (K, v). For each v, the sequence y_n := \sum_{v \mid \infty} x_n^{(v)} z_v in K converges to z_v in v's topology, so the embedded image of y_n converges to (z_v)_v in the product topology.

Theorem9.31
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

For a fixed infinite place v of K, we have \dim_{K_v} \prod_{w \mid v} L_w = \dim_{K_v} L \otimes_K K_v.

Code for Theorem9.311 theorem
  • theorem NumberField.InfinitePlace.Completion.finrank_pi_eq_finrank_tensorProduct.{u_1,
        u_2}
      {KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      (vNumberField.InfinitePlace K : NumberField.InfinitePlaceNumberField.InfinitePlace.{u_1} (K : Type u_1) [Field K] : Type u_1An infinite place of a number field `K` is a place associated to a complex embedding.  KType u_1) [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] :
      Module.finrankModule.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.  vNumberField.InfinitePlace K.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
          ((wNumberField.InfinitePlace.Extension L v : NumberField.InfinitePlace.ExtensionNumberField.InfinitePlace.Extension.{u_1, u_2} {K : Type u_1} (L : Type u_2) [Field K] [Field L] [Algebra K L]
      (v : NumberField.InfinitePlace K) : Type u_2If `L / K` are fields and `v` is an infinite place of `K`, then we say an infinite place `w`
    of `L` _extends_ `v` if `w` can be constructed from a complex embedding `L →+* ℂ` whose
    restriction to `K` is an associated complex embedding `K →+* ℂ` of `v`.
     LType u_2 vNumberField.InfinitePlace K) 
            (↑wNumberField.InfinitePlace.Extension L v).CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. ) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
        Module.finrankModule.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.  vNumberField.InfinitePlace K.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place.  (TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_1 LType u_2 vNumberField.InfinitePlace K.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. )
    theorem NumberField.InfinitePlace.Completion.finrank_pi_eq_finrank_tensorProduct.{u_1,
        u_2}
      {KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      (vNumberField.InfinitePlace K : NumberField.InfinitePlaceNumberField.InfinitePlace.{u_1} (K : Type u_1) [Field K] : Type u_1An infinite place of a number field `K` is a place associated to a complex embedding.  KType u_1)
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] :
      Module.finrankModule.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.  vNumberField.InfinitePlace K.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
          ((wNumberField.InfinitePlace.Extension L v :
              NumberField.InfinitePlace.ExtensionNumberField.InfinitePlace.Extension.{u_1, u_2} {K : Type u_1} (L : Type u_2) [Field K] [Field L] [Algebra K L]
      (v : NumberField.InfinitePlace K) : Type u_2If `L / K` are fields and `v` is an infinite place of `K`, then we say an infinite place `w`
    of `L` _extends_ `v` if `w` can be constructed from a complex embedding `L →+* ℂ` whose
    restriction to `K` is an associated complex embedding `K →+* ℂ` of `v`.
    
                LType u_2 vNumberField.InfinitePlace K) 
            (↑wNumberField.InfinitePlace.Extension L v).CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. ) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
        Module.finrankModule.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.  vNumberField.InfinitePlace K.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
          (TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_1 LType u_2 vNumberField.InfinitePlace K.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. )
    complete
Definition9.32
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

Let v be an infinite place of K. There is a continuous K-algebra homomorphism K_v \to \prod_{w \mid v} L_w, whose restriction to K corresponds to the global embedding of K into (L_w)_w.

Code for Definition9.321 definition
  • def NumberField.InfinitePlace.Completion.piExtension.{u_1, u_2}
      {KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      (vNumberField.InfinitePlace K : NumberField.InfinitePlaceNumberField.InfinitePlace.{u_1} (K : Type u_1) [Field K] : Type u_1An infinite place of a number field `K` is a place associated to a complex embedding.  KType u_1) :
      vNumberField.InfinitePlace K.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place.  →ₛₐ[SemialgHom.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [CommSemiring R] [CommSemiring S] (φ : R →+* S)
      (A : Type u_3) (B : Type u_4) [Semiring A] [Semiring B] [Algebra R A] [Algebra S B] : Type (max u_3 u_4)Let `φ : R →+* S` be a ring homomorphism, let `A` be an `R`-algebra and let `B` be
    an `S`-algebra. Then `SemialgHom φ A B` or `A →ₛₐ[φ] B` is the ring homomorphisms `ψ : A →+* B`
    making lying above `φ` (i.e. such that `ψ (r • a) = φ r • ψ a`).
    algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_1 LType u_2]SemialgHom.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [CommSemiring R] [CommSemiring S] (φ : R →+* S)
      (A : Type u_3) (B : Type u_4) [Semiring A] [Semiring B] [Algebra R A] [Algebra S B] : Type (max u_3 u_4)Let `φ : R →+* S` be a ring homomorphism, let `A` be an `R`-algebra and let `B` be
    an `S`-algebra. Then `SemialgHom φ A B` or `A →ₛₐ[φ] B` is the ring homomorphisms `ψ : A →+* B`
    making lying above `φ` (i.e. such that `ψ (r • a) = φ r • ψ a`).
    
        (wvNumberField.InfinitePlace.Extension L v : NumberField.InfinitePlace.ExtensionNumberField.InfinitePlace.Extension.{u_1, u_2} {K : Type u_1} (L : Type u_2) [Field K] [Field L] [Algebra K L]
      (v : NumberField.InfinitePlace K) : Type u_2If `L / K` are fields and `v` is an infinite place of `K`, then we say an infinite place `w`
    of `L` _extends_ `v` if `w` can be constructed from a complex embedding `L →+* ℂ` whose
    restriction to `K` is an associated complex embedding `K →+* ℂ` of `v`.
     LType u_2 vNumberField.InfinitePlace K)  (↑wvNumberField.InfinitePlace.Extension L v).CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
    def NumberField.InfinitePlace.Completion.piExtension.{u_1,
        u_2}
      {KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      (vNumberField.InfinitePlace K : NumberField.InfinitePlaceNumberField.InfinitePlace.{u_1} (K : Type u_1) [Field K] : Type u_1An infinite place of a number field `K` is a place associated to a complex embedding.  KType u_1) :
      vNumberField.InfinitePlace K.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place.  →ₛₐ[SemialgHom.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [CommSemiring R] [CommSemiring S] (φ : R →+* S)
      (A : Type u_3) (B : Type u_4) [Semiring A] [Semiring B] [Algebra R A] [Algebra S B] : Type (max u_3 u_4)Let `φ : R →+* S` be a ring homomorphism, let `A` be an `R`-algebra and let `B` be
    an `S`-algebra. Then `SemialgHom φ A B` or `A →ₛₐ[φ] B` is the ring homomorphisms `ψ : A →+* B`
    making lying above `φ` (i.e. such that `ψ (r • a) = φ r • ψ a`).
    algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_1 LType u_2]SemialgHom.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [CommSemiring R] [CommSemiring S] (φ : R →+* S)
      (A : Type u_3) (B : Type u_4) [Semiring A] [Semiring B] [Algebra R A] [Algebra S B] : Type (max u_3 u_4)Let `φ : R →+* S` be a ring homomorphism, let `A` be an `R`-algebra and let `B` be
    an `S`-algebra. Then `SemialgHom φ A B` or `A →ₛₐ[φ] B` is the ring homomorphisms `ψ : A →+* B`
    making lying above `φ` (i.e. such that `ψ (r • a) = φ r • ψ a`).
    
        (wvNumberField.InfinitePlace.Extension L v :
            NumberField.InfinitePlace.ExtensionNumberField.InfinitePlace.Extension.{u_1, u_2} {K : Type u_1} (L : Type u_2) [Field K] [Field L] [Algebra K L]
      (v : NumberField.InfinitePlace K) : Type u_2If `L / K` are fields and `v` is an infinite place of `K`, then we say an infinite place `w`
    of `L` _extends_ `v` if `w` can be constructed from a complex embedding `L →+* ℂ` whose
    restriction to `K` is an associated complex embedding `K →+* ℂ` of `v`.
    
              LType u_2 vNumberField.InfinitePlace K) 
          (↑wvNumberField.InfinitePlace.Extension L v).CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
    The map from `v.Completion` to the product of all completions of `L` lying above `v`. 
    complete
Definition9.33
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

Definition 9.32 Let v be an infinite place of K. There is a natural L-algebra homomorphism L \otimes_K K_v \to \prod_{w \mid v} L_w, whose restriction to 1 \otimes_K K_v corresponds to the map in NumberField.InfinitePlace.Completion.piExtension.

Code for Definition9.331 definition
  • def NumberField.InfinitePlace.Completion.baseChange.{u_1, u_2}
      {KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      (vNumberField.InfinitePlace K : NumberField.InfinitePlaceNumberField.InfinitePlace.{u_1} (K : Type u_1) [Field K] : Type u_1An infinite place of a number field `K` is a place associated to a complex embedding.  KType u_1) :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_1 LType u_2 vNumberField.InfinitePlace K.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place.  →ₐ[AlgHom.{u, v, w} (R : Type u) (A : Type v) (B : Type w) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra R B] : Type (max v w)Defining the homomorphism in the category R-Alg, denoted `A →ₐ[R] B`. LType u_2]AlgHom.{u, v, w} (R : Type u) (A : Type v) (B : Type w) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra R B] : Type (max v w)Defining the homomorphism in the category R-Alg, denoted `A →ₐ[R] B`. 
        (wvNumberField.InfinitePlace.Extension L v : NumberField.InfinitePlace.ExtensionNumberField.InfinitePlace.Extension.{u_1, u_2} {K : Type u_1} (L : Type u_2) [Field K] [Field L] [Algebra K L]
      (v : NumberField.InfinitePlace K) : Type u_2If `L / K` are fields and `v` is an infinite place of `K`, then we say an infinite place `w`
    of `L` _extends_ `v` if `w` can be constructed from a complex embedding `L →+* ℂ` whose
    restriction to `K` is an associated complex embedding `K →+* ℂ` of `v`.
     LType u_2 vNumberField.InfinitePlace K)  (↑wvNumberField.InfinitePlace.Extension L v).CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
    def NumberField.InfinitePlace.Completion.baseChange.{u_1,
        u_2}
      {KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      (vNumberField.InfinitePlace K : NumberField.InfinitePlaceNumberField.InfinitePlace.{u_1} (K : Type u_1) [Field K] : Type u_1An infinite place of a number field `K` is a place associated to a complex embedding.  KType u_1) :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_1 LType u_2 vNumberField.InfinitePlace K.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place.  →ₐ[AlgHom.{u, v, w} (R : Type u) (A : Type v) (B : Type w) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra R B] : Type (max v w)Defining the homomorphism in the category R-Alg, denoted `A →ₐ[R] B`. LType u_2]AlgHom.{u, v, w} (R : Type u) (A : Type v) (B : Type w) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra R B] : Type (max v w)Defining the homomorphism in the category R-Alg, denoted `A →ₐ[R] B`. 
        (wvNumberField.InfinitePlace.Extension L v :
            NumberField.InfinitePlace.ExtensionNumberField.InfinitePlace.Extension.{u_1, u_2} {K : Type u_1} (L : Type u_2) [Field K] [Field L] [Algebra K L]
      (v : NumberField.InfinitePlace K) : Type u_2If `L / K` are fields and `v` is an infinite place of `K`, then we say an infinite place `w`
    of `L` _extends_ `v` if `w` can be constructed from a complex embedding `L →+* ℂ` whose
    restriction to `K` is an associated complex embedding `K →+* ℂ` of `v`.
    
              LType u_2 vNumberField.InfinitePlace K) 
          (↑wvNumberField.InfinitePlace.Extension L v).CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
    The `L`-algebra map `L ⊗[K] v.Completion` to the product of all completions of `L` lying
    above `v`, induced by `piExtension`. 
    complete

A map in NumberField.InfinitePlace.Completion.piExtension can be lifted to an L-algebra homomorphism defined on L \otimes_K K_v.

Theorem9.34
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

Theorem 9.30 For a fixed infinite place v of K, the local infinite-place base-change map L \otimes_K K_v \to \prod_{w \mid v} L_w is surjective.

Code for Theorem9.341 theorem
  • theorem NumberField.InfinitePlace.Completion.baseChange_surjective.{u_1, u_2}
      {KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      (vNumberField.InfinitePlace K : NumberField.InfinitePlaceNumberField.InfinitePlace.{u_1} (K : Type u_1) [Field K] : Type u_1An infinite place of a number field `K` is a place associated to a complex embedding.  KType u_1) [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2] :
      Function.SurjectiveFunction.Surjective.{u_1, u_2} {α : Sort u_1} {β : Sort u_2} (f : α → β) : PropA function `f : α → β` is called surjective if every `b : β` is equal to `f a`
    for some `a : α`. 
        (NumberField.InfinitePlace.Completion.baseChangeNumberField.InfinitePlace.Completion.baseChange.{u_1, u_2} {K : Type u_1} (L : Type u_2) [Field K] [Field L]
      [Algebra K L] (v : NumberField.InfinitePlace K) :
      TensorProduct K L v.Completion →ₐ[L] (wv : NumberField.InfinitePlace.Extension L v) → (↑wv).CompletionThe `L`-algebra map `L ⊗[K] v.Completion` to the product of all completions of `L` lying
    above `v`, induced by `piExtension`.  LType u_2 vNumberField.InfinitePlace K)
    theorem NumberField.InfinitePlace.Completion.baseChange_surjective.{u_1,
        u_2}
      {KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      (vNumberField.InfinitePlace K : NumberField.InfinitePlaceNumberField.InfinitePlace.{u_1} (K : Type u_1) [Field K] : Type u_1An infinite place of a number field `K` is a place associated to a complex embedding.  KType u_1)
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2] :
      Function.SurjectiveFunction.Surjective.{u_1, u_2} {α : Sort u_1} {β : Sort u_2} (f : α → β) : PropA function `f : α → β` is called surjective if every `b : β` is equal to `f a`
    for some `a : α`. 
        (NumberField.InfinitePlace.Completion.baseChangeNumberField.InfinitePlace.Completion.baseChange.{u_1, u_2} {K : Type u_1} (L : Type u_2) [Field K] [Field L]
      [Algebra K L] (v : NumberField.InfinitePlace K) :
      TensorProduct K L v.Completion →ₐ[L] (wv : NumberField.InfinitePlace.Extension L v) → (↑wv).CompletionThe `L`-algebra map `L ⊗[K] v.Completion` to the product of all completions of `L` lying
    above `v`, induced by `piExtension`. 
            LType u_2 vNumberField.InfinitePlace K)
    complete
Proof

Let (x_i)_i be a K_v-basis of \prod_{w \mid v} L_w. By the density of L in \prod_{w \mid v} L_w from NumberField.InfinitePlace.Completion.denseRange_algebraMap_subtype_pi, we can find \alpha_i \in L arbitrarily close to x_i with respect to the sup norm when embedded globally in \prod_{w \mid v} L_w. In particular, it is possible to choose such \alpha_i so that the matrix representing the vector ((\alpha_i)_{w \mid v})_i in the basis (x_i)_i has nonzero determinant. Since (\alpha_i)_{w \mid v} is the image of 1 \otimes \alpha_i under base change, we have that (1 \otimes \alpha_i)_i also forms a basis of L \otimes_K K_v, and base change is surjective.

Theorem9.35
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

Theorem 9.31 For a fixed infinite place v of K, the local infinite-place base-change map L \otimes_K K_v \to \prod_{w \mid v} L_w is injective.

Code for Theorem9.351 theorem
  • theorem NumberField.InfinitePlace.Completion.baseChange_injective.{u_1, u_2}
      {KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      (vNumberField.InfinitePlace K : NumberField.InfinitePlaceNumberField.InfinitePlace.{u_1} (K : Type u_1) [Field K] : Type u_1An infinite place of a number field `K` is a place associated to a complex embedding.  KType u_1) [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] :
      Function.InjectiveFunction.Injective.{u_1, u_2} {α : Sort u_1} {β : Sort u_2} (f : α → β) : PropA function `f : α → β` is called injective if `f x = f y` implies `x = y`. 
        (NumberField.InfinitePlace.Completion.baseChangeNumberField.InfinitePlace.Completion.baseChange.{u_1, u_2} {K : Type u_1} (L : Type u_2) [Field K] [Field L]
      [Algebra K L] (v : NumberField.InfinitePlace K) :
      TensorProduct K L v.Completion →ₐ[L] (wv : NumberField.InfinitePlace.Extension L v) → (↑wv).CompletionThe `L`-algebra map `L ⊗[K] v.Completion` to the product of all completions of `L` lying
    above `v`, induced by `piExtension`.  LType u_2 vNumberField.InfinitePlace K)
    theorem NumberField.InfinitePlace.Completion.baseChange_injective.{u_1,
        u_2}
      {KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      (vNumberField.InfinitePlace K : NumberField.InfinitePlaceNumberField.InfinitePlace.{u_1} (K : Type u_1) [Field K] : Type u_1An infinite place of a number field `K` is a place associated to a complex embedding.  KType u_1)
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] :
      Function.InjectiveFunction.Injective.{u_1, u_2} {α : Sort u_1} {β : Sort u_2} (f : α → β) : PropA function `f : α → β` is called injective if `f x = f y` implies `x = y`. 
        (NumberField.InfinitePlace.Completion.baseChangeNumberField.InfinitePlace.Completion.baseChange.{u_1, u_2} {K : Type u_1} (L : Type u_2) [Field K] [Field L]
      [Algebra K L] (v : NumberField.InfinitePlace K) :
      TensorProduct K L v.Completion →ₐ[L] (wv : NumberField.InfinitePlace.Extension L v) → (↑wv).CompletionThe `L`-algebra map `L ⊗[K] v.Completion` to the product of all completions of `L` lying
    above `v`, induced by `piExtension`. 
            LType u_2 vNumberField.InfinitePlace K)
    complete
Proof

The L-algebra map L \otimes_K K_v \to \prod_{w \mid v} L_w can equivalently be thought of as K_v-linear, which is injective, because it is surjective by theorem NumberField.InfinitePlace.Completion.baseChange_surjective, and both sides have the same K_v-dimension by theorem NumberField.InfinitePlace.Completion.finrank_pi_eq_finrank_tensorProduct.

Theorem9.36
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

If w \mid v is an infinite place of L lying above an infinite place v of K, then L_w has the K_v-module topology.

Code for Theorem9.361 theorem
  • theorem NumberField.InfinitePlace.Completion.instIsModuleTopologyValEqComapAlgebraMap_fLT.{u_1,
        u_2}
      {KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      (vNumberField.InfinitePlace K : NumberField.InfinitePlaceNumberField.InfinitePlace.{u_1} (K : Type u_1) [Field K] : Type u_1An infinite place of a number field `K` is a place associated to a complex embedding.  KType u_1)
      {wvNumberField.InfinitePlace.Extension L v : NumberField.InfinitePlace.ExtensionNumberField.InfinitePlace.Extension.{u_1, u_2} {K : Type u_1} (L : Type u_2) [Field K] [Field L] [Algebra K L]
      (v : NumberField.InfinitePlace K) : Type u_2If `L / K` are fields and `v` is an infinite place of `K`, then we say an infinite place `w`
    of `L` _extends_ `v` if `w` can be constructed from a complex embedding `L →+* ℂ` whose
    restriction to `K` is an associated complex embedding `K →+* ℂ` of `v`.
     LType u_2 vNumberField.InfinitePlace K} :
      IsModuleTopologyIsModuleTopology.{u_1, u_2} (R : Type u_1) [TopologicalSpace R] (A : Type u_2) [Add A] [SMul R A]
      [τA : TopologicalSpace A] : PropA class asserting that the topology on a module over a topological ring `R` is
    the module topology. See `moduleTopology` for more discussion of the module topology.  vNumberField.InfinitePlace K.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place.  (↑wvNumberField.InfinitePlace.Extension L v).CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
    theorem NumberField.InfinitePlace.Completion.instIsModuleTopologyValEqComapAlgebraMap_fLT.{u_1,
        u_2}
      {KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      (vNumberField.InfinitePlace K : NumberField.InfinitePlaceNumberField.InfinitePlace.{u_1} (K : Type u_1) [Field K] : Type u_1An infinite place of a number field `K` is a place associated to a complex embedding.  KType u_1)
      {wvNumberField.InfinitePlace.Extension L v :
        NumberField.InfinitePlace.ExtensionNumberField.InfinitePlace.Extension.{u_1, u_2} {K : Type u_1} (L : Type u_2) [Field K] [Field L] [Algebra K L]
      (v : NumberField.InfinitePlace K) : Type u_2If `L / K` are fields and `v` is an infinite place of `K`, then we say an infinite place `w`
    of `L` _extends_ `v` if `w` can be constructed from a complex embedding `L →+* ℂ` whose
    restriction to `K` is an associated complex embedding `K →+* ℂ` of `v`.
     LType u_2
          vNumberField.InfinitePlace K} :
      IsModuleTopologyIsModuleTopology.{u_1, u_2} (R : Type u_1) [TopologicalSpace R] (A : Type u_2) [Add A] [SMul R A]
      [τA : TopologicalSpace A] : PropA class asserting that the topology on a module over a topological ring `R` is
    the module topology. See `moduleTopology` for more discussion of the module topology.  vNumberField.InfinitePlace K.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
        (↑wvNumberField.InfinitePlace.Extension L v).CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
    complete
Proof

Because L_w is a finite-dimensional normed K_v-vector space, there exists a K_v-linear homeomorphism L_w \cong K_v^n, from which L_w has the K_v-module topology.

Theorem9.37
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀N
Used by 2
Hover a use site to preview it.
Preview
Theorem 9.38
Blueprint label
  • «NumberField.InfinitePlace.Completion.piEquiv»
Uses target in
  • statement

Let v be an infinite place of K. There is a natural L-algebra homeomorphism L \otimes_K K_v \cong \prod_{w \mid v} L_w, whose restriction to 1 \otimes_K K_v corresponds to the map in NumberField.InfinitePlace.Completion.piExtension. Definition 9.33 Theorem 9.34 Theorem 9.35 Theorem 9.36

Code for Theorem9.371 definition
  • def NumberField.InfinitePlace.Completion.baseChangeEquiv.{u_1, u_2}
      {KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      (vNumberField.InfinitePlace K : NumberField.InfinitePlaceNumberField.InfinitePlace.{u_1} (K : Type u_1) [Field K] : Type u_1An infinite place of a number field `K` is a place associated to a complex embedding.  KType u_1) [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_1 LType u_2 vNumberField.InfinitePlace K.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place.  ≃A[ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    LType u_2]ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    
        (wvNumberField.InfinitePlace.Extension L v : NumberField.InfinitePlace.ExtensionNumberField.InfinitePlace.Extension.{u_1, u_2} {K : Type u_1} (L : Type u_2) [Field K] [Field L] [Algebra K L]
      (v : NumberField.InfinitePlace K) : Type u_2If `L / K` are fields and `v` is an infinite place of `K`, then we say an infinite place `w`
    of `L` _extends_ `v` if `w` can be constructed from a complex embedding `L →+* ℂ` whose
    restriction to `K` is an associated complex embedding `K →+* ℂ` of `v`.
     LType u_2 vNumberField.InfinitePlace K)  (↑wvNumberField.InfinitePlace.Extension L v).CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
    def NumberField.InfinitePlace.Completion.baseChangeEquiv.{u_1,
        u_2}
      {KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      (vNumberField.InfinitePlace K : NumberField.InfinitePlaceNumberField.InfinitePlace.{u_1} (K : Type u_1) [Field K] : Type u_1An infinite place of a number field `K` is a place associated to a complex embedding.  KType u_1)
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_1 LType u_2 vNumberField.InfinitePlace K.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place.  ≃A[ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    LType u_2]ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    
        (wvNumberField.InfinitePlace.Extension L v :
            NumberField.InfinitePlace.ExtensionNumberField.InfinitePlace.Extension.{u_1, u_2} {K : Type u_1} (L : Type u_2) [Field K] [Field L] [Algebra K L]
      (v : NumberField.InfinitePlace K) : Type u_2If `L / K` are fields and `v` is an infinite place of `K`, then we say an infinite place `w`
    of `L` _extends_ `v` if `w` can be constructed from a complex embedding `L →+* ℂ` whose
    restriction to `K` is an associated complex embedding `K →+* ℂ` of `v`.
    
              LType u_2 vNumberField.InfinitePlace K) 
          (↑wvNumberField.InfinitePlace.Extension L v).CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
    The `L`-algebra homeomorphism between `L ⊗[K] v.Completion` and the product of all completions
    of `L` lying above `v`. 
    complete
Proof

The map in NumberField.InfinitePlace.Completion.baseChange is an L-algebra isomorphism by the surjectivity and injectivity theorems. Every K_v-algebra isomorphism between two K_v-module topological spaces is a homeomorphism. Since the L-algebra isomorphism of NumberField.InfinitePlace.Completion.baseChange can equivalently be viewed as a K_v-algebra isomorphism, it is also a homeomorphism.

Theorem9.38
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

Theorem 9.37 Let v be an infinite place of K. There is a natural K_v-linear homeomorphism K_v^{[L:K]} \cong \prod_{w \mid v} L_w.

Code for Theorem9.381 definition
  • def NumberField.InfinitePlace.Completion.piEquiv.{u_1, u_2} {KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. }
      (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      (vNumberField.InfinitePlace K : NumberField.InfinitePlaceNumberField.InfinitePlace.{u_1} (K : Type u_1) [Field K] : Type u_1An infinite place of a number field `K` is a place associated to a complex embedding.  KType u_1) [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] :
      (FinFin (n : ℕ) : TypeNatural numbers less than some upper bound.
    
    In particular, a `Fin n` is a natural number `i` with the constraint that `i < n`. It is the
    canonical type with `n` elements.
     (Module.finrankModule.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.  KType u_1 LType u_2)  vNumberField.InfinitePlace K.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. ) ≃L[ContinuousLinearEquiv.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [Semiring R] [Semiring S] (σ : R →+* S)
      {σ' : S →+* R} [RingHomInvPair σ σ'] [RingHomInvPair σ' σ] (M : Type u_3) [TopologicalSpace M] [AddCommMonoid M]
      (M₂ : Type u_4) [TopologicalSpace M₂] [AddCommMonoid M₂] [Module R M] [Module S M₂] : Type (max u_3 u_4)Continuous linear equivalences between modules. We only put the type classes that are necessary
    for the definition, although in applications `M` and `M₂` will be topological modules over the
    topological semiring `R`. vNumberField.InfinitePlace K.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. ]ContinuousLinearEquiv.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [Semiring R] [Semiring S] (σ : R →+* S)
      {σ' : S →+* R} [RingHomInvPair σ σ'] [RingHomInvPair σ' σ] (M : Type u_3) [TopologicalSpace M] [AddCommMonoid M]
      (M₂ : Type u_4) [TopologicalSpace M₂] [AddCommMonoid M₂] [Module R M] [Module S M₂] : Type (max u_3 u_4)Continuous linear equivalences between modules. We only put the type classes that are necessary
    for the definition, although in applications `M` and `M₂` will be topological modules over the
    topological semiring `R`. 
        (wvNumberField.InfinitePlace.Extension L v : NumberField.InfinitePlace.ExtensionNumberField.InfinitePlace.Extension.{u_1, u_2} {K : Type u_1} (L : Type u_2) [Field K] [Field L] [Algebra K L]
      (v : NumberField.InfinitePlace K) : Type u_2If `L / K` are fields and `v` is an infinite place of `K`, then we say an infinite place `w`
    of `L` _extends_ `v` if `w` can be constructed from a complex embedding `L →+* ℂ` whose
    restriction to `K` is an associated complex embedding `K →+* ℂ` of `v`.
     LType u_2 vNumberField.InfinitePlace K)  (↑wvNumberField.InfinitePlace.Extension L v).CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
    def NumberField.InfinitePlace.Completion.piEquiv.{u_1,
        u_2}
      {KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      (vNumberField.InfinitePlace K : NumberField.InfinitePlaceNumberField.InfinitePlace.{u_1} (K : Type u_1) [Field K] : Type u_1An infinite place of a number field `K` is a place associated to a complex embedding.  KType u_1)
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] :
      (FinFin (n : ℕ) : TypeNatural numbers less than some upper bound.
    
    In particular, a `Fin n` is a natural number `i` with the constraint that `i < n`. It is the
    canonical type with `n` elements.
     (Module.finrankModule.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.  KType u_1 LType u_2) 
          vNumberField.InfinitePlace K.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. ) ≃L[ContinuousLinearEquiv.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [Semiring R] [Semiring S] (σ : R →+* S)
      {σ' : S →+* R} [RingHomInvPair σ σ'] [RingHomInvPair σ' σ] (M : Type u_3) [TopologicalSpace M] [AddCommMonoid M]
      (M₂ : Type u_4) [TopologicalSpace M₂] [AddCommMonoid M₂] [Module R M] [Module S M₂] : Type (max u_3 u_4)Continuous linear equivalences between modules. We only put the type classes that are necessary
    for the definition, although in applications `M` and `M₂` will be topological modules over the
    topological semiring `R`. vNumberField.InfinitePlace K.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. ]ContinuousLinearEquiv.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [Semiring R] [Semiring S] (σ : R →+* S)
      {σ' : S →+* R} [RingHomInvPair σ σ'] [RingHomInvPair σ' σ] (M : Type u_3) [TopologicalSpace M] [AddCommMonoid M]
      (M₂ : Type u_4) [TopologicalSpace M₂] [AddCommMonoid M₂] [Module R M] [Module S M₂] : Type (max u_3 u_4)Continuous linear equivalences between modules. We only put the type classes that are necessary
    for the definition, although in applications `M` and `M₂` will be topological modules over the
    topological semiring `R`. 
        (wvNumberField.InfinitePlace.Extension L v :
            NumberField.InfinitePlace.ExtensionNumberField.InfinitePlace.Extension.{u_1, u_2} {K : Type u_1} (L : Type u_2) [Field K] [Field L] [Algebra K L]
      (v : NumberField.InfinitePlace K) : Type u_2If `L / K` are fields and `v` is an infinite place of `K`, then we say an infinite place `w`
    of `L` _extends_ `v` if `w` can be constructed from a complex embedding `L →+* ℂ` whose
    restriction to `K` is an associated complex embedding `K →+* ℂ` of `v`.
    
              LType u_2 vNumberField.InfinitePlace K) 
          (↑wvNumberField.InfinitePlace.Extension L v).CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
    The `Kᵥ`-linear homeomorphism between `Kᵥ^d` and the product of all completions
    of `L` lying above `v`, where `d = [K : L]`. 
    complete
Proof

Compose the K_v-linear isomorphism K_v^{[L:K]} \cong \prod_{w \mid v} L_w with theorem NumberField.InfinitePlace.Completion.baseChangeEquiv to get the isomorphism in the statement. Since both sides have the K_v-module topology, then this is also a homeomorphism.

Theorem9.39
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

Theorem 9.38 There is a natural K_\infty-linear homeomorphism K_\infty^{[L:K]} \cong L_\infty.

Code for Theorem9.391 definition
  • def NumberField.InfiniteAdeleRing.piEquiv.{u_1, u_2} (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1]
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  KType u_1)
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2)]
      [Pi.FiberwiseSMulPi.FiberwiseSMul.{u_1, u_2, u_3, u_4} {α : Type u_1} {β : Type u_2} (f : α → β) (R : β → Type u_3) (M : α → Type u_4)
      [(b : β) → Semiring (R b)] [(a : α) → AddCommMonoid (M a)] [(b : β) → (σ : { a // f a = b }) → Module (R b) (M ↑σ)]
      [Module ((b : β) → R b) ((a : α) → M a)] : PropA class encoding the product scalar multiplication of `∀ b : β, R b` on `∀ a : α, M a`
    that is determined by the fibers of a supplied function `f : α → β` on indices.
    Specifically, if `f a = b`, then `(r • x) a = r b • x a` for any `r : ∀ b, R b` and
    `x : ∀ a, M a`.  (fun aNumberField.InfinitePlace L  aNumberField.InfinitePlace L.comapNumberField.InfinitePlace.comap.{u_1, u_2} {k : Type u_1} [Field k] {K : Type u_2} [Field K]
      (w : NumberField.InfinitePlace K) (f : k →+* K) : NumberField.InfinitePlace kThe restriction of an infinite place along an embedding.  (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_1 LType u_2))
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. ] :
      (FinFin (n : ℕ) : TypeNatural numbers less than some upper bound.
    
    In particular, a `Fin n` is a natural number `i` with the constraint that `i < n`. It is the
    canonical type with `n` elements.
     (Module.finrankModule.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.  KType u_1 LType u_2) 
          NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field. 
            KType u_1) ≃L[ContinuousLinearEquiv.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [Semiring R] [Semiring S] (σ : R →+* S)
      {σ' : S →+* R} [RingHomInvPair σ σ'] [RingHomInvPair σ' σ] (M : Type u_3) [TopologicalSpace M] [AddCommMonoid M]
      (M₂ : Type u_4) [TopologicalSpace M₂] [AddCommMonoid M₂] [Module R M] [Module S M₂] : Type (max u_3 u_4)Continuous linear equivalences between modules. We only put the type classes that are necessary
    for the definition, although in applications `M` and `M₂` will be topological modules over the
    topological semiring `R`. NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  KType u_1]ContinuousLinearEquiv.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [Semiring R] [Semiring S] (σ : R →+* S)
      {σ' : S →+* R} [RingHomInvPair σ σ'] [RingHomInvPair σ' σ] (M : Type u_3) [TopologicalSpace M] [AddCommMonoid M]
      (M₂ : Type u_4) [TopologicalSpace M₂] [AddCommMonoid M₂] [Module R M] [Module S M₂] : Type (max u_3 u_4)Continuous linear equivalences between modules. We only put the type classes that are necessary
    for the definition, although in applications `M` and `M₂` will be topological modules over the
    topological semiring `R`. 
        NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2
    def NumberField.InfiniteAdeleRing.piEquiv.{u_1,
        u_2}
      (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1]
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
    
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  KType u_1)
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2)]
      [Pi.FiberwiseSMulPi.FiberwiseSMul.{u_1, u_2, u_3, u_4} {α : Type u_1} {β : Type u_2} (f : α → β) (R : β → Type u_3) (M : α → Type u_4)
      [(b : β) → Semiring (R b)] [(a : α) → AddCommMonoid (M a)] [(b : β) → (σ : { a // f a = b }) → Module (R b) (M ↑σ)]
      [Module ((b : β) → R b) ((a : α) → M a)] : PropA class encoding the product scalar multiplication of `∀ b : β, R b` on `∀ a : α, M a`
    that is determined by the fibers of a supplied function `f : α → β` on indices.
    Specifically, if `f a = b`, then `(r • x) a = r b • x a` for any `r : ∀ b, R b` and
    `x : ∀ a, M a`. 
          (fun aNumberField.InfinitePlace L  aNumberField.InfinitePlace L.comapNumberField.InfinitePlace.comap.{u_1, u_2} {k : Type u_1} [Field k] {K : Type u_2} [Field K]
      (w : NumberField.InfinitePlace K) (f : k →+* K) : NumberField.InfinitePlace kThe restriction of an infinite place along an embedding.  (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_1 LType u_2))
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. ] :
      (FinFin (n : ℕ) : TypeNatural numbers less than some upper bound.
    
    In particular, a `Fin n` is a natural number `i` with the constraint that `i < n`. It is the
    canonical type with `n` elements.
     (Module.finrankModule.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.  KType u_1 LType u_2) 
          NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field. 
            KType u_1) ≃L[ContinuousLinearEquiv.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [Semiring R] [Semiring S] (σ : R →+* S)
      {σ' : S →+* R} [RingHomInvPair σ σ'] [RingHomInvPair σ' σ] (M : Type u_3) [TopologicalSpace M] [AddCommMonoid M]
      (M₂ : Type u_4) [TopologicalSpace M₂] [AddCommMonoid M₂] [Module R M] [Module S M₂] : Type (max u_3 u_4)Continuous linear equivalences between modules. We only put the type classes that are necessary
    for the definition, although in applications `M` and `M₂` will be topological modules over the
    topological semiring `R`. NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field. 
          KType u_1]ContinuousLinearEquiv.{u_1, u_2, u_3, u_4} {R : Type u_1} {S : Type u_2} [Semiring R] [Semiring S] (σ : R →+* S)
      {σ' : S →+* R} [RingHomInvPair σ σ'] [RingHomInvPair σ' σ] (M : Type u_3) [TopologicalSpace M] [AddCommMonoid M]
      (M₂ : Type u_4) [TopologicalSpace M₂] [AddCommMonoid M₂] [Module R M] [Module S M₂] : Type (max u_3 u_4)Continuous linear equivalences between modules. We only put the type classes that are necessary
    for the definition, although in applications `M` and `M₂` will be topological modules over the
    topological semiring `R`. 
        NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2
    The $K_{\infty}$-linear homeomorphism $K_{\infty}^{[L:K]} \cong L_{\infty}$. 
    complete
Proof

Using the isomorphisms NumberField.InfinitePlace.Completion.piEquiv, we clearly have a bijection K_\infty^{[L:K]} \cong \prod_v \prod_{w \mid v} L_w \cong \prod_w L_w. The K_v-linearity of each component isomorphism extends to K_\infty-linearity if the action of \prod_v K_v on \prod_w L_w is constant on the fibers of the restriction map on infinite places. In other words, if, for all x \in K_\infty and y \in L_\infty, we have (x \cdot y)_w = x_{v_w} \cdot y_w, which is true by definition.

Theorem9.40
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 0

Theorem 9.39 L_\infty has the K_\infty-module topology.

Code for Theorem9.401 theorem
  • theorem NumberField.InfiniteAdeleRing.instIsModuleTopology_fLT.{u_1, u_2}
      (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  KType u_1)
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2)]
      [Pi.FiberwiseSMulPi.FiberwiseSMul.{u_1, u_2, u_3, u_4} {α : Type u_1} {β : Type u_2} (f : α → β) (R : β → Type u_3) (M : α → Type u_4)
      [(b : β) → Semiring (R b)] [(a : α) → AddCommMonoid (M a)] [(b : β) → (σ : { a // f a = b }) → Module (R b) (M ↑σ)]
      [Module ((b : β) → R b) ((a : α) → M a)] : PropA class encoding the product scalar multiplication of `∀ b : β, R b` on `∀ a : α, M a`
    that is determined by the fibers of a supplied function `f : α → β` on indices.
    Specifically, if `f a = b`, then `(r • x) a = r b • x a` for any `r : ∀ b, R b` and
    `x : ∀ a, M a`.  (fun aNumberField.InfinitePlace L  aNumberField.InfinitePlace L.comapNumberField.InfinitePlace.comap.{u_1, u_2} {k : Type u_1} [Field k] {K : Type u_2} [Field K]
      (w : NumberField.InfinitePlace K) (f : k →+* K) : NumberField.InfinitePlace kThe restriction of an infinite place along an embedding.  (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_1 LType u_2))
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. ] :
      IsModuleTopologyIsModuleTopology.{u_1, u_2} (R : Type u_1) [TopologicalSpace R] (A : Type u_2) [Add A] [SMul R A]
      [τA : TopologicalSpace A] : PropA class asserting that the topology on a module over a topological ring `R` is
    the module topology. See `moduleTopology` for more discussion of the module topology.  (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  KType u_1)
        (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2)
    theorem NumberField.InfiniteAdeleRing.instIsModuleTopology_fLT.{u_1,
        u_2}
      (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1]
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
    
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  KType u_1)
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2)]
      [Pi.FiberwiseSMulPi.FiberwiseSMul.{u_1, u_2, u_3, u_4} {α : Type u_1} {β : Type u_2} (f : α → β) (R : β → Type u_3) (M : α → Type u_4)
      [(b : β) → Semiring (R b)] [(a : α) → AddCommMonoid (M a)] [(b : β) → (σ : { a // f a = b }) → Module (R b) (M ↑σ)]
      [Module ((b : β) → R b) ((a : α) → M a)] : PropA class encoding the product scalar multiplication of `∀ b : β, R b` on `∀ a : α, M a`
    that is determined by the fibers of a supplied function `f : α → β` on indices.
    Specifically, if `f a = b`, then `(r • x) a = r b • x a` for any `r : ∀ b, R b` and
    `x : ∀ a, M a`. 
          (fun aNumberField.InfinitePlace L  aNumberField.InfinitePlace L.comapNumberField.InfinitePlace.comap.{u_1, u_2} {k : Type u_1} [Field k] {K : Type u_2} [Field K]
      (w : NumberField.InfinitePlace K) (f : k →+* K) : NumberField.InfinitePlace kThe restriction of an infinite place along an embedding.  (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_1 LType u_2))
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. ] :
      IsModuleTopologyIsModuleTopology.{u_1, u_2} (R : Type u_1) [TopologicalSpace R] (A : Type u_2) [Add A] [SMul R A]
      [τA : TopologicalSpace A] : PropA class asserting that the topology on a module over a topological ring `R` is
    the module topology. See `moduleTopology` for more discussion of the module topology. 
        (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  KType u_1)
        (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2)
    complete
Proof

Since L_\infty is homeomorphic to a finite product of K_\infty as a K_\infty-vector space, it has the K_\infty-module topology.

Theorem9.41
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

Theorem 9.37 There is a natural L-algebra isomorphism L \otimes_K K_\infty \cong L_\infty.

Code for Theorem9.411 definition
  • def NumberField.InfiniteAdeleRing.baseChangeAlgEquiv.{u_1, u_2}
      (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2] :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_1 LType u_2 (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  KType u_1) ≃ₐ[AlgEquiv.{u, v, w} (R : Type u) (A : Type v) (B : Type w) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra R B] : Type (max v w)An equivalence of algebras (denoted as `A ≃ₐ[R] B`)
    is an equivalence of rings commuting with the actions of scalars. LType u_2]AlgEquiv.{u, v, w} (R : Type u) (A : Type v) (B : Type w) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra R B] : Type (max v w)An equivalence of algebras (denoted as `A ≃ₐ[R] B`)
    is an equivalence of rings commuting with the actions of scalars. 
        NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2
    def NumberField.InfiniteAdeleRing.baseChangeAlgEquiv.{u_1,
        u_2}
      (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1]
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2] :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_1 LType u_2
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field. 
            KType u_1) ≃ₐ[AlgEquiv.{u, v, w} (R : Type u) (A : Type v) (B : Type w) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra R B] : Type (max v w)An equivalence of algebras (denoted as `A ≃ₐ[R] B`)
    is an equivalence of rings commuting with the actions of scalars. LType u_2]AlgEquiv.{u, v, w} (R : Type u) (A : Type v) (B : Type w) [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A]
      [Algebra R B] : Type (max v w)An equivalence of algebras (denoted as `A ≃ₐ[R] B`)
    is an equivalence of rings commuting with the actions of scalars. 
        NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2
    The $L$-algebra isomorphism $L\otimes_K K_{\infty} \cong L_{\infty}$. 
    complete
Proof

This follows from the chain of isomorphisms L \otimes_K K_\infty \cong \prod_v (L \otimes_K K_v) \cong \prod_v \prod_{w \mid v} L_w \cong L_\infty$. The first isomorphism is the standard L-algebra isomorphism L \otimes_K \prod_v K_v \cong \prod_v (L \otimes_K K_v). The second isomorphism is given by the component L-algebra isomorphisms L \otimes_K K_v \cong \prod_{w \mid v} L_w from NumberField.InfinitePlace.Completion.baseChangeEquiv.

Theorem9.42
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

Theorem 9.41 If K -> L is a ring homomorphism between two number fields, then there is a natural isomorphism, both topological and algebraic, L \otimes_K K_\infty \cong L_\infty.

Code for Theorem9.422 declarations
  • def NumberField.InfiniteAdeleRing.baseChangeEquiv.{u_1, u_2} (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1]
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  KType u_1)
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2)]
      [Pi.FiberwiseSMulPi.FiberwiseSMul.{u_1, u_2, u_3, u_4} {α : Type u_1} {β : Type u_2} (f : α → β) (R : β → Type u_3) (M : α → Type u_4)
      [(b : β) → Semiring (R b)] [(a : α) → AddCommMonoid (M a)] [(b : β) → (σ : { a // f a = b }) → Module (R b) (M ↑σ)]
      [Module ((b : β) → R b) ((a : α) → M a)] : PropA class encoding the product scalar multiplication of `∀ b : β, R b` on `∀ a : α, M a`
    that is determined by the fibers of a supplied function `f : α → β` on indices.
    Specifically, if `f a = b`, then `(r • x) a = r b • x a` for any `r : ∀ b, R b` and
    `x : ∀ a, M a`.  (fun aNumberField.InfinitePlace L  aNumberField.InfinitePlace L.comapNumberField.InfinitePlace.comap.{u_1, u_2} {k : Type u_1} [Field k] {K : Type u_2} [Field K]
      (w : NumberField.InfinitePlace K) (f : k →+* K) : NumberField.InfinitePlace kThe restriction of an infinite place along an embedding.  (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_1 LType u_2))
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. ] :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_1 LType u_2 (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  KType u_1) ≃A[ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    LType u_2]ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    
        NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2
    def NumberField.InfiniteAdeleRing.baseChangeEquiv.{u_1,
        u_2}
      (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1]
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
    
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  KType u_1)
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2)]
      [Pi.FiberwiseSMulPi.FiberwiseSMul.{u_1, u_2, u_3, u_4} {α : Type u_1} {β : Type u_2} (f : α → β) (R : β → Type u_3) (M : α → Type u_4)
      [(b : β) → Semiring (R b)] [(a : α) → AddCommMonoid (M a)] [(b : β) → (σ : { a // f a = b }) → Module (R b) (M ↑σ)]
      [Module ((b : β) → R b) ((a : α) → M a)] : PropA class encoding the product scalar multiplication of `∀ b : β, R b` on `∀ a : α, M a`
    that is determined by the fibers of a supplied function `f : α → β` on indices.
    Specifically, if `f a = b`, then `(r • x) a = r b • x a` for any `r : ∀ b, R b` and
    `x : ∀ a, M a`. 
          (fun aNumberField.InfinitePlace L  aNumberField.InfinitePlace L.comapNumberField.InfinitePlace.comap.{u_1, u_2} {k : Type u_1} [Field k] {K : Type u_2} [Field K]
      (w : NumberField.InfinitePlace K) (f : k →+* K) : NumberField.InfinitePlace kThe restriction of an infinite place along an embedding.  (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_1 LType u_2))
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. ] :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_1 LType u_2
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field. 
            KType u_1) ≃A[ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    LType u_2]ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    
        NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2
    The canonical `L`-algebra homeomorphism from `L ⊗_K K_∞` to `L_∞` induced by the
    `K`-algebra base change map `K_∞ → L_∞`. 
    complete
  • theorem NumberField.InfiniteAdeleRing.instIsModuleTopology_fLT.{u_1, u_2}
      (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  KType u_1)
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2)]
      [Pi.FiberwiseSMulPi.FiberwiseSMul.{u_1, u_2, u_3, u_4} {α : Type u_1} {β : Type u_2} (f : α → β) (R : β → Type u_3) (M : α → Type u_4)
      [(b : β) → Semiring (R b)] [(a : α) → AddCommMonoid (M a)] [(b : β) → (σ : { a // f a = b }) → Module (R b) (M ↑σ)]
      [Module ((b : β) → R b) ((a : α) → M a)] : PropA class encoding the product scalar multiplication of `∀ b : β, R b` on `∀ a : α, M a`
    that is determined by the fibers of a supplied function `f : α → β` on indices.
    Specifically, if `f a = b`, then `(r • x) a = r b • x a` for any `r : ∀ b, R b` and
    `x : ∀ a, M a`.  (fun aNumberField.InfinitePlace L  aNumberField.InfinitePlace L.comapNumberField.InfinitePlace.comap.{u_1, u_2} {k : Type u_1} [Field k] {K : Type u_2} [Field K]
      (w : NumberField.InfinitePlace K) (f : k →+* K) : NumberField.InfinitePlace kThe restriction of an infinite place along an embedding.  (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_1 LType u_2))
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. ] :
      IsModuleTopologyIsModuleTopology.{u_1, u_2} (R : Type u_1) [TopologicalSpace R] (A : Type u_2) [Add A] [SMul R A]
      [τA : TopologicalSpace A] : PropA class asserting that the topology on a module over a topological ring `R` is
    the module topology. See `moduleTopology` for more discussion of the module topology.  (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  KType u_1)
        (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2)
    theorem NumberField.InfiniteAdeleRing.instIsModuleTopology_fLT.{u_1,
        u_2}
      (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1]
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
    
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  KType u_1)
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2)]
      [Pi.FiberwiseSMulPi.FiberwiseSMul.{u_1, u_2, u_3, u_4} {α : Type u_1} {β : Type u_2} (f : α → β) (R : β → Type u_3) (M : α → Type u_4)
      [(b : β) → Semiring (R b)] [(a : α) → AddCommMonoid (M a)] [(b : β) → (σ : { a // f a = b }) → Module (R b) (M ↑σ)]
      [Module ((b : β) → R b) ((a : α) → M a)] : PropA class encoding the product scalar multiplication of `∀ b : β, R b` on `∀ a : α, M a`
    that is determined by the fibers of a supplied function `f : α → β` on indices.
    Specifically, if `f a = b`, then `(r • x) a = r b • x a` for any `r : ∀ b, R b` and
    `x : ∀ a, M a`. 
          (fun aNumberField.InfinitePlace L  aNumberField.InfinitePlace L.comapNumberField.InfinitePlace.comap.{u_1, u_2} {k : Type u_1} [Field k] {K : Type u_2} [Field K]
      (w : NumberField.InfinitePlace K) (f : k →+* K) : NumberField.InfinitePlace kThe restriction of an infinite place along an embedding.  (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_1 LType u_2))
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. ] :
      IsModuleTopologyIsModuleTopology.{u_1, u_2} (R : Type u_1) [TopologicalSpace R] (A : Type u_2) [Add A] [SMul R A]
      [τA : TopologicalSpace A] : PropA class asserting that the topology on a module over a topological ring `R` is
    the module topology. See `moduleTopology` for more discussion of the module topology. 
        (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  KType u_1)
        (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2)
    complete
Proof

Since both sides of the L-algebra isomorphism in NumberField.InfiniteAdeleRing.baseChangeAlgEquiv have the K_\infty-module topology, and since the isomorphism can equivalently be viewed as a K_\infty-linear isomorphism, it is also a homeomorphism. The L_\infty side has the K_\infty-module topology.

9.4.2. Base Change For Adeles🔗

From the previous results we deduce immediately that if L/K is a finite extension of number fields then there's a natural (topological and algebraic) isomorphism L\otimes_K\A_K\to \A_L.

Theorem9.43
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀N
Used by 2
Hover a use site to preview it.
Preview
Theorem 9.44
Blueprint label
  • «NumberField.AdeleRing.baseChange_moduleTopology»
Uses target in
  • statement

Theorem 9.42 Theorem 9.18 If K\to L is a ring homomorphism between two number fields then there is a natural isomorphism (both topological and algebraic) L\otimes_K\A_K\cong\A_L.

Code for Theorem9.431 definition
  • def NumberField.AdeleRing.baseChangeEquiv.{u_1, u_2} (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. )
      (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
    
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1)
            KType u_1)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2)
            LType u_2)]
      [IsDedekindDomain.FiniteAdeleRing.ComapFiberwiseSMulIsDedekindDomain.FiniteAdeleRing.ComapFiberwiseSMul.{u_1, u_2, u_3, u_4} (A : Type u_1) (K : Type u_2) (L : Type u_3)
      (B : Type u_4) [CommRing A] [CommRing B] [Algebra A B] [Field K] [Field L] [Algebra A K] [IsFractionRing A K]
      [Algebra B L] [IsDedekindDomain A] [Algebra K L] [Algebra A L] [IsScalarTower A B L] [IsScalarTower A K L]
      [Module.Finite A B] [IsDedekindDomain B] [IsFractionRing B L]
      [Algebra (IsDedekindDomain.FiniteAdeleRing A K) (IsDedekindDomain.FiniteAdeleRing B L)] : PropUtility class which specialises `RestrictedProduct.FiberwiseSMul` to the case of
    finite adele rings. 
          (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1) KType u_1 LType u_2 (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2)]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2)
            LType u_2)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  KType u_1
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1)
            KType u_1)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2)
            LType u_2)]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2)
            LType u_2)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1)
          (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2)
            LType u_2)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1)
            KType u_1)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2)
            LType u_2)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  KType u_1 LType u_2
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2)
            LType u_2)]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  KType u_1)
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2)]
      [Pi.FiberwiseSMulPi.FiberwiseSMul.{u_1, u_2, u_3, u_4} {α : Type u_1} {β : Type u_2} (f : α → β) (R : β → Type u_3) (M : α → Type u_4)
      [(b : β) → Semiring (R b)] [(a : α) → AddCommMonoid (M a)] [(b : β) → (σ : { a // f a = b }) → Module (R b) (M ↑σ)]
      [Module ((b : β) → R b) ((a : α) → M a)] : PropA class encoding the product scalar multiplication of `∀ b : β, R b` on `∀ a : α, M a`
    that is determined by the fibers of a supplied function `f : α → β` on indices.
    Specifically, if `f a = b`, then `(r • x) a = r b • x a` for any `r : ∀ b, R b` and
    `x : ∀ a, M a`.  (fun aNumberField.InfinitePlace L  aNumberField.InfinitePlace L.comapNumberField.InfinitePlace.comap.{u_1, u_2} {k : Type u_1} [Field k] {K : Type u_2} [Field K]
      (w : NumberField.InfinitePlace K) (f : k →+* K) : NumberField.InfinitePlace kThe restriction of an infinite place along an embedding.  (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_1 LType u_2))
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. ]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1) KType u_1)
          (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2) LType u_2)]
      [Prod.IsProdSMulProd.IsProdSMul.{u_1, u_2, u_3, u_4} (R : Type u_1) (S : Type u_2) (M : Type u_3) (N : Type u_4) [SMul R M] [SMul S N]
      [SMul (R × S) (M × N)] : PropA class encoding the product scalar multiplication of `R × S` on `M × N` of the format
    `x • y = (x.1 • y.1, x.2 • y.2)`. Use this as an assumption instead of constructing
    the `R × S` action on `M × N`.  (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  KType u_1)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1)
            KType u_1)
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2)
            LType u_2)]
      [IsModuleTopologyIsModuleTopology.{u_1, u_2} (R : Type u_1) [TopologicalSpace R] (A : Type u_2) [Add A] [SMul R A]
      [τA : TopologicalSpace A] : PropA class asserting that the topology on a module over a topological ring `R` is
    the module topology. See `moduleTopology` for more discussion of the module topology. 
          (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1) KType u_1)
          (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2) LType u_2)] :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_1 LType u_2
          (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1) KType u_1) ≃A[ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    LType u_2]ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    
        NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2) LType u_2
    def NumberField.AdeleRing.baseChangeEquiv.{u_1,
        u_2}
      (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) (LType u_2 : Type u_2A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_2]
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_2] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1 LType u_2]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
    
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
    
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1) KType u_1)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
    
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2) LType u_2)]
      [IsDedekindDomain.FiniteAdeleRing.ComapFiberwiseSMulIsDedekindDomain.FiniteAdeleRing.ComapFiberwiseSMul.{u_1, u_2, u_3, u_4} (A : Type u_1) (K : Type u_2) (L : Type u_3)
      (B : Type u_4) [CommRing A] [CommRing B] [Algebra A B] [Field K] [Field L] [Algebra A K] [IsFractionRing A K]
      [Algebra B L] [IsDedekindDomain A] [Algebra K L] [Algebra A L] [IsScalarTower A B L] [IsScalarTower A K L]
      [Module.Finite A B] [IsDedekindDomain B] [IsFractionRing B L]
      [Algebra (IsDedekindDomain.FiniteAdeleRing A K) (IsDedekindDomain.FiniteAdeleRing B L)] : PropUtility class which specialises `RestrictedProduct.FiberwiseSMul` to the case of
    finite adele rings. 
          (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1) KType u_1 LType u_2
          (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2)]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_1
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
    
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2) LType u_2)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  KType u_1
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
    
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1) KType u_1)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
    
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2) LType u_2)]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
    
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2) LType u_2)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`. 
          (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1)
          (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
    
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2) LType u_2)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`. 
          (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
    
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1) KType u_1)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
    
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2) LType u_2)]
      [IsScalarTowerIsScalarTower.{u_9, u_10, u_11} (M : Type u_9) (N : Type u_10) (α : Type u_11) [SMul M N] [SMul N α] [SMul M α] : PropAn instance of `IsScalarTower M N α` states that the multiplicative
    action of `M` on `α` is determined by the multiplicative actions of `M` on `N`
    and `N` on `α`.  KType u_1 LType u_2
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
    
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2) LType u_2)]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
    
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  KType u_1)
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2)]
      [Pi.FiberwiseSMulPi.FiberwiseSMul.{u_1, u_2, u_3, u_4} {α : Type u_1} {β : Type u_2} (f : α → β) (R : β → Type u_3) (M : α → Type u_4)
      [(b : β) → Semiring (R b)] [(a : α) → AddCommMonoid (M a)] [(b : β) → (σ : { a // f a = b }) → Module (R b) (M ↑σ)]
      [Module ((b : β) → R b) ((a : α) → M a)] : PropA class encoding the product scalar multiplication of `∀ b : β, R b` on `∀ a : α, M a`
    that is determined by the fibers of a supplied function `f : α → β` on indices.
    Specifically, if `f a = b`, then `(r • x) a = r b • x a` for any `r : ∀ b, R b` and
    `x : ∀ a, M a`. 
          (fun aNumberField.InfinitePlace L  aNumberField.InfinitePlace L.comapNumberField.InfinitePlace.comap.{u_1, u_2} {k : Type u_1} [Field k] {K : Type u_2} [Field K]
      (w : NumberField.InfinitePlace K) (f : k →+* K) : NumberField.InfinitePlace kThe restriction of an infinite place along an embedding.  (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_1 LType u_2))
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. 
          NumberField.InfinitePlace.CompletionNumberField.InfinitePlace.Completion.{u_1} {K : Type u_1} [Field K] (v : NumberField.InfinitePlace K) : Type u_1The completion of a number field at an infinite place. ]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
    
          (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
    
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1) KType u_1)
          (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
    
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2) LType u_2)]
      [Prod.IsProdSMulProd.IsProdSMul.{u_1, u_2, u_3, u_4} (R : Type u_1) (S : Type u_2) (M : Type u_3) (N : Type u_4) [SMul R M] [SMul S N]
      [SMul (R × S) (M × N)] : PropA class encoding the product scalar multiplication of `R × S` on `M × N` of the format
    `x • y = (x.1 • y.1, x.2 • y.2)`. Use this as an assumption instead of constructing
    the `R × S` action on `M × N`. 
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  KType u_1)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
    
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1) KType u_1)
          (NumberField.InfiniteAdeleRingNumberField.InfiniteAdeleRing.{u_1} (K : Type u_1) [Field K] : Type u_1The infinite adele ring of a number field.  LType u_2)
          (IsDedekindDomain.FiniteAdeleRingIsDedekindDomain.FiniteAdeleRing.{u_1, u_2} (R : Type u_1) [CommRing R] [IsDedekindDomain R] (K : Type u_2) [Field K]
      [Algebra R K] [IsFractionRing R K] : Type (max u_2 u_1)If `K` is the field of fractions of the Dedekind domain `R` then `FiniteAdeleRing R K` is
    the ring of finite adeles of `K`, defined as the restricted product of the completions
    `K_v` with respect to the subrings `R_v`. Here `v` runs through the nonzero primes of `R`
    and the restricted product is the subring of `∏_v K_v` consisting of elements which
    are in `R_v` for all but finitely many `v`.
    
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2) LType u_2)]
      [IsModuleTopologyIsModuleTopology.{u_1, u_2} (R : Type u_1) [TopologicalSpace R] (A : Type u_2) [Add A] [SMul R A]
      [τA : TopologicalSpace A] : PropA class asserting that the topology on a module over a topological ring `R` is
    the module topology. See `moduleTopology` for more discussion of the module topology. 
          (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
    
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1) KType u_1)
          (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
    
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2)
            LType u_2)] :
      TensorProductTensorProduct.{u_1, u_7, u_8} (R : Type u_1) [CommSemiring R] (M : Type u_7) (N : Type u_8) [AddCommMonoid M]
      [AddCommMonoid N] [Module R M] [Module R N] : Type (max u_7 u_8)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`.  KType u_1 LType u_2
          (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
    
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1)
            KType u_1) ≃A[ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    LType u_2]ContinuousAlgEquiv.{u_1, u_2, u_3} (R : Type u_1) (A : Type u_2) (B : Type u_3) [CommSemiring R] [Semiring A]
      [TopologicalSpace A] [Semiring B] [TopologicalSpace B] [Algebra R A] [Algebra R B] : Type (max u_2 u_3)`ContinuousAlgEquiv R A B`, with notation `A ≃A[R] B`, is the type of bijections
    between the topological `R`-algebras `A` and `B` which are both homeomorphisms
    and `R`-algebra isomorphisms.
    
        NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
    
          (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_2) LType u_2
    The `L`-algebra homeomorphism `L ⊗[K] 𝔸 K = 𝔸 L`. 
    complete
Proof

Follows from the previous results.

Theorem9.44
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 0

Theorem 9.43 If K -> L is a ring homomorphism between two number fields, then the topology on \A_L is the \A_K-module topology, where the module structure comes from the natural map \A_K -> \A_L.

Code for Theorem9.441 theorem
  • theorem NumberField.AdeleRing.instIsModuleTopology.{u_3, u_4} {KType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. }
      {LType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_3] [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_4] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_3] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_4]
      [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_3 LType u_4] :
      IsModuleTopologyIsModuleTopology.{u_1, u_2} (R : Type u_1) [TopologicalSpace R] (A : Type u_2) [Add A] [SMul R A]
      [τA : TopologicalSpace A] : PropA class asserting that the topology on a module over a topological ring `R` is
    the module topology. See `moduleTopology` for more discussion of the module topology. 
        (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_3) KType u_3)
        (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_4) LType u_4)
    theorem NumberField.AdeleRing.instIsModuleTopology.{u_3,
        u_4}
      {KType u_3 : Type u_3A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } {LType u_4 : Type u_4A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. } [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_3]
      [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  LType u_4] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_3]
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  LType u_4] [AlgebraAlgebra.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] : Type (max u v)An associative unital `R`-algebra is a semiring `A` equipped with a map into its center `R → A`.
    
    See the implementation notes in this file for discussion of the details of this definition.
     KType u_3 LType u_4] :
      IsModuleTopologyIsModuleTopology.{u_1, u_2} (R : Type u_1) [TopologicalSpace R] (A : Type u_2) [Add A] [SMul R A]
      [τA : TopologicalSpace A] : PropA class asserting that the topology on a module over a topological ring `R` is
    the module topology. See `moduleTopology` for more discussion of the module topology. 
        (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
    
          (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_3) KType u_3)
        (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
    
          (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     LType u_4) LType u_4)
    complete
Proof

Indeed theorem NumberField.AdeleRing.baseChangeEquiv identifies \A_L with L \otimes_K \A_K, and the right hand side has the \A_K-module topology.

9.5. Discreteness and compactness🔗

We need that if K is a number field then K\subseteq\mathbb{A}_K is discrete, and the quotient (with the quotient topology) is compact. Here is a proposed proof.

Theorem9.45
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

There is an open subset of the rational adeles whose intersection with is just {0}.

Code for Theorem9.451 theorem
  • theorem Rat.AdeleRing.zero_discrete :
       USet (NumberField.AdeleRing (NumberField.RingOfIntegers ℚ) ℚ),
        IsOpenIsOpen.{u} {X : Type u} [TopologicalSpace X] : Set X → Prop`IsOpen s` means that `s` is open in the ambient topological space on `X`  USet (NumberField.AdeleRing (NumberField.RingOfIntegers ℚ) ℚ) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
          (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  Rat : TypeRational numbers, implemented as a pair of integers `num / den` such that the
    denominator is positive and the numerator and denominator are coprime.
    
                  (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     Rat : TypeRational numbers, implemented as a pair of integers `num / den` such that the
    denominator is positive and the numerator and denominator are coprime.
    )
                    Rat : TypeRational numbers, implemented as a pair of integers `num / den` such that the
    denominator is positive and the numerator and denominator are coprime.
    )) ⁻¹'Set.preimage.{u, v} {α : Type u} {β : Type v} (f : α → β) (s : Set β) : Set αThe preimage of `s : Set β` by `f : α → β`, written `f ⁻¹' s`,
    is the set of `x : α` such that `f x ∈ s`. 
              USet (NumberField.AdeleRing (NumberField.RingOfIntegers ℚ) ℚ) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            {Singleton.singleton.{u, v} {α : outParam (Type u)} {β : Type v} [self : Singleton α β] : α → β`singleton x` is a collection with the single element `x` (notation: `{x}`). 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `{x}` in identifiers is `singleton`.0}Singleton.singleton.{u, v} {α : outParam (Type u)} {β : Type v} [self : Singleton α β] : α → β`singleton x` is a collection with the single element `x` (notation: `{x}`). 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `{x}` in identifiers is `singleton`.
    theorem Rat.AdeleRing.zero_discrete :
       USet (NumberField.AdeleRing (NumberField.RingOfIntegers ℚ) ℚ),
        IsOpenIsOpen.{u} {X : Type u} [TopologicalSpace X] : Set X → Prop`IsOpen s` means that `s` is open in the ambient topological space on `X`  USet (NumberField.AdeleRing (NumberField.RingOfIntegers ℚ) ℚ) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
          (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  Rat : TypeRational numbers, implemented as a pair of integers `num / den` such that the
    denominator is positive and the numerator and denominator are coprime.
    
                  (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
    
                    (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
    
                      Rat : TypeRational numbers, implemented as a pair of integers `num / den` such that the
    denominator is positive and the numerator and denominator are coprime.
    )
                    Rat : TypeRational numbers, implemented as a pair of integers `num / den` such that the
    denominator is positive and the numerator and denominator are coprime.
    )) ⁻¹'Set.preimage.{u, v} {α : Type u} {β : Type v} (f : α → β) (s : Set β) : Set αThe preimage of `s : Set β` by `f : α → β`, written `f ⁻¹' s`,
    is the set of `x : α` such that `f x ∈ s`. 
              USet (NumberField.AdeleRing (NumberField.RingOfIntegers ℚ) ℚ) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            {Singleton.singleton.{u, v} {α : outParam (Type u)} {β : Type v} [self : Singleton α β] : α → β`singleton x` is a collection with the single element `x` (notation: `{x}`). 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `{x}` in identifiers is `singleton`.0}Singleton.singleton.{u, v} {α : outParam (Type u)} {β : Type v} [self : Singleton α β] : α → β`singleton x` is a collection with the single element `x` (notation: `{x}`). 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `{x}` in identifiers is `singleton`.
    complete
Proof

Use \prod_p{\Z_p}\times(-1,1). Any rational q in this set is a p-adic integer for all primes p and hence, writing it in lowest terms as q=n/d, satisfies p\nmid d, meaning that d=\pm1 and thus q\in\Z. The fact that q\in(-1,1) implies q=0.

Theorem9.46
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 1

Theorem 9.45 Theorem 9.43 There's an open subset of \A_{K} whose intersection with K is \{0\}.

Code for Theorem9.461 theorem
  • theorem NumberField.AdeleRing.zero_discrete.{u_1} (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] :
       USet (NumberField.AdeleRing (NumberField.RingOfIntegers K) K),
        IsOpenIsOpen.{u} {X : Type u} [TopologicalSpace X] : Set X → Prop`IsOpen s` means that `s` is open in the ambient topological space on `X`  USet (NumberField.AdeleRing (NumberField.RingOfIntegers K) K) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
          (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_1
                  (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1)
                    KType u_1)) ⁻¹'Set.preimage.{u, v} {α : Type u} {β : Type v} (f : α → β) (s : Set β) : Set αThe preimage of `s : Set β` by `f : α → β`, written `f ⁻¹' s`,
    is the set of `x : α` such that `f x ∈ s`. 
              USet (NumberField.AdeleRing (NumberField.RingOfIntegers K) K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            {Singleton.singleton.{u, v} {α : outParam (Type u)} {β : Type v} [self : Singleton α β] : α → β`singleton x` is a collection with the single element `x` (notation: `{x}`). 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `{x}` in identifiers is `singleton`.0}Singleton.singleton.{u, v} {α : outParam (Type u)} {β : Type v} [self : Singleton α β] : α → β`singleton x` is a collection with the single element `x` (notation: `{x}`). 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `{x}` in identifiers is `singleton`.
    theorem NumberField.AdeleRing.zero_discrete.{u_1}
      (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] :
       USet (NumberField.AdeleRing (NumberField.RingOfIntegers K) K),
        IsOpenIsOpen.{u} {X : Type u} [TopologicalSpace X] : Set X → Prop`IsOpen s` means that `s` is open in the ambient topological space on `X`  USet (NumberField.AdeleRing (NumberField.RingOfIntegers K) K) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
          (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_1
                  (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
    
                    (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
    
                      KType u_1)
                    KType u_1)) ⁻¹'Set.preimage.{u, v} {α : Type u} {β : Type v} (f : α → β) (s : Set β) : Set αThe preimage of `s : Set β` by `f : α → β`, written `f ⁻¹' s`,
    is the set of `x : α` such that `f x ∈ s`. 
              USet (NumberField.AdeleRing (NumberField.RingOfIntegers K) K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            {Singleton.singleton.{u, v} {α : outParam (Type u)} {β : Type v} [self : Singleton α β] : α → β`singleton x` is a collection with the single element `x` (notation: `{x}`). 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `{x}` in identifiers is `singleton`.0}Singleton.singleton.{u, v} {α : outParam (Type u)} {β : Type v} [self : Singleton α β] : α → β`singleton x` is a collection with the single element `x` (notation: `{x}`). 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `{x}` in identifiers is `singleton`.
    complete
Proof

By a previous result, we have \A_K=K\otimes_{\Q}\A_{\Q}. Choose a basis of K/\Q; then K can be identified with \Q^n\subseteq(\A_{\Q})^n and the result follows from the previous theorem.

Theorem9.47
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 0

Theorem 9.46 The additive subgroup K of \mathbf{A}_K is discrete.

Code for Theorem9.471 theorem
  • theorem NumberField.AdeleRing.discrete.{u_1} (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1]
      [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1] (xK : KType u_1) :
       USet (NumberField.AdeleRing (NumberField.RingOfIntegers K) K),
        IsOpenIsOpen.{u} {X : Type u} [TopologicalSpace X] : Set X → Prop`IsOpen s` means that `s` is open in the ambient topological space on `X`  USet (NumberField.AdeleRing (NumberField.RingOfIntegers K) K) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
          (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_1
                  (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     KType u_1)
                    KType u_1)) ⁻¹'Set.preimage.{u, v} {α : Type u} {β : Type v} (f : α → β) (s : Set β) : Set αThe preimage of `s : Set β` by `f : α → β`, written `f ⁻¹' s`,
    is the set of `x : α` such that `f x ∈ s`. 
              USet (NumberField.AdeleRing (NumberField.RingOfIntegers K) K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            {Singleton.singleton.{u, v} {α : outParam (Type u)} {β : Type v} [self : Singleton α β] : α → β`singleton x` is a collection with the single element `x` (notation: `{x}`). 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `{x}` in identifiers is `singleton`.xK}Singleton.singleton.{u, v} {α : outParam (Type u)} {β : Type v} [self : Singleton α β] : α → β`singleton x` is a collection with the single element `x` (notation: `{x}`). 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `{x}` in identifiers is `singleton`.
    theorem NumberField.AdeleRing.discrete.{u_1}
      (KType u_1 : Type u_1A type universe. `Type ≡ Type 0`, `Type u ≡ Sort (u + 1)`. ) [FieldField.{u} (K : Type u) : Type uA `Field` is a `CommRing` with multiplicative inverses for nonzero elements.
    
    An instance of `Field K` includes maps `ratCast : ℚ → K` and `qsmul : ℚ → K → K`.
    Those two fields are needed to implement the `DivisionRing K → Algebra ℚ K` instance since we need
    to control the specific definitions for some special cases of `K` (in particular `K = ℚ` itself).
    See also note [forgetful inheritance].
    
    If the field has positive characteristic `p`, our division by zero convention forces
    `ratCast (1 / p) = 1 / 0 = 0`.  KType u_1] [NumberFieldNumberField.{u_1} (K : Type u_1) [Field K] : PropA number field is a field which has characteristic zero and is finite
    dimensional over ℚ.  KType u_1]
      (xK : KType u_1) :
       USet (NumberField.AdeleRing (NumberField.RingOfIntegers K) K),
        IsOpenIsOpen.{u} {X : Type u} [TopologicalSpace X] : Set X → Prop`IsOpen s` means that `s` is open in the ambient topological space on `X`  USet (NumberField.AdeleRing (NumberField.RingOfIntegers K) K) And (a b : Prop) : Prop`And a b`, or `a ∧ b`, is the conjunction of propositions. It can be
    constructed and destructed like a pair: if `ha : a` and `hb : b` then
    `⟨ha, hb⟩ : a ∧ b`, and if `h : a ∧ b` then `h.left : a` and `h.right : b`.
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `∧` in identifiers is `and`.
    
     * The recommended spelling of `/\` in identifiers is `and` (prefer `∧` over `/\`).
          (algebraMapalgebraMap.{u, v} (R : Type u) (A : Type v) [CommSemiring R] [Semiring A] [Algebra R A] : R →+* AEmbedding `R →+* A` given by `Algebra` structure.  KType u_1
                  (NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
    
                    (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
    
                      KType u_1)
                    KType u_1)) ⁻¹'Set.preimage.{u, v} {α : Type u} {β : Type v} (f : α → β) (s : Set β) : Set αThe preimage of `s : Set β` by `f : α → β`, written `f ⁻¹' s`,
    is the set of `x : α` such that `f x ∈ s`. 
              USet (NumberField.AdeleRing (NumberField.RingOfIntegers K) K) =Eq.{u_1} {α : Sort u_1} : α → α → PropThe equality relation. It has one introduction rule, `Eq.refl`.
    We use `a = b` as notation for `Eq a b`.
    A fundamental property of equality is that it is an equivalence relation.
    ```
    variable (α : Type) (a b c d : α)
    variable (hab : a = b) (hcb : c = b) (hcd : c = d)
    
    example : a = d :=
      Eq.trans (Eq.trans hab (Eq.symm hcb)) hcd
    ```
    Equality is much more than an equivalence relation, however. It has the important property that every assertion
    respects the equivalence, in the sense that we can substitute equal expressions without changing the truth value.
    That is, given `h1 : a = b` and `h2 : p a`, we can construct a proof for `p b` using substitution: `Eq.subst h1 h2`.
    Example:
    ```
    example (α : Type) (a b : α) (p : α → Prop)
            (h1 : a = b) (h2 : p a) : p b :=
      Eq.subst h1 h2
    
    example (α : Type) (a b : α) (p : α → Prop)
        (h1 : a = b) (h2 : p a) : p b :=
      h1 ▸ h2
    ```
    The triangle in the second presentation is a macro built on top of `Eq.subst` and `Eq.symm`, and you can enter it by typing `\t`.
    For more information: [Equality](https://lean-lang.org/theorem_proving_in_lean4/quantifiers_and_equality.html#equality)
    
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `=` in identifiers is `eq`.
            {Singleton.singleton.{u, v} {α : outParam (Type u)} {β : Type v} [self : Singleton α β] : α → β`singleton x` is a collection with the single element `x` (notation: `{x}`). 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `{x}` in identifiers is `singleton`.xK}Singleton.singleton.{u, v} {α : outParam (Type u)} {β : Type v} [self : Singleton α β] : α → β`singleton x` is a collection with the single element `x` (notation: `{x}`). 
    
    Conventions for notations in identifiers:
    
     * The recommended spelling of `{x}` in identifiers is `singleton`.
    complete
Proof

If x\in K and U is the open subset in the previous lemma, then it's easily checked that K\cap U=\{0\} implies K\cap (U+x)=\{x\}, and U+x is open.

Theorem9.48
Group: The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project. (47)
Hover another entry in this group to preview it.
Preview
Theorem 9.1
Blueprint label
  • «NumberField.instCompactSpaceAdicCompletionIntegers»
Group
  • The adele miniproject develops the finite adeles, infinite adeles, and full adeles of a number field together with the local compactness and base-change results needed later in the project.
L∃∀Nused by 0

The quotient \mathbf{A}_{\mathbf{Q}} / \mathbf{Q} is compact.

Code for Theorem9.481 theorem
  • theorem Rat.AdeleRing.cocompact :
      CompactSpaceCompactSpace.{u_1} (X : Type u_1) [TopologicalSpace X] : PropType class for compact spaces. Separation is sometimes included in the definition, especially
    in the French literature, but we do not include it here. 
        (HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
     (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     Rat : TypeRational numbers, implemented as a pair of integers `num / den` such that the
    denominator is positive and the numerator and denominator are coprime.
    ) Rat : TypeRational numbers, implemented as a pair of integers `num / den` such that the
    denominator is positive and the numerator and denominator are coprime.
     HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    
          NumberField.AdeleRing.principalSubgroupNumberField.AdeleRing.principalSubgroup.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R]
      [Field K] [Algebra R K] [IsFractionRing R K] : AddSubgroup (NumberField.AdeleRing R K)The subgroup of principal adeles `(x)ᵥ` where `x ∈ K`. 
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     Rat : TypeRational numbers, implemented as a pair of integers `num / den` such that the
    denominator is positive and the numerator and denominator are coprime.
    ) Rat : TypeRational numbers, implemented as a pair of integers `num / den` such that the
    denominator is positive and the numerator and denominator are coprime.
    )HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    
    theorem Rat.AdeleRing.cocompact :
      CompactSpaceCompactSpace.{u_1} (X : Type u_1) [TopologicalSpace X] : PropType class for compact spaces. Separation is sometimes included in the definition, especially
    in the French literature, but we do not include it here. 
        (HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    NumberField.AdeleRingNumberField.AdeleRing.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R] [Field K] [Algebra R K]
      [IsFractionRing R K] : Type (max u_2 u_2 u_1)`AdeleRing (𝓞 K) K` is the adele ring of a number field `K`.
    
    More generally `AdeleRing R K` can be used if `K` is the field of fractions
    of the Dedekind domain `R`. This enables use of rings like `AdeleRing ℤ ℚ`, which
    in practice are easier to work with than `AdeleRing (𝓞 ℚ) ℚ`.
    
    Note that this definition does not give the correct answer in the function field case.
    
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     Rat : TypeRational numbers, implemented as a pair of integers `num / den` such that the
    denominator is positive and the numerator and denominator are coprime.
    ) Rat : TypeRational numbers, implemented as a pair of integers `num / den` such that the
    denominator is positive and the numerator and denominator are coprime.
     HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    
          NumberField.AdeleRing.principalSubgroupNumberField.AdeleRing.principalSubgroup.{u_1, u_2} (R : Type u_1) (K : Type u_2) [CommRing R] [IsDedekindDomain R]
      [Field K] [Algebra R K] [IsFractionRing R K] : AddSubgroup (NumberField.AdeleRing R K)The subgroup of principal adeles `(x)ᵥ` where `x ∈ K`. 
            (NumberField.RingOfIntegersNumberField.RingOfIntegers.{u_1} (K : Type u_1) [Field K] : Type u_1The 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.
     Rat : TypeRational numbers, implemented as a pair of integers `num / den` such that the
    denominator is positive and the numerator and denominator are coprime.
    ) Rat : TypeRational numbers, implemented as a pair of integers `num / den` such that the
    denominator is positive and the numerator and denominator are coprime.
    )HasQuotient.Quotient.{u, v} (A : outParam (Type u)) {B : Type v} [self : HasQuotient A B] : B → Type (max u v)`HasQuotient.Quotient A b` (denoted as `A ⧸ b`) is the quotient of the type `A` by `b`.
    
    This differs from `HasQuotient.quotient'` in that the `A` argument is explicit,
    which is necessary to make Lean show the notation in the goal state.
    
    complete
Proof

The space \prod_p\Z_p\times[0,1] is a product of compact spaces and is hence compact. I claim that it surjects onto \A_{\Q}/\Q. Indeed, if a\in\A_{\Q} then for the finitely many prime numbers p\in S such that a_p\not\in\Z_p we have a_p\in\frac{r_p}{p^{n_p}}+\Z_p with r_p/p^{n_p}\in\Q. If we set q=\sum_{p\in S}\frac{r_p}{p^{n_p}}\in\Q, then a-q\in \prod_p\Z_p\times\R. Subtracting \lfloor a_{\infty}-q\rfloor moves the archimedean coordinate into \prod_p\Z_p\times[0,1), so every class in \A_{\Q}/\Q has a representative in the compact set.