@@ -82,7 +82,7 @@ theorem commutator_def (H₁ H₂ : Subgroup G) :
8282 ⁅H₁, H₂⁆ = closure { g | ∃ g₁ ∈ H₁, ∃ g₂ ∈ H₂, ⁅g₁, g₂⁆ = g } :=
8383 rfl
8484
85- variable {g₁ g₂ g₃} {H₁ H₂ H₃ K₁ K₂ : Subgroup G}
85+ variable {g₁ g₂ g₃} {H H ₁ H₂ H₃ K₁ K₂ : Subgroup G}
8686
8787@[to_additive]
8888theorem commutator_mem_commutator (h₁ : g₁ ∈ H₁) (h₂ : g₂ ∈ H₂) : ⁅g₁, g₂⁆ ∈ ⁅H₁, H₂⁆ :=
@@ -156,6 +156,15 @@ theorem commutator_le_right [h : H₂.Normal] : ⁅H₁, H₂⁆ ≤ H₂ :=
156156theorem commutator_le_left [H₁.Normal] : ⁅H₁, H₂⁆ ≤ H₁ :=
157157 commutator_comm H₂ H₁ ▸ commutator_le_right H₂ H₁
158158
159+ @[to_additive]
160+ theorem commutator_top_left_le_iff : ⁅(⊤ : Subgroup G), H⁆ ≤ H ↔ H.Normal := by
161+ refine ⟨fun hle ↦ ⟨fun h hh g ↦ ?_⟩, fun h ↦ commutator_le_right ⊤ H⟩
162+ exact (H.mul_mem_cancel_right <| H.inv_mem hh).mp <| commutator_le.mp hle g trivial h hh
163+
164+ @[to_additive]
165+ theorem commutator_top_right_le_iff : ⁅H, ⊤⁆ ≤ H ↔ H.Normal :=
166+ commutator_comm H ⊤ ▸ commutator_top_left_le_iff
167+
159168@ [to_additive (attr := simp)]
160169theorem commutator_bot_left : ⁅(⊥ : Subgroup G), H₁⁆ = ⊥ :=
161170 le_bot_iff.mp (commutator_le_left ⊥ H₁)
@@ -263,6 +272,9 @@ variable (G)
263272def commutator : Subgroup G := ⁅(⊤ : Subgroup G), ⊤⁆
264273deriving Subgroup.Normal, Subgroup.Characteristic
265274
275+ attribute [to_additive] instNormalCommutator
276+ attribute [to_additive] instCharacteristicCommutator
277+
266278@[to_additive]
267279lemma commutator_def : commutator G = ⁅(⊤ : Subgroup G), ⊤⁆ :=
268280 rfl
@@ -286,6 +298,11 @@ variable {G} in
286298lemma Subgroup.commutator_le_self (H : Subgroup G) : ⁅H, H⁆ ≤ H :=
287299 H.map_subtype_commutator.symm.trans_le (map_subtype_le _)
288300
301+ @[to_additive]
302+ theorem Subgroup.Normal.of_commutator_le {H : Subgroup G} (h : _root_.commutator G ≤ H) :
303+ H.Normal :=
304+ commutator_top_left_le_iff.mp <| commutator_mono le_top le_top |>.trans h
305+
289306@[to_additive]
290307theorem commutator_eq_bot_iff_center_eq_top : commutator G = ⊥ ↔ Subgroup.center G = ⊤ := by
291308 simp [commutator, Subgroup.commutator_eq_bot_iff_le_centralizer]
0 commit comments