English
range of kerParam equals the centralizer range under the subtype map.
Русский
образ kerParam равен образу центральизатора через отображение подмножества.
LaTeX
$$kerParam_range_eq$$
Lean4
theorem kerParam_range_eq : (kerParam g).range = (toPermHom g).ker.map (Subgroup.subtype _) :=
by
apply le_antisymm
· rw [kerParam, MonoidHom.noncommCoprod_range, sup_le_iff, noncommPiCoprod_range, iSup_le_iff]
simp only [zpowers_le]
constructor
· rintro - ⟨a, rfl⟩
refine ⟨⟨ofSubtype a, ?_⟩, ?_, rfl⟩
· rw [mem_centralizer_singleton_iff]
exact Disjoint.commute (disjoint_iff_disjoint_support.mpr (ofSubtype_support_disjoint a))
·
exact
Perm.ext fun x ↦
Subtype.ext
(disjoint_iff_disjoint_support.mpr
((ofSubtype_support_disjoint a).mono_right
(mem_cycleFactorsFinset_support_le x.2))).commute.mul_inv_cancel
· intro i
refine ⟨⟨i, mem_centralizer_singleton_iff.mpr (self_mem_cycle_factors_commute i.2)⟩, ?_, rfl⟩
exact Perm.ext fun x ↦ Subtype.ext (cycleFactorsFinset_mem_commute' g i.2 x.2).mul_inv_cancel
· rintro - ⟨p, hp, rfl⟩
simp only [coe_subtype]
set u : Perm (Function.fixedPoints g) :=
subtypePerm p (fun x ↦ apply_mem_fixedPoints_iff_mem_of_mem_centralizer p.2)
simp only [SetLike.mem_coe, mem_ker_toPermHom_iff, IsCycle.forall_commute_iff] at hp
set v : (c : g.cycleFactorsFinset) → (Subgroup.zpowers c.val) := fun c =>
⟨ofSubtype (p.1.subtypePerm (Classical.choose (hp c.val c.prop))), Classical.choose_spec (hp c.val c.prop)⟩
use (u, v)
ext x
rw [kerParam_apply]
split_ifs with hx
· rw [cycleOf_mem_cycleFactorsFinset_iff, mem_support] at hx
rw [ofSubtype_apply_of_mem, subtypePerm_apply]
rwa [mem_support, cycleOf_apply_self, ne_eq]
· rw [cycleOf_mem_cycleFactorsFinset_iff, notMem_support] at hx
rwa [ofSubtype_apply_of_mem, subtypePerm_apply]