Module

FiniteSubgroupRootsOfUnity.lean

Nyll.ValuedFieldTheory.Ramification.HilbertRamification.FiniteSubgroupRootsOfUnity
7 declarations indexed from sourceView source ↗

Finite multiplicative subgroups and roots of unity

Identifies a finite subgroup of field units with all roots of unity of its order and produces a primitive root. Finite characters are then expressed as surjections onto these root groups with the corresponding kernel quotient.

Imports3
  • Mathlib.RingTheory.RootsOfUnity.PrimitiveRoots
  • Mathlib.GroupTheory.QuotientGroup.Basic
  • Mathlib.Algebra.Group.Subgroup.Finite
Imported by2

Declarations

RamificationTheory.HilbertRamification.finiteSubgroup_eq_rootsOfUnity

A finite subgroup of field units is the full root group of its order.

Source context 4 commands

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

noncomputable section
namespace RamificationTheory.HilbertRamification
universe u v
variable {k : Type u} [Field k]
theorem finiteSubgroup_eq_rootsOfUnity (H : Subgroup kˣ) [Finite H] :
    H = rootsOfUnity (Nat.card H) k
RamificationTheory.HilbertRamification.exists_primitiveRoot_card_finiteSubgroup

A finite multiplicative subgroup yields an actual primitive root in the field.

Source context 4 commands

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

noncomputable section
namespace RamificationTheory.HilbertRamification
universe u v
variable {k : Type u} [Field k]
theorem exists_primitiveRoot_card_finiteSubgroup (H : Subgroup kˣ) [Finite H] :
    ∃ ζ : k, IsPrimitiveRoot ζ (Nat.card H)
RamificationTheory.HilbertRamification.finiteImageRootsCharacter

Any actual finite residue-unit homomorphism lands onto all roots of its image order.

Source context 5 commands

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

noncomputable section
namespace RamificationTheory.HilbertRamification
universe u v
variable {k : Type u} [Field k]
variable {G : Type v} [Group G] [Finite G]
def finiteImageRootsCharacter (f : G →* kˣ) :
    G →* rootsOfUnity (Nat.card f.range) k
RamificationTheory.HilbertRamification.finiteImageRootsCharacter_surjective
Source context 5 commands

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

noncomputable section
namespace RamificationTheory.HilbertRamification
universe u v
variable {k : Type u} [Field k]
variable {G : Type v} [Group G] [Finite G]
theorem finiteImageRootsCharacter_surjective (f : G →* kˣ) :
    Function.Surjective (finiteImageRootsCharacter f)
RamificationTheory.HilbertRamification.finiteImageRootsCharacter_ker
Source context 5 commands

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

noncomputable section
namespace RamificationTheory.HilbertRamification
universe u v
variable {k : Type u} [Field k]
variable {G : Type v} [Group G] [Finite G]
theorem finiteImageRootsCharacter_ker (f : G →* kˣ) :
    (finiteImageRootsCharacter f).ker = f.ker
RamificationTheory.HilbertRamification.finiteImageRootsCharacter_degree

The actual image order is the order of the actual kernel quotient.

Source context 6 commands

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

noncomputable section
namespace RamificationTheory.HilbertRamification
universe u v
variable {k : Type u} [Field k]
variable {G : Type v} [Group G] [Finite G]
omit [Finite G] in
theorem finiteImageRootsCharacter_degree (f : G →* kˣ) :
    Nat.card f.range = Nat.card (G ⧸ f.ker)
RamificationTheory.HilbertRamification.finiteImageQuotientEquivRootsOfUnity

A finite image in the units of a field identifies the kernel quotient with the full roots-of-unity group of the image order.

Source context 5 commands

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

noncomputable section
namespace RamificationTheory.HilbertRamification
universe u v
variable {k : Type u} [Field k]
variable {G : Type v} [Group G] [Finite G]
def finiteImageQuotientEquivRootsOfUnity (f : G →* kˣ) :
    (G ⧸ f.ker) ≃* rootsOfUnity (Nat.card f.range) k