Module

Transfer.lean

Nyll.ProCGroups.Abelian.Transfer
6 declarations indexed from sourceView source ↗

Continuous transfer for open normal subgroups

Declarations

ProCGroups.FiniteStepSolvableQuotients.openNormalTransferTerm

The individual transfer term landing in an open normal subgroup.

Source context 3 commands

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

namespace ProCGroups.FiniteStepSolvableQuotients
open ProCGroups.Abelian ProCGroups.ProC
universe u v
def openNormalTransferTerm
    {G : Type u} [TopologicalSpace G] [Group G]
    (N : OpenNormalSubgroup G)
    (q : G ⧸ (N : Subgroup G)) (g : G) :
    ↥(N : Subgroup G)
ProCGroups.FiniteStepSolvableQuotients.openNormalTransferTopologicalAbelianizationPre

Transfer on topological abelianization, before passing to the quotient universal property.

Source context 3 commands

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

namespace ProCGroups.FiniteStepSolvableQuotients
open ProCGroups.Abelian ProCGroups.ProC
universe u v
def openNormalTransferTopologicalAbelianizationPre
    {G : Type u} [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
    (N : OpenNormalSubgroup G) [Finite (G ⧸ (N : Subgroup G))] :
    G →ₜ* TopologicalAbelianization ↥(N : Subgroup G)
ProCGroups.FiniteStepSolvableQuotients.openNormalTransferTopologicalAbelianization

Open normal subgroups transfer through the topological abelianization by taking the appropriate preimage or image under the quotient map.

Source context 3 commands

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

namespace ProCGroups.FiniteStepSolvableQuotients
open ProCGroups.Abelian ProCGroups.ProC
universe u v
def openNormalTransferTopologicalAbelianization
    {G : Type u} [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
    (N : OpenNormalSubgroup G) [Finite (G ⧸ (N : Subgroup G))] :
    TopologicalAbelianization G →ₜ* TopologicalAbelianization ↥(N : Subgroup G)
ProCGroups.FiniteStepSolvableQuotients.openNormalTransferTopologicalAbelianization_eq_pow_of_fixed

Transfer sends a fixed point to the \(|G/N|\)-th power of that point.

Source context 3 commands

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

namespace ProCGroups.FiniteStepSolvableQuotients
open ProCGroups.Abelian ProCGroups.ProC
universe u v
theorem openNormalTransferTopologicalAbelianization_eq_pow_of_fixed
    {G : Type u} [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
    (N : OpenNormalSubgroup G) [Finite (G ⧸ (N : Subgroup G))]
    {a : TopologicalAbelianization ↥(N : Subgroup G)}
    (hfix :
      ∀ q : G ⧸ (N : Subgroup G),
        quotientConjugationTopologicalAbelianizationMap (G := G) (N := (N : Subgroup G)) q a = a) :
    openNormalTransferTopologicalAbelianization (G := G) N
      (TopologicalAbelianization.map
        { toMonoidHom := (N : Subgroup G).subtype
          continuous_toFun := continuous_subtype_val } a) =
      a ^ Nat.card (G ⧸ (N : Subgroup G))
ProCGroups.FiniteStepSolvableQuotients.openNormalCharacterTransfer

Transfer of an arbitrary continuous character with commutative values.

Source context 3 commands

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

namespace ProCGroups.FiniteStepSolvableQuotients
open ProCGroups.Abelian ProCGroups.ProC
universe u v
def openNormalCharacterTransfer
    {G : Type u} [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
    {A : Type v} [TopologicalSpace A] [CommGroup A] [T1Space A]
    (N : OpenNormalSubgroup G) [Finite (G ⧸ (N : Subgroup G))]
    (χ : (N : Subgroup G) →ₜ* A) : G →ₜ* A
ProCGroups.FiniteStepSolvableQuotients.openNormalCharacterTransfer_apply_of_mem

On the open normal subgroup, transfer is the product over conjugates.

Source context 3 commands

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

namespace ProCGroups.FiniteStepSolvableQuotients
open ProCGroups.Abelian ProCGroups.ProC
universe u v
theorem openNormalCharacterTransfer_apply_of_mem
    {G : Type u} [TopologicalSpace G] [Group G] [IsTopologicalGroup G]
    {A : Type v} [TopologicalSpace A] [CommGroup A] [T1Space A]
    (N : OpenNormalSubgroup G) [Finite (G ⧸ (N : Subgroup G))]
    (χ : (N : Subgroup G) →ₜ* A) (n : (N : Subgroup G)) :
    letI : Fintype (G ⧸ (N : Subgroup G)) := Fintype.ofFinite _
    openNormalCharacterTransfer N χ n =
      ∏ q : G ⧸ (N : Subgroup G),
        χ (MulAut.conjNormal ((quotientOpenSubgroupSection (N : Subgroup G) q)⁻¹) n) := by
  classical
  let : Fintype (G ⧸ (N : Subgroup G)) := Fintype.ofFinite _
  change TopologicalAbelianization.lift χ
    (∏ q : G ⧸ (N : Subgroup G),
      TopologicalAbelianization.mk (N : Subgroup G) (openNormalTransferTerm N q n)) = _
  rw [map_prod]
  apply Fintype.prod_congr
  intro q
  rw [TopologicalAbelianization.lift_apply_mk]
  congr 1
  apply Subtype.ext
  have hn : QuotientGroup.mk' (N : Subgroup G) (n : G) = 1 :=
    (QuotientGroup.eq_one_iff (N := (N : Subgroup G)) _).mpr n.property
  change (quotientOpenSubgroupSection (N : Subgroup G)
    (QuotientGroup.mk' (N : Subgroup G) (n : G) * q))⁻¹ * (n : G) *
      quotientOpenSubgroupSection (N : Subgroup G) q = _
  rw [hn, one_mul]
  simp only [MulAut.conjNormal_apply, inv_inv]