Module

TopologyModelTypes.lean

Nyll.ValuedFieldTheory.LocalField.DiscreteValuationField.PrincipalUnitPadicAction.TopologyModelTypes
37 declarations indexed from sourceView source ↗

Type-level topology models for principal units

Adic principal units, discrete finite quotients, and the prodiscrete inverse limit are represented by distinct wrapper types so that their topologies cannot be confused by instance selection.

Topology is part of the type

The algebraic quotient and inverse-limit types above deliberately carry no preferred topology. The following models distinguish the topologies used in the p-adic action at the type level. In particular, no theorem below can silently reinterpret the same quotient as both a quotient-topological and a discrete space.

Declarations

LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.principalUnitAdicTopology

The topology on additive first principal units induced by the maximal- ideal adic topology on the valuation ring.

Source context 13 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
def principalUnitAdicTopology
    (F : CompleteDVF.{u, v} K) :
    TopologicalSpace
      (Additive
        ((LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup F) 1))
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.AdicPrincipalUnits

First principal units with their canonical adic topology fixed in the type.

Source context 13 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
structure AdicPrincipalUnits (F : CompleteDVF.{u, v} K) where
  /-- The underlying additive principal unit. -/
  val : Additive
    ((LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup F) 1)
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.AdicPrincipalUnits.equiv

The carrier equivalence of the adic model.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace AdicPrincipalUnits
def equiv (F : CompleteDVF.{u, v} K) :
    AdicPrincipalUnits F ≃
      Additive
        ((LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup F) 1) where
  toFun := AdicPrincipalUnits.val
  invFun := fun x => ⟨x⟩
  left_inv := fun x => by cases x; rfl
  right_inv := fun _ => rfl

Equips the target with its canonical TopologicalSpace structure, namely TopologicalSpace (AdicPrincipalUnits F).

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace AdicPrincipalUnits
instance (F : CompleteDVF.{u, v} K) :
    TopologicalSpace (AdicPrincipalUnits F)
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.AdicPrincipalUnits.homeomorph

Forget the wrapper while retaining the topology recorded in its type.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace AdicPrincipalUnits
def homeomorph (F : CompleteDVF.{u, v} K) :
    AdicPrincipalUnits F ≃ₜ
      WithTopology
        (Additive
          ((LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup F) 1))
        (principalUnitAdicTopology F) where
  toEquiv := (equiv F).trans
    (WithTopology.equiv _ (principalUnitAdicTopology F)).symm
  continuous_toFun := by
    let : TopologicalSpace
        (Additive
          ((LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup F) 1)) :=
      principalUnitAdicTopology F
    change Continuous fun x : AdicPrincipalUnits F =>
      WithTopology.toTopology (principalUnitAdicTopology F) x.val
    exact
      (WithTopology.continuous_toTopology (principalUnitAdicTopology F)).comp
        continuous_induced_dom
  continuous_invFun := by
    let : TopologicalSpace
        (Additive
          ((LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup F) 1)) :=
      principalUnitAdicTopology F
    change Continuous fun x : WithTopology
        (Additive
          ((LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup F) 1))
        (principalUnitAdicTopology F) =>
      (⟨x.ofTopology⟩ : AdicPrincipalUnits F)
    exact
      continuous_induced_rng.2
        (WithTopology.continuous_ofTopology (principalUnitAdicTopology F))

Equips the target with its canonical AddCommGroup structure, namely AddCommGroup (AdicPrincipalUnits F).

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace AdicPrincipalUnits
instance (F : CompleteDVF.{u, v} K) : AddCommGroup (AdicPrincipalUnits F)
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.AdicPrincipalUnits.of

Put a first principal unit into the canonical adic model.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace AdicPrincipalUnits
def of (F : CompleteDVF.{u, v} K)
    (x : Additive
      ((LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup F) 1)) :
    AdicPrincipalUnits F
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.AdicPrincipalUnits.val_of

Establishes the identity (of F x).val = x.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace AdicPrincipalUnits
theorem val_of (F : CompleteDVF.{u, v} K)
    (x : Additive
      ((LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup F) 1)) :
    (of F x).val = x
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.AdicPrincipalUnits.of_val

Establishes the identity of F x.val = x.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace AdicPrincipalUnits
theorem of_val (F : CompleteDVF.{u, v} K)
    (x : AdicPrincipalUnits F) : of F x.val = x
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.AdicPrincipalUnits.addEquiv

The algebraic equivalence underlying the adic model.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace AdicPrincipalUnits
def addEquiv (F : CompleteDVF.{u, v} K) :
    AdicPrincipalUnits F ≃+
      Additive
        ((LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup F) 1)
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.DiscretePrincipalUnitQuotient

The n-th principal-unit quotient with its mathematically intended discrete topology fixed in the type. Its carrier is finite when F is a LocalField, but not for an arbitrary CompleteDVF.

Source context 13 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
structure DiscretePrincipalUnitQuotient
    (F : CompleteDVF.{u, v} K) (n : ℕ) where
  /-- The underlying quotient class. -/
  val : Additive (Internal.principalUnitQuotientCarrier F n)
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.DiscretePrincipalUnitQuotient.ext

Establishes the identity x = y.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace DiscretePrincipalUnitQuotient
theorem ext {F : CompleteDVF.{u, v} K} {n : ℕ}
    {x y : DiscretePrincipalUnitQuotient F n} (h : x.val = y.val) : x = y
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.DiscretePrincipalUnitQuotient.equiv

The carrier equivalence of a discrete coordinate.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace DiscretePrincipalUnitQuotient
def equiv (F : CompleteDVF.{u, v} K) (n : ℕ) :
    DiscretePrincipalUnitQuotient F n ≃
      Additive (Internal.principalUnitQuotientCarrier F n) where
  toFun := DiscretePrincipalUnitQuotient.val
  invFun := fun x => ⟨x⟩
  left_inv := fun x => by cases x; rfl
  right_inv := fun _ => rfl

Equips the target with its canonical TopologicalSpace structure, namely TopologicalSpace (DiscretePrincipalUnitQuotient F n).

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace DiscretePrincipalUnitQuotient
instance (F : CompleteDVF.{u, v} K) (n : ℕ) :
    TopologicalSpace (DiscretePrincipalUnitQuotient F n)

Equips the target with its canonical DiscreteTopology structure, namely DiscreteTopology (DiscretePrincipalUnitQuotient F n).

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace DiscretePrincipalUnitQuotient
instance (F : CompleteDVF.{u, v} K) (n : ℕ) :
    DiscreteTopology (DiscretePrincipalUnitQuotient F n)

Equips the target with its canonical AddCommGroup structure, namely AddCommGroup (DiscretePrincipalUnitQuotient F n).

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace DiscretePrincipalUnitQuotient
instance (F : CompleteDVF.{u, v} K) (n : ℕ) :
    AddCommGroup (DiscretePrincipalUnitQuotient F n)
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.DiscretePrincipalUnitQuotient.addEquiv

Algebraic equivalence forgetting the discrete coordinate wrapper.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace DiscretePrincipalUnitQuotient
def addEquiv (F : CompleteDVF.{u, v} K) (n : ℕ) :
    DiscretePrincipalUnitQuotient F n ≃+
      Additive (Internal.principalUnitQuotientCarrier F n)
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.DiscretePrincipalUnitQuotient.addEquiv_apply

The defining evaluation formula for addEquiv is addEquiv F n x = x.val.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace DiscretePrincipalUnitQuotient
theorem addEquiv_apply (F : CompleteDVF.{u, v} K) (n : ℕ)
    (x : DiscretePrincipalUnitQuotient F n) :
    addEquiv F n x = x.val
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.DiscretePrincipalUnitQuotient.of

Put a quotient class into its discrete model.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace DiscretePrincipalUnitQuotient
def of (F : CompleteDVF.{u, v} K) (n : ℕ)
    (x : Additive (Internal.principalUnitQuotientCarrier F n)) :
    DiscretePrincipalUnitQuotient F n
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.DiscretePrincipalUnitQuotient.addEquiv_symm_apply

The defining evaluation formula for addEquiv is (addEquiv F n).symm x = of F n x.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace DiscretePrincipalUnitQuotient
theorem addEquiv_symm_apply (F : CompleteDVF.{u, v} K) (n : ℕ)
    (x : Additive (Internal.principalUnitQuotientCarrier F n)) :
    (addEquiv F n).symm x = of F n x
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.DiscretePrincipalUnitQuotient.val_of

Establishes the identity (of F n x).val = x.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace DiscretePrincipalUnitQuotient
theorem val_of (F : CompleteDVF.{u, v} K) (n : ℕ)
    (x : Additive (Internal.principalUnitQuotientCarrier F n)) :
    (of F n x).val = x
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.DiscretePrincipalUnitQuotient.addEquiv_of

Establishes the identity addEquiv F n (of F n x) = x.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace DiscretePrincipalUnitQuotient
theorem addEquiv_of (F : CompleteDVF.{u, v} K) (n : ℕ)
    (x : Additive (Internal.principalUnitQuotientCarrier F n)) :
    addEquiv F n (of F n x) = x
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.DiscretePrincipalUnitQuotient.of_val

Establishes the identity of F n x.val = x.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace DiscretePrincipalUnitQuotient
theorem of_val (F : CompleteDVF.{u, v} K) (n : ℕ)
    (x : DiscretePrincipalUnitQuotient F n) :
    of F n x.val = x
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.principalUnitProdiscreteTopology

The product topology of the discrete coordinates on the additive principal-unit inverse limit.

Source context 13 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
def principalUnitProdiscreteTopology
    (F : CompleteDVF.{u, v} K) :
    TopologicalSpace (Additive (Internal.principalUnitInverseLimitCarrier F))
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.PrincipalUnitProdiscreteLimit

The principal-unit inverse limit with its prodiscrete topology fixed in the type. For a local field, the coordinate quotients are finite and this specializes to the usual profinite topology.

Source context 13 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
structure PrincipalUnitProdiscreteLimit (F : CompleteDVF.{u, v} K) where
  /-- The underlying compatible family. -/
  val : Additive (Internal.principalUnitInverseLimitCarrier F)
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.PrincipalUnitProdiscreteLimit.equiv

The carrier equivalence of the prodiscrete inverse-limit model.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace PrincipalUnitProdiscreteLimit
def equiv (F : CompleteDVF.{u, v} K) :
    PrincipalUnitProdiscreteLimit F ≃
      Additive (Internal.principalUnitInverseLimitCarrier F) where
  toFun := PrincipalUnitProdiscreteLimit.val
  invFun := fun x => ⟨x⟩
  left_inv := fun x => by cases x; rfl
  right_inv := fun _ => rfl

Equips the target with its canonical TopologicalSpace structure, namely TopologicalSpace (PrincipalUnitProdiscreteLimit F).

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace PrincipalUnitProdiscreteLimit
instance (F : CompleteDVF.{u, v} K) :
    TopologicalSpace (PrincipalUnitProdiscreteLimit F)
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.PrincipalUnitProdiscreteLimit.homeomorph

Forget the wrapper while retaining its fixed prodiscrete topology.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace PrincipalUnitProdiscreteLimit
def homeomorph (F : CompleteDVF.{u, v} K) :
    PrincipalUnitProdiscreteLimit F ≃ₜ
      WithTopology
        (Additive (Internal.principalUnitInverseLimitCarrier F))
        (principalUnitProdiscreteTopology F) where
  toEquiv := (equiv F).trans
    (WithTopology.equiv _ (principalUnitProdiscreteTopology F)).symm
  continuous_toFun := by
    let : TopologicalSpace
        (Additive (Internal.principalUnitInverseLimitCarrier F)) :=
      principalUnitProdiscreteTopology F
    change Continuous fun x : PrincipalUnitProdiscreteLimit F =>
      WithTopology.toTopology (principalUnitProdiscreteTopology F) x.val
    exact
      (WithTopology.continuous_toTopology (principalUnitProdiscreteTopology F)).comp
        continuous_induced_dom
  continuous_invFun := by
    let : TopologicalSpace
        (Additive (Internal.principalUnitInverseLimitCarrier F)) :=
      principalUnitProdiscreteTopology F
    change Continuous fun x : WithTopology
        (Additive (Internal.principalUnitInverseLimitCarrier F))
        (principalUnitProdiscreteTopology F) =>
      (⟨x.ofTopology⟩ : PrincipalUnitProdiscreteLimit F)
    exact
      continuous_induced_rng.2
        (WithTopology.continuous_ofTopology (principalUnitProdiscreteTopology F))

Equips the target with its canonical AddCommGroup structure, namely AddCommGroup (PrincipalUnitProdiscreteLimit F).

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace PrincipalUnitProdiscreteLimit
instance (F : CompleteDVF.{u, v} K) :
    AddCommGroup (PrincipalUnitProdiscreteLimit F)
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.PrincipalUnitProdiscreteLimit.addEquiv

The algebraic equivalence forgetting the type-level prodiscrete model.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace PrincipalUnitProdiscreteLimit
def addEquiv (F : CompleteDVF.{u, v} K) :
    PrincipalUnitProdiscreteLimit F ≃+
      Additive (Internal.principalUnitInverseLimitCarrier F)
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.PrincipalUnitProdiscreteLimit.addEquiv_apply

The defining evaluation formula for addEquiv is addEquiv F x = x.val.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace PrincipalUnitProdiscreteLimit
theorem addEquiv_apply (F : CompleteDVF.{u, v} K)
    (x : PrincipalUnitProdiscreteLimit F) :
    addEquiv F x = x.val
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.PrincipalUnitProdiscreteLimit.of

Put a compatible family into its prodiscrete model.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace PrincipalUnitProdiscreteLimit
def of (F : CompleteDVF.{u, v} K)
    (x : Additive (Internal.principalUnitInverseLimitCarrier F)) :
    PrincipalUnitProdiscreteLimit F
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.PrincipalUnitProdiscreteLimit.addEquiv_symm_apply

The defining evaluation formula for addEquiv is (addEquiv F).symm x = of F x.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace PrincipalUnitProdiscreteLimit
theorem addEquiv_symm_apply (F : CompleteDVF.{u, v} K)
    (x : Additive (Internal.principalUnitInverseLimitCarrier F)) :
    (addEquiv F).symm x = of F x
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.PrincipalUnitProdiscreteLimit.val_of

Establishes the identity (of F x).val = x.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace PrincipalUnitProdiscreteLimit
theorem val_of (F : CompleteDVF.{u, v} K)
    (x : Additive (Internal.principalUnitInverseLimitCarrier F)) :
    (of F x).val = x
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.PrincipalUnitProdiscreteLimit.of_val

Establishes the identity of F x.val = x.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace PrincipalUnitProdiscreteLimit
theorem of_val (F : CompleteDVF.{u, v} K)
    (x : PrincipalUnitProdiscreteLimit F) : of F x.val = x
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.PrincipalUnitProdiscreteLimit.coordinate

Evaluation at one discrete coordinate, as an additive homomorphism.

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace PrincipalUnitProdiscreteLimit
def coordinate (F : CompleteDVF.{u, v} K) (n : ℕ) :
    PrincipalUnitProdiscreteLimit F →+
      DiscretePrincipalUnitQuotient F n
LocalFieldTheory.DiscreteValuationField.CompleteDVF.higherPrincipalUnitGroup.PrincipalUnitProdiscreteLimit.coordinate_apply

The defining evaluation formula for coordinate is coordinate F n x = DiscretePrincipalUnitQuotient.of F n (Additive.ofMul (Internal.principalUnitInverseLimitCarrierEval F n (Additive.toMul (addEquiv F x)))).

Source context 14 commands

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

noncomputable section
open scoped BigOperators
universe u v
namespace LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField
open ValuationTheory.DiscreteValuationField
namespace CompleteDVF
open LocalFieldTheory.DiscreteValuationField.CompleteDVF
namespace higherPrincipalUnitGroup
open LubinTate
open LubinTate.Valuations
variable {K : Type u} [Field K]
open Internal
namespace PrincipalUnitProdiscreteLimit
theorem coordinate_apply (F : CompleteDVF.{u, v} K) (n : ℕ)
    (x : PrincipalUnitProdiscreteLimit F) :
    coordinate F n x = DiscretePrincipalUnitQuotient.of F n
      (Additive.ofMul
        (Internal.principalUnitInverseLimitCarrierEval F n
          (Additive.toMul (addEquiv F x))))