Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
c688fc8
feat(GroupTheory/PCore): define the `p`-core of a group
kim-em May 24, 2026
62d7872
feat(GroupTheory/PCore): add Sylow alignment for finite groups
kim-em May 24, 2026
72e9dca
chore(GroupTheory/PCore): clean up proofs
kim-em May 24, 2026
6df9a07
refactor(GroupTheory/PCore): apply Codex review suggestions
kim-em May 24, 2026
c92a8ed
refactor(GroupTheory/PCore): add iff versions completing the API
kim-em May 24, 2026
56e59c6
feat(GroupTheory/PCore): add map/comap API for group homomorphisms
kim-em May 25, 2026
43ece1e
chore(GroupTheory/PCore): rename directed_normal_isPGroup → directed_…
kim-em May 25, 2026
e013ea0
chore(Subgroup/Pointwise): make normal_iSup_normal @[to_additive]
kim-em May 25, 2026
55f545f
refactor(GroupTheory/PCore): drop Finite/Fact hypotheses from Sylow a…
kim-em May 25, 2026
9a62cc0
feat(GroupTheory/PCore): add pCore_zero and pCore_one
kim-em May 25, 2026
038ce9c
chore(GroupTheory/PCore): tighten normal_iSup_normal mul case + fix c…
kim-em May 25, 2026
157d7fc
chore(GroupTheory/PCore): tighten module docstring
kim-em May 25, 2026
bf6453f
chore(GroupTheory/PCore): make Nonempty subtype instance private
kim-em May 25, 2026
b17a189
refactor(GroupTheory/PCore): mark public/expose per declaration
kim-em May 25, 2026
70e0192
refactor(GroupTheory/PCore): use public section, keep @[expose] on pC…
kim-em May 25, 2026
717905d
refactor(GroupTheory/PCore): take a subgroup, return a Subgroup H
kim-em May 28, 2026
0abfffa
feat(GroupTheory/PCore): characteristic instance, map equality, Sylow…
kim-em May 28, 2026
93f5a0f
Merge remote-tracking branch 'origin/master' into kim-em/p-core
kim-em Jun 4, 2026
2b0a03c
refactor(GroupTheory/PCore): use Subgroup.iSup_normal from master
kim-em Jun 4, 2026
478a714
refactor(GroupTheory/PCore): return Subgroup G; state normality via s…
kim-em Jun 4, 2026
7e7afa0
refactor(GroupTheory/PCore): tighten API after review
kim-em Jun 4, 2026
b1fc61e
feat(Algebra/Group/Subgroup/Map): subgroupOf commutes with map/comap …
kim-em Jun 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Mathlib.lean
Original file line number Diff line number Diff line change
Expand Up @@ -4779,6 +4779,7 @@ public import Mathlib.GroupTheory.OrderOfElement
public import Mathlib.GroupTheory.OreLocalization.Basic
public import Mathlib.GroupTheory.OreLocalization.Cardinality
public import Mathlib.GroupTheory.OreLocalization.OreSet
public import Mathlib.GroupTheory.PCore
public import Mathlib.GroupTheory.PGroup
public import Mathlib.GroupTheory.Perm.Basic
public import Mathlib.GroupTheory.Perm.Centralizer
Expand Down
5 changes: 5 additions & 0 deletions Mathlib/Algebra/Group/Subgroup/Ker.lean
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,11 @@ theorem map_injective_of_ker_le {H K : Subgroup G} (hH : f.ker ≤ H) (hK : f.ke
theorem ker_subgroupMap : (f.subgroupMap H).ker = f.ker.subgroupOf H :=
ext fun _ ↦ Subtype.ext_iff

@[to_additive]
theorem ker_subgroupComap (H' : Subgroup N) :
(f.subgroupComap H').ker = f.ker.subgroupOf (H'.comap f) :=
ext fun _ ↦ Subtype.ext_iff

@[to_additive]
theorem closure_preimage_eq_top (s : Set G) : closure ((closure s).subtype ⁻¹' s) = ⊤ := by
simp
Expand Down
25 changes: 25 additions & 0 deletions Mathlib/Algebra/Group/Subgroup/Map.lean
Original file line number Diff line number Diff line change
Expand Up @@ -589,4 +589,29 @@ theorem equivMapOfInjective_coe_mulEquiv (H : Subgroup G) (e : G ≃* G') :
ext
rfl

/-- The image of the relative subgroup `K.subgroupOf H` under the restricted map `f.subgroupMap H`
is the restriction of the image `K.map f` to `H.map f`. -/
@[to_additive /-- The image of the relative additive subgroup `K.addSubgroupOf H` under the
restricted map `f.addSubgroupMap H` is the restriction of `K.map f` to `H.map f`. -/]
theorem subgroupOf_map_subgroupMap (f : G →* N) {K H : Subgroup G} (hK : K ≤ H) :
(K.subgroupOf H).map (f.subgroupMap H) = (K.map f).subgroupOf (H.map f) := by
ext ⟨y, hy⟩
rw [mem_subgroupOf]
simp only [mem_map, mem_subgroupOf]
constructor
· rintro ⟨⟨x, hxH⟩, hxK, hxy⟩
exact ⟨x, hxK, by simpa using congrArg Subtype.val hxy⟩
· rintro ⟨x, hxK, rfl⟩
exact ⟨⟨x, hK hxK⟩, hxK, by ext; rfl⟩

/-- The preimage of the relative subgroup `K.subgroupOf H'` under the restricted map
`f.subgroupComap H'` is the restriction of the preimage `K.comap f` to `H'.comap f`. -/
@[to_additive /-- The preimage of the relative additive subgroup `K.addSubgroupOf H'` under the
restricted map `f.addSubgroupComap H'` is the restriction of `K.comap f` to `H'.comap f`. -/]
theorem subgroupOf_comap_subgroupComap (f : G →* N) (K H' : Subgroup N) :
(K.subgroupOf H').comap (f.subgroupComap H') = (K.comap f).subgroupOf (H'.comap f) := by
ext ⟨x, hx⟩
rw [mem_subgroupOf, mem_comap, mem_comap, mem_subgroupOf]
rfl

end Subgroup
Loading
Loading