Module

IntegerMultipleSubgroup.lean

Nyll.ValuedFieldTheory.LocalField.GroupTheory.IntegerMultipleSubgroup
13 declarations indexed from sourceView source ↗

Integer multiple subgroups

Pure group-theoretic infrastructure for the subgroup of multiplicative integers divisible by a fixed integer and its cyclic quotient. It lives below the discrete-valuation-field layer so generic power-index code does not depend on valued-field norm modules.

The declarations retain the established LocalFieldTheory.DiscreteValuationField namespace because the same value group is used by the valuation API; their implementation has no valued-field hypotheses.

Imports4
  • Mathlib.Algebra.Group.Int.TypeTags
  • Mathlib.Data.ZMod.QuotientGroup
  • Lean.Elab.Tactic.Ext
  • Lean.Elab.Tactic.RCases
Imported by3

Declarations

LocalFieldTheory.DiscreteValuationField.integerMultipleSubgroup

The subgroup of Multiplicative ℤ consisting of elements whose additive integer is divisible by d.

Source context 1 command

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

namespace LocalFieldTheory.DiscreteValuationField
def integerMultipleSubgroup (d : ℤ) : Subgroup (Multiplicative ℤ) where
  carrier := {n | d ∣ Multiplicative.toAdd n}
  one_mem' := by
    change d ∣ (0 : ℤ)
    exact dvd_zero d
  mul_mem' := by
    intro x y hx hy
    change d ∣ Multiplicative.toAdd (x * y)
    rw [toAdd_mul]
    exact dvd_add hx hy
  inv_mem' := by
    intro x hx
    change d ∣ Multiplicative.toAdd x⁻¹
    rw [toAdd_inv]
    exact dvd_neg.mpr hx
LocalFieldTheory.DiscreteValuationField.mem_integerMultipleSubgroup_iff

An integer lies in the subgroup generated by multiples of n exactly when n divides it.

Source context 1 command

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

namespace LocalFieldTheory.DiscreteValuationField
theorem mem_integerMultipleSubgroup_iff
    (d : ℤ) (n : Multiplicative ℤ) :
    n ∈ integerMultipleSubgroup d ↔ d ∣ Multiplicative.toAdd n
LocalFieldTheory.DiscreteValuationField.ofAdd_mem_integerMultipleSubgroup_iff

Membership of a multiplicative integer in the multiple subgroup is equivalent to divisibility of its additive value.

Source context 1 command

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

namespace LocalFieldTheory.DiscreteValuationField
theorem ofAdd_mem_integerMultipleSubgroup_iff (d n : ℤ) :
    Multiplicative.ofAdd n ∈ integerMultipleSubgroup d ↔ d ∣ n
LocalFieldTheory.DiscreteValuationField.ofAdd_mul_mem_integerMultipleSubgroup

Multiplying two multiplicative integers from the multiple subgroup remains in that subgroup.

Source context 1 command

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

namespace LocalFieldTheory.DiscreteValuationField
theorem ofAdd_mul_mem_integerMultipleSubgroup (d n : ℤ) :
    Multiplicative.ofAdd (d * n) ∈ integerMultipleSubgroup d
LocalFieldTheory.DiscreteValuationField.ofAdd_mul_comm_mem_integerMultipleSubgroup

The multiple subgroup is closed under multiplication in either order.

Source context 1 command

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

namespace LocalFieldTheory.DiscreteValuationField
theorem ofAdd_mul_comm_mem_integerMultipleSubgroup (d n : ℤ) :
    Multiplicative.ofAdd (n * d) ∈ integerMultipleSubgroup d
LocalFieldTheory.DiscreteValuationField.integerMultipleSubgroup_le_of_dvd

Divisibility of generators reverses inclusion between their integer-multiple subgroups.

Source context 1 command

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

namespace LocalFieldTheory.DiscreteValuationField
theorem integerMultipleSubgroup_le_of_dvd {a b : ℤ} (hab : a ∣ b) :
    integerMultipleSubgroup b ≤ integerMultipleSubgroup a
LocalFieldTheory.DiscreteValuationField.integerMultipleSubgroup_one_eq_top

Every multiplicative integer belongs to the subgroup of multiples of one.

Source context 1 command

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

namespace LocalFieldTheory.DiscreteValuationField
theorem integerMultipleSubgroup_one_eq_top :
    integerMultipleSubgroup (1 : ℤ) = ⊤
LocalFieldTheory.DiscreteValuationField.multiplicativeIntToZModHom

Reduction of multiplicative integers modulo the subgroup of multiples of d, written as a homomorphism to Multiplicative (ZMod |d|).

Source context 1 command

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

namespace LocalFieldTheory.DiscreteValuationField
def multiplicativeIntToZModHom (d : ℤ) :
    Multiplicative ℤ →* Multiplicative (ZMod d.natAbs)
LocalFieldTheory.DiscreteValuationField.multiplicativeIntToZModHom_apply

Reduction modulo n sends a multiplicative integer to the residue class of its additive value. Reduction modulo n sends a multiplicative integer to the residue class of its additive value.

Source context 1 command

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

namespace LocalFieldTheory.DiscreteValuationField
theorem multiplicativeIntToZModHom_apply
    (d : ℤ) (n : Multiplicative ℤ) :
    multiplicativeIntToZModHom d n =
      Multiplicative.ofAdd ((n.toAdd : ZMod d.natAbs))
LocalFieldTheory.DiscreteValuationField.multiplicativeIntToZModHom_ker_eq_integerMultipleSubgroup

The kernel of reduction modulo n is precisely the subgroup of integer multiples of n.

Source context 1 command

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

namespace LocalFieldTheory.DiscreteValuationField
theorem multiplicativeIntToZModHom_ker_eq_integerMultipleSubgroup (d : ℤ) :
    (multiplicativeIntToZModHom d).ker = integerMultipleSubgroup d
LocalFieldTheory.DiscreteValuationField.multiplicativeIntToZModHom_surjective

Every residue class modulo n is represented by a multiplicative integer.

Source context 1 command

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

namespace LocalFieldTheory.DiscreteValuationField
theorem multiplicativeIntToZModHom_surjective (d : ℤ) :
    Function.Surjective (multiplicativeIntToZModHom d)
LocalFieldTheory.DiscreteValuationField.valueModIntegerMultipleSubgroupEquivZMod

The quotient of multiplicative integers by multiples of d is the standard cyclic value group Multiplicative (ZMod |d|).

Source context 1 command

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

namespace LocalFieldTheory.DiscreteValuationField
def valueModIntegerMultipleSubgroupEquivZMod (d : ℤ) :
    Multiplicative ℤ ⧸ integerMultipleSubgroup d ≃*
      Multiplicative (ZMod d.natAbs)
LocalFieldTheory.DiscreteValuationField.valueModIntegerMultipleSubgroupEquivZMod_mk

The quotient-to-ZMod equivalence sends a quotient class to reduction of its representative modulo n.

Source context 1 command

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

namespace LocalFieldTheory.DiscreteValuationField
theorem valueModIntegerMultipleSubgroupEquivZMod_mk
    (d n : ℤ) :
    valueModIntegerMultipleSubgroupEquivZMod d
        (QuotientGroup.mk' (integerMultipleSubgroup d)
          (Multiplicative.ofAdd n)) =
      Multiplicative.ofAdd ((n : ZMod d.natAbs))