Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit f1df14c

Browse files
committed
feat(group_theory/subgroup): normal_closure and gpowers (#2959)
Transfer some more proofs from `deprecated/subgroup` Co-authored-by: Chris Hughes <33847686+ChrisHughes24@users.noreply.github.com>
1 parent 4e1558b commit f1df14c

File tree

2 files changed

+208
-63
lines changed

2 files changed

+208
-63
lines changed

src/deprecated/subgroup.lean

Lines changed: 2 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,6 @@ variables {G : Type*} {H : Type*} {A : Type*} {a a₁ a₂ b c: G}
1313
section group
1414
variables [group G] [add_group A]
1515

16-
@[to_additive]
17-
lemma injective_mul {a : G} : injective ((*) a) :=
18-
assume a₁ a₂ h,
19-
have a⁻¹ * a * a₁ = a⁻¹ * a * a₂, by rw [mul_assoc, mul_assoc, h],
20-
by rwa [inv_mul_self, one_mul, one_mul] at this
21-
2216
section prio
2317
set_option default_priority 100 -- see Note [default priority]
2418
/-- `s` is an additive subgroup: a set containing 0 and closed under addition and negation. -/
@@ -585,45 +579,17 @@ elements of s. It is the smallest normal subgroup containing s. -/
585579
namespace group
586580
variables {s : set G} [group G]
587581

588-
/-- Given an element a, conjugates a is the set of conjugates. -/
589-
def conjugates (a : G) : set G := {b | is_conj a b}
590-
591-
lemma mem_conjugates_self {a : G} : a ∈ conjugates a := is_conj_refl _
592-
593-
/-- Given a set s, conjugates_of_set s is the set of all conjugates of
594-
the elements of s. -/
595-
def conjugates_of_set (s : set G) : set G := ⋃ a ∈ s, conjugates a
596-
597-
lemma mem_conjugates_of_set_iff {x : G} : x ∈ conjugates_of_set s ↔ ∃ a ∈ s, is_conj a x :=
598-
set.mem_bUnion_iff
599-
600-
theorem subset_conjugates_of_set : s ⊆ conjugates_of_set s :=
601-
λ (x : G) (h : x ∈ s), mem_conjugates_of_set_iff.2 ⟨x, h, is_conj_refl _⟩
602-
603-
theorem conjugates_of_set_mono {s t : set G} (h : s ⊆ t) :
604-
conjugates_of_set s ⊆ conjugates_of_set t :=
605-
set.bUnion_subset_bUnion_left h
606-
607582
lemma conjugates_subset {t : set G} [normal_subgroup t] {a : G} (h : a ∈ t) : conjugates a ⊆ t :=
608583
λ x ⟨c,w⟩,
609584
begin
610585
have H := normal_subgroup.normal a h c,
611586
rwa ←w,
612587
end
613588

614-
theorem conjugates_of_set_subset {s t : set G} [normal_subgroup t] (h : s ⊆ t) :
589+
theorem conjugates_of_set_subset' {s t : set G} [normal_subgroup t] (h : s ⊆ t) :
615590
conjugates_of_set s ⊆ t :=
616591
set.bUnion_subset (λ x H, conjugates_subset (h H))
617592

618-
/-- The set of conjugates of s is closed under conjugation. -/
619-
lemma conj_mem_conjugates_of_set {x c : G} :
620-
x ∈ conjugates_of_set s → (c * x * c⁻¹ ∈ conjugates_of_set s) :=
621-
λ H,
622-
begin
623-
rcases (mem_conjugates_of_set_iff.1 H) with ⟨a,h₁,h₂⟩,
624-
exact mem_conjugates_of_set_iff.2 ⟨a, h₁, is_conj_trans h₂ ⟨c,rfl⟩⟩,
625-
end
626-
627593
/-- The normal closure of a set s is the subgroup closure of all the conjugates of
628594
elements of s. It is the smallest normal subgroup containing s. -/
629595
def normal_closure (s : set G) : set G := closure (conjugates_of_set s)
@@ -657,7 +623,7 @@ theorem normal_closure_subset {s t : set G} [normal_subgroup t] (h : s ⊆ t) :
657623
λ a w,
658624
begin
659625
induction w with x hx x hx ihx x y hx hy ihx ihy,
660-
{exact (conjugates_of_set_subset h $ hx)},
626+
{exact (conjugates_of_set_subset' h $ hx)},
661627
{exact is_submonoid.one_mem},
662628
{exact is_subgroup.inv_mem ihx},
663629
{exact is_submonoid.mul_mem ihx ihy}

0 commit comments

Comments
 (0)