Module

NormQuotient.lean

Nyll.ValuedFieldTheory.LocalField.NonarchimedeanLocalField.NormQuotient
41 declarations indexed from sourceView source ↗

Quotients by local norm subgroups

Constructs Kˣ/N(Lˣ), its universal maps and comparison equivalences, and relates its finite cardinality to the index of the norm subgroup.

Surjectivity and equality refinements for norm quotients

Declarations

LocalFieldTheory.localNormSubgroup

The norm subgroup N_{L/K}(Lˣ) ≤ Kˣ.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
def localNormSubgroup (K L : Type u) [Field K] [Field L] [Algebra K L] : Subgroup Kˣ
LocalFieldTheory.NormQuotient

Units modulo field norms.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
def NormQuotient (K L : Type u) [Field K] [Field L] [Algebra K L] : Type u
LocalFieldTheory.normQuotientCommGroup

Field units modulo the local norm subgroup form a commutative group.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
instance normQuotientCommGroup (K L : Type u) [Field K] [Field L] [Algebra K L] :
    CommGroup (NormQuotient K L)
LocalFieldTheory.normQuotientConcreteEquiv

The explicit boundary to the concrete quotient implementation. Clients that need quotient-level constructions should use this equivalence instead of unfolding NormQuotient.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
def normQuotientConcreteEquiv
    (K L : Type u) [Field K] [Field L] [Algebra K L] :
    NormQuotient K L ≃* Kˣ ⧸ localNormSubgroup K L
LocalFieldTheory.normClass

Defines normClass.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
def normClass (K L : Type u) [Field K] [Field L] [Algebra K L] :
    Kˣ →* NormQuotient K L
LocalFieldTheory.normQuotientConcreteEquiv_normClass

The concrete quotient equivalence sends a norm class to the quotient class of its representative.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normQuotientConcreteEquiv_normClass
    (K L : Type u) [Field K] [Field L] [Algebra K L] (x : Kˣ) :
    normQuotientConcreteEquiv K L (normClass K L x) =
      QuotientGroup.mk x
LocalFieldTheory.normQuotientLift

Define a homomorphism out of a norm quotient from a homomorphism on Kˣ that kills every local norm.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
def normQuotientLift {K L : Type u} {M : Type v} [Field K] [Field L] [Algebra K L]
    [Group M] (f : Kˣ →* M) (h : localNormSubgroup K L ≤ f.ker) :
    NormQuotient K L →* M
LocalFieldTheory.normQuotientLift_normClass

A homomorphism descended through the norm quotient agrees with the original homomorphism on representatives.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normQuotientLift_normClass {K L : Type u} {M : Type v} [Field K] [Field L]
    [Algebra K L] [Group M] (f : Kˣ →* M)
    (h : localNormSubgroup K L ≤ f.ker) (x : Kˣ) :
    normQuotientLift f h (normClass K L x) = f x
LocalFieldTheory.normQuotientLift_surjective

A map obtained by descending a surjective homomorphism through the norm quotient is still surjective.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normQuotientLift_surjective {K L : Type u} {M : Type v} [Field K] [Field L]
    [Algebra K L] [Group M] (f : Kˣ →* M)
    (h : localNormSubgroup K L ≤ f.ker) (hf : Function.Surjective f) :
    Function.Surjective (normQuotientLift f h)
LocalFieldTheory.normQuotientEquivOfSubgroupEq

Identify a norm quotient with any concrete quotient once its defining subgroup has been identified. This is the sole public boundary for such representation changes.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
def normQuotientEquivOfSubgroupEq
    (K L : Type u) [Field K] [Field L] [Algebra K L]
    (N : Subgroup Kˣ) (h : localNormSubgroup K L = N) :
    NormQuotient K L ≃* Kˣ ⧸ N
LocalFieldTheory.normQuotientEquivOfSubgroupEq_normClass

After identifying the norm subgroup with another subgroup, a norm class maps to the corresponding quotient class.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normQuotientEquivOfSubgroupEq_normClass
    (K L : Type u) [Field K] [Field L] [Algebra K L]
    (N : Subgroup Kˣ) (h : localNormSubgroup K L = N) (x : Kˣ) :
    normQuotientEquivOfSubgroupEq K L N h (normClass K L x) =
      QuotientGroup.mk x
LocalFieldTheory.normQuotientEquivOfNormSubgroupEq

Identify two norm quotients when their defining norm subgroups agree.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
def normQuotientEquivOfNormSubgroupEq
    (K L M : Type u) [Field K] [Field L] [Field M]
    [Algebra K L] [Algebra K M]
    (h : localNormSubgroup K L = localNormSubgroup K M) :
    NormQuotient K L ≃* NormQuotient K M
LocalFieldTheory.normQuotientEquivOfNormSubgroupEq_normClass

An equality of norm subgroups identifies norm classes represented by the same base-field unit. An equality of norm subgroups identifies norm classes represented by the same base-field unit.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normQuotientEquivOfNormSubgroupEq_normClass
    (K L M : Type u) [Field K] [Field L] [Field M]
    [Algebra K L] [Algebra K M]
    (h : localNormSubgroup K L = localNormSubgroup K M) (x : Kˣ) :
    normQuotientEquivOfNormSubgroupEq K L M h (normClass K L x) =
      normClass K M x
LocalFieldTheory.normQuotientEquivOfSurjective

First isomorphism theorem with an opaque norm quotient as its source.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
def normQuotientEquivOfSurjective
    {K L : Type u} {M : Type v} [Field K] [Field L] [Algebra K L]
    [Group M] (f : Kˣ →* M) (hf : Function.Surjective f)
    (hker : f.ker = localNormSubgroup K L) : NormQuotient K L ≃* M
LocalFieldTheory.normQuotientEquivOfSurjective_normClass

The first-isomorphism equivalence sends a norm class to the image of its representative.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normQuotientEquivOfSurjective_normClass
    {K L : Type u} {M : Type v} [Field K] [Field L] [Algebra K L]
    [Group M] (f : Kˣ →* M) (hf : Function.Surjective f)
    (hker : f.ker = localNormSubgroup K L) (x : Kˣ) :
    normQuotientEquivOfSurjective f hf hker (normClass K L x) = f x
LocalFieldTheory.NormQuotient.inductionOn

Eliminate a norm-quotient class through the canonical quotient map, without exposing the quotient representation to clients.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem NormQuotient.inductionOn {K L : Type u} [Field K] [Field L]
    [Algebra K L] {motive : NormQuotient K L → Prop}
    (q : NormQuotient K L)
    (h : ∀ x : Kˣ, motive (normClass K L x)) : motive q
LocalFieldTheory.mk_normUnits_eq_one

The quotient class of any extension-unit norm is the identity norm class.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem mk_normUnits_eq_one (K L : Type u) [Field K] [Field L] [Algebra K L] (x : Lˣ) :
    normClass K L (normUnits K L x) = 1
LocalFieldTheory.normClass_eq_one_iff

A base-field unit has trivial norm class exactly when it lies in the local norm subgroup.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normClass_eq_one_iff (K L : Type u) [Field K] [Field L]
    [Algebra K L] (x : Kˣ) :
    normClass K L x = 1 ↔ ∃ y : Lˣ, normUnits K L y = x
LocalFieldTheory.normClass_eq_iff_div_mem

Two units have the same norm class exactly when their quotient is a local norm.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normClass_eq_iff_div_mem (K L : Type u) [Field K] [Field L]
    [Algebra K L] (x y : Kˣ) :
    normClass K L x = normClass K L y ↔
      x / y ∈ localNormSubgroup K L
LocalFieldTheory.normClass_ker

The kernel of the norm-class homomorphism is the local norm subgroup.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normClass_ker (K L : Type u) [Field K] [Field L] [Algebra K L] :
    MonoidHom.ker (normClass K L) = localNormSubgroup K L
LocalFieldTheory.normClass_mem_ker_iff

Membership in the kernel of the norm-class map is equivalent to membership in the local norm subgroup.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normClass_mem_ker_iff (K L : Type u) [Field K] [Field L]
    [Algebra K L] (x : Kˣ) :
    x ∈ MonoidHom.ker (normClass K L) ↔ x ∈ localNormSubgroup K L
LocalFieldTheory.normClass_eq_one_iff_mem

A norm class is one exactly when its representative is a local norm.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normClass_eq_one_iff_mem (K L : Type u) [Field K] [Field L]
    [Algebra K L] (x : Kˣ) :
    normClass K L x = 1 ↔ x ∈ localNormSubgroup K L
LocalFieldTheory.normQuotientMapOfLE

The map of norm quotients induced by inclusion of their norm subgroups.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
def normQuotientMapOfLE
    (K L M : Type u) [Field K] [Field L] [Field M]
    [Algebra K L] [Algebra K M]
    (h : localNormSubgroup K L ≤ localNormSubgroup K M) :
    NormQuotient K L →* NormQuotient K M
LocalFieldTheory.normQuotientMapOfLE_normClass

The quotient map induced by inclusion of norm subgroups preserves representatives.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normQuotientMapOfLE_normClass
    (K L M : Type u) [Field K] [Field L] [Field M]
    [Algebra K L] [Algebra K M]
    (h : localNormSubgroup K L ≤ localNormSubgroup K M) (x : Kˣ) :
    normQuotientMapOfLE K L M h (normClass K L x) = normClass K M x
LocalFieldTheory.normUnits_self_apply

Over the identity extension, the unit norm fixes every base-field unit.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normUnits_self_apply (K : Type u) [Field K] (x : Kˣ) :
    normUnits K K x = x
LocalFieldTheory.localNormSubgroup_self

For the identity extension, every base-field unit is a norm.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem localNormSubgroup_self (K : Type u) [Field K] :
    localNormSubgroup K K = ⊤
LocalFieldTheory.normQuotient_self_eq_one

Every norm class for the identity extension is the identity.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normQuotient_self_eq_one (K : Type u) [Field K] (x : NormQuotient K K) :
    x = 1
LocalFieldTheory.normQuotient_self_subsingleton

The norm quotient of a field over itself is a subsingleton.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
instance normQuotient_self_subsingleton (K : Type u) [Field K] :
    Subsingleton (NormQuotient K K) where
  allEq x y := by
    rw [normQuotient_self_eq_one K x, normQuotient_self_eq_one K y]
LocalFieldTheory.normClass_eq_one_of_mem

A representative from the local norm subgroup has trivial norm class.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normClass_eq_one_of_mem (K L : Type u) [Field K] [Field L]
    [Algebra K L] {x : Kˣ} (hx : x ∈ localNormSubgroup K L) :
    normClass K L x = 1
LocalFieldTheory.normClass_normUnits_zpow_eq_one

An integral power of a unit norm has trivial norm class.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normClass_normUnits_zpow_eq_one
    (K L : Type u) [Field K] [Field L] [Algebra K L] (x : Lˣ) (n : Int) :
    normClass K L ((normUnits K L x) ^ n) = 1
LocalFieldTheory.normClass_eq_iff_exists_norm_div

Two norm classes agree exactly when their representatives differ by a unit norm.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normClass_eq_iff_exists_norm_div (K L : Type u)
    [Field K] [Field L] [Algebra K L] (x y : Kˣ) :
    normClass K L x = normClass K L y ↔
      ∃ z : Lˣ, x / y = normUnits K L z
LocalFieldTheory.normClass_normUnits_mul

Multiplying a representative on the left by a unit norm leaves its norm class unchanged.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normClass_normUnits_mul (K L : Type u)
    [Field K] [Field L] [Algebra K L] (z : Lˣ) (x : Kˣ) :
    normClass K L (normUnits K L z * x) = normClass K L x
LocalFieldTheory.normClass_mul_normUnits

Multiplying a representative on the right by a unit norm leaves its norm class unchanged.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normClass_mul_normUnits (K L : Type u)
    [Field K] [Field L] [Algebra K L] (x : Kˣ) (z : Lˣ) :
    normClass K L (x * normUnits K L z) = normClass K L x
LocalFieldTheory.normClass_normUnits_zpow_mul

Left multiplication by an integral power of a unit norm leaves a norm class unchanged.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normClass_normUnits_zpow_mul (K L : Type u)
    [Field K] [Field L] [Algebra K L] (z : Lˣ) (n : Int) (x : Kˣ) :
    normClass K L ((normUnits K L z) ^ n * x) =
      normClass K L x
LocalFieldTheory.normClass_mul_normUnits_zpow

Right multiplication by an integral power of a unit norm leaves a norm class unchanged.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normClass_mul_normUnits_zpow (K L : Type u)
    [Field K] [Field L] [Algebra K L] (x : Kˣ) (z : Lˣ) (n : Int) :
    normClass K L (x * (normUnits K L z) ^ n) =
      normClass K L x
LocalFieldTheory.normClass_eq_of_eq_normUnits_mul

A representative obtained by multiplying another by a unit norm defines the same norm class.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normClass_eq_of_eq_normUnits_mul (K L : Type u)
    [Field K] [Field L] [Algebra K L] {x y : Kˣ} (z : Lˣ)
    (h : x = normUnits K L z * y) :
    normClass K L x = normClass K L y
LocalFieldTheory.normClass_eq_iff_mul_inv_mem

Two norm classes agree exactly when one representative times the other's inverse is a local norm.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normClass_eq_iff_mul_inv_mem (K L : Type u)
    [Field K] [Field L] [Algebra K L] (x y : Kˣ) :
    normClass K L x = normClass K L y ↔
      x * y⁻¹ ∈ localNormSubgroup K L
LocalFieldTheory.normClass_eq_iff_exists_norm_mul_left

Two norm classes agree exactly when a unit norm converts the second representative to the first on the left.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normClass_eq_iff_exists_norm_mul_left (K L : Type u)
    [Field K] [Field L] [Algebra K L] (x y : Kˣ) :
    normClass K L x = normClass K L y ↔
      ∃ z : Lˣ, x = normUnits K L z * y
LocalFieldTheory.normClass_eq_iff_exists_norm_mul_right

Two norm classes agree exactly when a unit norm converts the second representative to the first on the right.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normClass_eq_iff_exists_norm_mul_right (K L : Type u)
    [Field K] [Field L] [Algebra K L] (x y : Kˣ) :
    normClass K L x = normClass K L y ↔
      ∃ z : Lˣ, x = y * normUnits K L z
LocalFieldTheory.normClass_eq_all_of_normUnits_surjective

If the unit norm is surjective, all base-field units have the same norm class.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normClass_eq_all_of_normUnits_surjective (K L : Type u)
    [Field K] [Field L] [Algebra K L]
    (h : Function.Surjective (normUnits K L)) (x y : Kˣ) :
    normClass K L x = normClass K L y
LocalFieldTheory.normClass_eq_of_localNormSubgroup_eq_top

If every base-field unit is a local norm, all norm classes coincide.

Source context 3 commands

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

namespace LocalFieldTheory
noncomputable section
universe u v
theorem normClass_eq_of_localNormSubgroup_eq_top (K L : Type u)
    [Field K] [Field L] [Algebra K L] (h : localNormSubgroup K L = ⊤) (x y : Kˣ) :
    normClass K L x = normClass K L y