Module

ProfiniteIntegerPrimeProduct.lean

Nyll.GaloisCohomology.ProfiniteIntegers.ProfiniteIntegerPrimeProduct
20 declarations indexed from sourceView source ↗

Prime decomposition of the profinite integers

This file constructs the canonical map ℤ̂ → ∏ p : Nat.Primes, ℤ_p from the compatible finite reductions.

Declarations

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
instance (p : Nat.Primes) : Fact p.1.Prime
ClassFormation.ProfiniteIntegerPrimeProduct

The product of the additive rings of p-adic integers over all rational primes.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
local instance (p : Nat.Primes) : Fact p.1.Prime :=
  ⟨p.2⟩
abbrev ProfiniteIntegerPrimeProduct
ClassFormation.zHatReductionRingHom

The ring form of the canonical reduction ℤ̂ → ℤ/nℤ.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
local instance (p : Nat.Primes) : Fact p.1.Prime :=
  ⟨p.2⟩
def zHatReductionRingHom (n : ℕ) (hn : 0 < n) :
    ZHat →+* ZMod n where
  toFun := zHatReduction n hn
  map_zero' := rfl
  map_one' := rfl
  map_add' _ _ := rfl
  map_mul' _ _ := rfl
ClassFormation.zHatReductionRingHom_apply
Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
local instance (p : Nat.Primes) : Fact p.1.Prime :=
  ⟨p.2⟩
theorem zHatReductionRingHom_apply
    (n : ℕ) (hn : 0 < n) (z : ZHat) :
    zHatReductionRingHom n hn z = zHatReduction n hn z
ClassFormation.zHatPadicReduction

The compatible p-power reductions of a profinite integer.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
local instance (p : Nat.Primes) : Fact p.1.Prime :=
  ⟨p.2⟩
def zHatPadicReduction (p : Nat.Primes) (n : ℕ) :
    ZHat →+* ZMod (p.1 ^ n)
ClassFormation.zHatPadicReduction_compatible
Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
local instance (p : Nat.Primes) : Fact p.1.Prime :=
  ⟨p.2⟩
theorem zHatPadicReduction_compatible
    (p : Nat.Primes) (m n : ℕ) (hmn : m ≤ n) :
    (ZMod.castHom (pow_dvd_pow p.1 hmn) (ZMod (p.1 ^ m))).comp
        (zHatPadicReduction p n) =
      zHatPadicReduction p m
ClassFormation.zHatToPadicInt

The p-adic coordinate of a profinite integer.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
local instance (p : Nat.Primes) : Fact p.1.Prime :=
  ⟨p.2⟩
def zHatToPadicInt (p : Nat.Primes) :
    ZHat →+* ℤ_[p.1]
ClassFormation.toZModPow_zHatToPadicInt
Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
local instance (p : Nat.Primes) : Fact p.1.Prime :=
  ⟨p.2⟩
theorem toZModPow_zHatToPadicInt
    (p : Nat.Primes) (n : ℕ) :
    (PadicInt.toZModPow n).comp (zHatToPadicInt p) =
      zHatPadicReduction p n
ClassFormation.zHatToProfiniteIntegerPrimeProduct

The canonical ring homomorphism ℤ̂ → ∏ₚ ℤ_p.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
local instance (p : Nat.Primes) : Fact p.1.Prime :=
  ⟨p.2⟩
def zHatToProfiniteIntegerPrimeProduct :
    ZHat →+* ProfiniteIntegerPrimeProduct
ClassFormation.zHatToProfiniteIntegerPrimeProduct_apply
Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
local instance (p : Nat.Primes) : Fact p.1.Prime :=
  ⟨p.2⟩
theorem zHatToProfiniteIntegerPrimeProduct_apply
    (z : ZHat) (p : Nat.Primes) :
    zHatToProfiniteIntegerPrimeProduct z p =
      zHatToPadicInt p z
ClassFormation.zHatToProfiniteIntegerPrimeProduct_injective

The prime-coordinate map separates profinite integers.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
local instance (p : Nat.Primes) : Fact p.1.Prime :=
  ⟨p.2⟩
theorem zHatToProfiniteIntegerPrimeProduct_injective :
    Function.Injective zHatToProfiniteIntegerPrimeProduct
ClassFormation.continuous_zHatToPadicInt

Each p-adic coordinate map is continuous.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
local instance (p : Nat.Primes) : Fact p.1.Prime :=
  ⟨p.2⟩
theorem continuous_zHatToPadicInt (p : Nat.Primes) :
    Continuous (zHatToPadicInt p)
ClassFormation.continuous_zHatToProfiniteIntegerPrimeProduct

The canonical map to the full prime product is continuous.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
local instance (p : Nat.Primes) : Fact p.1.Prime :=
  ⟨p.2⟩
theorem continuous_zHatToProfiniteIntegerPrimeProduct :
    Continuous zHatToProfiniteIntegerPrimeProduct
ClassFormation.denseRange_intCast_profiniteIntegerPrimeProduct

The diagonal copy of ℤ is dense in the product of all ℤ_p. This is the topological form of the finite Chinese remainder theorem.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
local instance (p : Nat.Primes) : Fact p.1.Prime :=
  ⟨p.2⟩
theorem denseRange_intCast_profiniteIntegerPrimeProduct :
    DenseRange
      (Int.castRingHom ProfiniteIntegerPrimeProduct)
ClassFormation.zHatToPadicInt_intCast
Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
local instance (p : Nat.Primes) : Fact p.1.Prime :=
  ⟨p.2⟩
theorem zHatToPadicInt_intCast
    (p : Nat.Primes) (a : ℤ) :
    zHatToPadicInt p (a : ZHat) = (a : ℤ_[p.1])
ClassFormation.zHatToProfiniteIntegerPrimeProduct_intCast
Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
local instance (p : Nat.Primes) : Fact p.1.Prime :=
  ⟨p.2⟩
theorem zHatToProfiniteIntegerPrimeProduct_intCast
    (a : ℤ) :
    zHatToProfiniteIntegerPrimeProduct (a : ZHat) =
      Int.castRingHom ProfiniteIntegerPrimeProduct a
ClassFormation.zHatToProfiniteIntegerPrimeProduct_surjective

The canonical map from the profinite integers to the product of all p-adic integers is onto. Compactness closes its range, while the finite Chinese remainder theorem makes that range dense.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
local instance (p : Nat.Primes) : Fact p.1.Prime :=
  ⟨p.2⟩
theorem zHatToProfiniteIntegerPrimeProduct_surjective :
    Function.Surjective zHatToProfiniteIntegerPrimeProduct
ClassFormation.zHatRingEquivProfiniteIntegerPrimeProduct

The Chinese-remainder ring equivalence ℤ̂ ≃ ∏ p : Nat.Primes, ℤ_p.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
local instance (p : Nat.Primes) : Fact p.1.Prime :=
  ⟨p.2⟩
def zHatRingEquivProfiniteIntegerPrimeProduct :
    ZHat ≃+* ProfiniteIntegerPrimeProduct
ClassFormation.zHatRingEquivProfiniteIntegerPrimeProduct_apply
Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
local instance (p : Nat.Primes) : Fact p.1.Prime :=
  ⟨p.2⟩
theorem zHatRingEquivProfiniteIntegerPrimeProduct_apply
    (z : ZHat) :
    zHatRingEquivProfiniteIntegerPrimeProduct z =
      zHatToProfiniteIntegerPrimeProduct z
ClassFormation.isHomeomorph_zHatRingEquivProfiniteIntegerPrimeProduct

The Chinese-remainder ring equivalence is a homeomorphism.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

open scoped Topology
noncomputable section
namespace ClassFormation
local instance (p : Nat.Primes) : Fact p.1.Prime :=
  ⟨p.2⟩
theorem isHomeomorph_zHatRingEquivProfiniteIntegerPrimeProduct :
    IsHomeomorph zHatRingEquivProfiniteIntegerPrimeProduct