@@ -337,26 +337,30 @@ theorem mem_normalizer_iff_conj_image_eq {s : Set G} {g : G} :
337337 refine forall_congr' fun h ↦ ?_
338338 simp_rw [mul_inv_eq_iff_eq_mul, ← eq_inv_mul_iff_mul_eq, ← mul_assoc, exists_eq_right, iff_comm]
339339
340- theorem _root_.AddSubgroup.mem_normalizer_iff_conj_image_eq {G : Type *} [AddGroup G] {s : Set G}
340+ theorem _root_.AddSubgroup.mem_normalizer_iff_addConj_image_eq {G : Type *} [AddGroup G] {s : Set G}
341341 {g : G} : g ∈ AddSubgroup.normalizer s ↔ AddAut.conj g '' s = s := by
342342 simp_rw [AddSubgroup.mem_set_normalizer_iff'', Set.ext_iff, Set.mem_image, AddAut.conj_apply]
343343 refine forall_congr' fun h ↦ ?_
344344 simp_rw [add_neg_eq_iff_eq_add, ← eq_neg_add_iff_add_eq, ← add_assoc, exists_eq_right, iff_comm]
345345
346+ @ [deprecated (since := "2026-05-12" )]
347+ alias _root_.AddSubgroup.mem_normalizer_iff_conj_image_eq :=
348+ AddSubgroup.mem_normalizer_iff_addConj_image_eq
349+
346350theorem normalizer_le_normalizer_closure (s : Set G) : normalizer s ≤ normalizer (closure s) := by
347351 intro g hg
348352 have : MulAut.conj g '' (closure s) = closure (MulAut.conj g '' s) :=
349- congr(SetLike.coe $(MulAut.conj g |>.toMonoidHom.map_closure s))
353+ congr($(MulAut.conj g |>.toMonoidHom.map_closure s))
350354 rw [mem_normalizer_iff_conj_image_eq.mp hg] at this
351355 rwa [mem_normalizer_iff_conj_image_eq]
352356
353357theorem _root_.AddSubgroup.normalizer_le_normalizer_closure {G : Type *} [AddGroup G] (s : Set G) :
354358 AddSubgroup.normalizer s ≤ AddSubgroup.normalizer (AddSubgroup.closure s) := by
355359 intro g hg
356360 have : AddAut.conj g '' (AddSubgroup.closure s) = AddSubgroup.closure (AddAut.conj g '' s) :=
357- congr(SetLike.coe $(AddAut.conj g |>.toAddMonoidHom.map_closure s))
358- rw [AddSubgroup.mem_normalizer_iff_conj_image_eq .mp hg] at this
359- rwa [AddSubgroup.mem_normalizer_iff_conj_image_eq ]
361+ congr($(AddAut.conj g |>.toAddMonoidHom.map_closure s))
362+ rw [AddSubgroup.mem_normalizer_iff_addConj_image_eq .mp hg] at this
363+ rwa [AddSubgroup.mem_normalizer_iff_addConj_image_eq ]
360364
361365variable {H}
362366
@@ -371,6 +375,39 @@ variable (H) in
371375theorem normalizer_eq_top [h : H.Normal] : normalizer (H : Set G) = ⊤ :=
372376 normalizer_eq_top_iff.mpr h
373377
378+ @[to_additive]
379+ theorem le_set_normalizer_iff {s : Set G} :
380+ H ≤ normalizer s ↔ ∀ h ∈ H, ∀ g ∈ s, h * g * h⁻¹ ∈ s := by
381+ refine ⟨fun hH h hh g hg ↦ hH hh g |>.mp hg, fun hH h hh k ↦ ⟨fun hk ↦ hH h hh k hk, fun hk ↦ ?_⟩⟩
382+ simpa [mul_assoc] using hH h⁻¹ (inv_mem hh) _ hk
383+
384+ @[to_additive]
385+ theorem le_normalizer_iff : H ≤ normalizer K ↔ ∀ h ∈ H, ∀ k ∈ K, h * k * h⁻¹ ∈ K := by
386+ refine ⟨fun hH h hh g hg ↦ hH hh g |>.mp hg, fun hH h hh k ↦ ⟨fun hk ↦ hH h hh k hk, fun hk ↦ ?_⟩⟩
387+ simpa [mul_assoc] using hH h⁻¹ (inv_mem hh) _ hk
388+
389+ theorem le_normalizer_closure_iff {s : Set G} :
390+ H ≤ normalizer (closure s) ↔ ∀ h ∈ H, ∀ g ∈ s, h * g * h⁻¹ ∈ closure s := by
391+ refine ⟨fun hH h hh g hg ↦ hH hh g |>.mp <| mem_closure_of_mem hg, fun hH h hh ↦ ?_⟩
392+ have : MulAut.conj h '' (closure s) = closure (MulAut.conj h '' s) :=
393+ congr($(MulAut.conj h |>.toMonoidHom.map_closure s))
394+ rw [mem_normalizer_iff_conj_image_eq, this]
395+ apply subset_antisymm <| by simpa using hH h hh
396+ rw [SetLike.coe_subset_coe, closure_le, ← this]
397+ exact fun g hg ↦ ⟨_, hH _ (inv_mem hh) g hg, by simp [mul_assoc]⟩
398+
399+ theorem _root_.AddSubgroup.le_normalizer_closure_iff {G : Type *} [AddGroup G] {H : AddSubgroup G}
400+ {s : Set G} :
401+ H ≤ AddSubgroup.normalizer (AddSubgroup.closure s) ↔
402+ ∀ h ∈ H, ∀ g ∈ s, h + g + -h ∈ AddSubgroup.closure s := by
403+ refine ⟨fun hH h hh g hg ↦ hH hh g |>.mp <| AddSubgroup.mem_closure_of_mem hg, fun hH h hh ↦ ?_⟩
404+ have : AddAut.conj h '' (AddSubgroup.closure s) = AddSubgroup.closure (AddAut.conj h '' s) :=
405+ congr($(AddAut.conj h |>.toAddMonoidHom.map_closure s))
406+ rw [AddSubgroup.mem_normalizer_iff_addConj_image_eq, this]
407+ apply subset_antisymm <| by simpa using hH h hh
408+ rw [SetLike.coe_subset_coe, AddSubgroup.closure_le, ← this]
409+ exact fun g hg ↦ ⟨_, hH _ (neg_mem hh) g hg, by simp [add_assoc]⟩
410+
374411variable {N : Type *} [Group N]
375412
376413/-- The preimage of the normalizer is contained in the normalizer of the preimage. -/
0 commit comments