File: Mathlib/Algebra/Group/Subgroup/Pointwise.lean

full_name: inv_coe_set
code: @[to_additive (attr := simp, norm_cast)]
theorem inv_coe_set [InvolutiveInv G] [SetLike S G] [InvMemClass S G] {H : S} : (H : Set G)⁻¹ = H 
goal: (↑H)⁻¹ = ↑H

full_name: neg_coe_set
code: @[to_additive (attr := simp, norm_cast)]
theorem inv_coe_set [InvolutiveInv G] [SetLike S G] [InvMemClass S G] {H : S} : (H : Set G)⁻¹ = H 
goal: -↑H = ↑H

full_name: vadd_coe_set
code: @[to_additive (attr := simp)]
lemma smul_coe_set [Group G] [SetLike S G] [SubgroupClass S G] {s : S} {a : G} (ha : a ∈ s) :
    a • (s : Set G) = s 
goal: a +ᵥ ↑s = ↑s

full_name: smul_coe_set
code: @[to_additive (attr := simp)]
lemma smul_coe_set [Group G] [SetLike S G] [SubgroupClass S G] {s : S} {a : G} (ha : a ∈ s) :
    a • (s : Set G) = s 
goal: a • ↑s = ↑s

full_name: op_vadd_coe_set
code: @[to_additive (attr := simp)]
lemma op_smul_coe_set [Group G] [SetLike S G] [SubgroupClass S G] {s : S} {a : G} (ha : a ∈ s) :
    MulOpposite.op a • (s : Set G) = s 
goal: AddOpposite.op a +ᵥ ↑s = ↑s

full_name: op_smul_coe_set
code: @[to_additive (attr := simp)]
lemma op_smul_coe_set [Group G] [SetLike S G] [SubgroupClass S G] {s : S} {a : G} (ha : a ∈ s) :
    MulOpposite.op a • (s : Set G) = s 
goal: MulOpposite.op a • ↑s = ↑s

full_name: coe_add_coe
code: @[to_additive (attr := simp, norm_cast)]
lemma coe_mul_coe [SetLike S G] [DivInvMonoid G] [SubgroupClass S G] (H : S) :
    H * H = (H : Set G) 
goal: ↑H + ↑H = ↑H

full_name: coe_mul_coe
code: @[to_additive (attr := simp, norm_cast)]
lemma coe_mul_coe [SetLike S G] [DivInvMonoid G] [SubgroupClass S G] (H : S) :
    H * H = (H : Set G) 
goal: ↑H * ↑H = ↑H

full_name: coe_sub_coe
code: @[to_additive (attr := simp, norm_cast)]
lemma coe_div_coe [SetLike S G] [DivisionMonoid G] [SubgroupClass S G] (H : S) :
    H / H = (H : Set G) 
goal: ↑H - ↑H = ↑H

full_name: coe_div_coe
code: @[to_additive (attr := simp, norm_cast)]
lemma coe_div_coe [SetLike S G] [DivisionMonoid G] [SubgroupClass S G] (H : S) :
    H / H = (H : Set G) 
goal: ↑H / ↑H = ↑H

full_name: AddSubgroup.neg_subset_closure
code: @[to_additive (attr := simp)]
theorem inv_subset_closure (S : Set G) : S⁻¹ ⊆ closure S 
goal: -S ⊆ ↑(AddSubgroup.closure S)

full_name: Subgroup.inv_subset_closure
code: @[to_additive (attr := simp)]
theorem inv_subset_closure (S : Set G) : S⁻¹ ⊆ closure S 
goal: S⁻¹ ⊆ ↑(Subgroup.closure S)

full_name: Subgroup.closure_toSubmonoid
code: @[to_additive]
theorem closure_toSubmonoid (S : Set G) :
    (closure S).toSubmonoid = Submonoid.closure (S ∪ S⁻¹) 
goal: (Subgroup.closure S).toSubmonoid = Submonoid.closure (S ∪ S⁻¹)

full_name: AddSubgroup.closure_toAddSubmonoid
code: @[to_additive]
theorem closure_toSubmonoid (S : Set G) :
    (closure S).toSubmonoid = Submonoid.closure (S ∪ S⁻¹) 
goal: (AddSubgroup.closure S).toAddSubmonoid = AddSubmonoid.closure (S ∪ -S)

full_name: Subgroup.closure_induction_left
code: /-- For subgroups generated by a single element, see the simpler `zpow_induction_left`. -/
@[to_additive (attr := elab_as_elim)
  "For additive subgroups generated by a single element, see the simpler
  `zsmul_induction_left`."]
theorem closure_induction_left {p : (x : G) → x ∈ closure s → Prop} (one : p 1 (one_mem _))
    (mul_left : ∀ x (hx : x ∈ s), ∀ (y) hy, p y hy → p (x * y) (mul_mem (subset_closure hx) hy))
    (mul_left_inv : ∀ x (hx : x ∈ s), ∀ (y) hy, p y hy →
      p (x⁻¹ * y) (mul_mem (inv_mem (subset_closure hx)) hy))
    {x : G} (h : x ∈ closure s) : p x h 
goal: p x h

full_name: AddSubgroup.closure_induction_left
code: /-- For subgroups generated by a single element, see the simpler `zpow_induction_left`. -/
@[to_additive (attr := elab_as_elim)
  "For additive subgroups generated by a single element, see the simpler
  `zsmul_induction_left`."]
theorem closure_induction_left {p : (x : G) → x ∈ closure s → Prop} (one : p 1 (one_mem _))
    (mul_left : ∀ x (hx : x ∈ s), ∀ (y) hy, p y hy → p (x * y) (mul_mem (subset_closure hx) hy))
    (mul_left_inv : ∀ x (hx : x ∈ s), ∀ (y) hy, p y hy →
      p (x⁻¹ * y) (mul_mem (inv_mem (subset_closure hx)) hy))
    {x : G} (h : x ∈ closure s) : p x h 
goal: p x h

full_name: AddSubgroup.closure_induction_right
code: /-- For subgroups generated by a single element, see the simpler `zpow_induction_right`. -/
@[to_additive (attr := elab_as_elim)
  "For additive subgroups generated by a single element, see the simpler
  `zsmul_induction_right`."]
theorem closure_induction_right {p : (x : G) → x ∈ closure s → Prop} (one : p 1 (one_mem _))
    (mul_right : ∀ (x) hx, ∀ y (hy : y ∈ s), p x hx → p (x * y) (mul_mem hx (subset_closure hy)))
    (mul_right_inv : ∀ (x) hx, ∀ y (hy : y ∈ s), p x hx →
      p (x * y⁻¹) (mul_mem hx (inv_mem (subset_closure hy))))
    {x : G} (h : x ∈ closure s) : p x h 
goal: p x h

full_name: Subgroup.closure_induction_right
code: /-- For subgroups generated by a single element, see the simpler `zpow_induction_right`. -/
@[to_additive (attr := elab_as_elim)
  "For additive subgroups generated by a single element, see the simpler
  `zsmul_induction_right`."]
theorem closure_induction_right {p : (x : G) → x ∈ closure s → Prop} (one : p 1 (one_mem _))
    (mul_right : ∀ (x) hx, ∀ y (hy : y ∈ s), p x hx → p (x * y) (mul_mem hx (subset_closure hy)))
    (mul_right_inv : ∀ (x) hx, ∀ y (hy : y ∈ s), p x hx →
      p (x * y⁻¹) (mul_mem hx (inv_mem (subset_closure hy))))
    {x : G} (h : x ∈ closure s) : p x h 
goal: p x h

full_name: Subgroup.closure_inv
code: @[to_additive (attr := simp)]
theorem closure_inv (s : Set G) : closure s⁻¹ = closure s 
goal: Subgroup.closure s⁻¹ = Subgroup.closure s

full_name: AddSubgroup.closure_neg
code: @[to_additive (attr := simp)]
theorem closure_inv (s : Set G) : closure s⁻¹ = closure s 
goal: AddSubgroup.closure (-s) = AddSubgroup.closure s

full_name: Subgroup.closure_induction''
code: /-- An induction principle for closure membership. If `p` holds for `1` and all elements of
`k` and their inverse, and is preserved under multiplication, then `p` holds for all elements of
the closure of `k`. -/
@[to_additive (attr := elab_as_elim)
  "An induction principle for additive closure membership. If `p` holds for `0` and all
  elements of `k` and their negation, and is preserved under addition, then `p` holds for all
  elements of the additive closure of `k`."]
theorem closure_induction'' {p : (g : G) → g ∈ closure s → Prop}
    (mem : ∀ x (hx : x ∈ s), p x (subset_closure hx))
    (inv_mem : ∀ x (hx : x ∈ s), p x⁻¹ (inv_mem (subset_closure hx)))
    (one : p 1 (one_mem _))
    (mul : ∀ x y hx hy, p x hx → p y hy → p (x * y) (mul_mem hx hy))
    {x} (h : x ∈ closure s) : p x h 
goal: p x h

full_name: AddSubgroup.closure_induction''
code: /-- An induction principle for closure membership. If `p` holds for `1` and all elements of
`k` and their inverse, and is preserved under multiplication, then `p` holds for all elements of
the closure of `k`. -/
@[to_additive (attr := elab_as_elim)
  "An induction principle for additive closure membership. If `p` holds for `0` and all
  elements of `k` and their negation, and is preserved under addition, then `p` holds for all
  elements of the additive closure of `k`."]
theorem closure_induction'' {p : (g : G) → g ∈ closure s → Prop}
    (mem : ∀ x (hx : x ∈ s), p x (subset_closure hx))
    (inv_mem : ∀ x (hx : x ∈ s), p x⁻¹ (inv_mem (subset_closure hx)))
    (one : p 1 (one_mem _))
    (mul : ∀ x y hx hy, p x hx → p y hy → p (x * y) (mul_mem hx hy))
    {x} (h : x ∈ closure s) : p x h 
goal: p x h

full_name: AddSubgroup.iSup_induction
code: /-- An induction principle for elements of `⨆ i, S i`.
If `C` holds for `1` and all elements of `S i` for all `i`, and is preserved under multiplication,
then it holds for all elements of the supremum of `S`. -/
@[to_additive (attr := elab_as_elim) " An induction principle for elements of `⨆ i, S i`.
If `C` holds for `0` and all elements of `S i` for all `i`, and is preserved under addition,
then it holds for all elements of the supremum of `S`. "]
theorem iSup_induction {ι : Sort*} (S : ι → Subgroup G) {C : G → Prop} {x : G} (hx : x ∈ ⨆ i, S i)
    (mem : ∀ (i), ∀ x ∈ S i, C x) (one : C 1) (mul : ∀ x y, C x → C y → C (x * y)) : C x 
goal: C x

full_name: Subgroup.iSup_induction
code: /-- An induction principle for elements of `⨆ i, S i`.
If `C` holds for `1` and all elements of `S i` for all `i`, and is preserved under multiplication,
then it holds for all elements of the supremum of `S`. -/
@[to_additive (attr := elab_as_elim) " An induction principle for elements of `⨆ i, S i`.
If `C` holds for `0` and all elements of `S i` for all `i`, and is preserved under addition,
then it holds for all elements of the supremum of `S`. "]
theorem iSup_induction {ι : Sort*} (S : ι → Subgroup G) {C : G → Prop} {x : G} (hx : x ∈ ⨆ i, S i)
    (mem : ∀ (i), ∀ x ∈ S i, C x) (one : C 1) (mul : ∀ x y, C x → C y → C (x * y)) : C x 
goal: C x

full_name: Subgroup.iSup_induction'
code: /-- A dependent version of `Subgroup.iSup_induction`. -/
@[to_additive (attr := elab_as_elim) "A dependent version of `AddSubgroup.iSup_induction`. "]
theorem iSup_induction' {ι : Sort*} (S : ι → Subgroup G) {C : ∀ x, (x ∈ ⨆ i, S i) → Prop}
    (hp : ∀ (i), ∀ x (hx : x ∈ S i), C x (mem_iSup_of_mem i hx)) (h1 : C 1 (one_mem _))
    (hmul : ∀ x y hx hy, C x hx → C y hy → C (x * y) (mul_mem ‹_› ‹_›)) {x : G}
    (hx : x ∈ ⨆ i, S i) : C x hx 
goal: C x hx

full_name: AddSubgroup.iSup_induction'
code: /-- A dependent version of `Subgroup.iSup_induction`. -/
@[to_additive (attr := elab_as_elim) "A dependent version of `AddSubgroup.iSup_induction`. "]
theorem iSup_induction' {ι : Sort*} (S : ι → Subgroup G) {C : ∀ x, (x ∈ ⨆ i, S i) → Prop}
    (hp : ∀ (i), ∀ x (hx : x ∈ S i), C x (mem_iSup_of_mem i hx)) (h1 : C 1 (one_mem _))
    (hmul : ∀ x y hx hy, C x hx → C y hy → C (x * y) (mul_mem ‹_› ‹_›)) {x : G}
    (hx : x ∈ ⨆ i, S i) : C x hx 
goal: C x hx

full_name: Subgroup.closure_mul_le
code: @[to_additive]
theorem closure_mul_le (S T : Set G) : closure (S * T) ≤ closure S ⊔ closure T 
goal: Subgroup.closure (S * T) ≤ Subgroup.closure S ⊔ Subgroup.closure T

full_name: AddSubgroup.closure_add_le
code: @[to_additive]
theorem closure_mul_le (S T : Set G) : closure (S * T) ≤ closure S ⊔ closure T 
goal: AddSubgroup.closure (S + T) ≤ AddSubgroup.closure S ⊔ AddSubgroup.closure T

full_name: Subgroup.sup_eq_closure_mul
code: @[to_additive]
theorem sup_eq_closure_mul (H K : Subgroup G) : H ⊔ K = closure ((H : Set G) * (K : Set G)) 
goal: H ⊔ K = Subgroup.closure (↑H * ↑K)

full_name: AddSubgroup.sup_eq_closure_add
code: @[to_additive]
theorem sup_eq_closure_mul (H K : Subgroup G) : H ⊔ K = closure ((H : Set G) * (K : Set G)) 
goal: H ⊔ K = AddSubgroup.closure (↑H + ↑K)

full_name: AddSubgroup.set_add_normal_comm
code: @[to_additive]
theorem set_mul_normal_comm (s : Set G) (N : Subgroup G) [hN : N.Normal] :
    s * (N : Set G) = (N : Set G) * s 
goal: s + ↑N = ↑N + s

full_name: Subgroup.set_mul_normal_comm
code: @[to_additive]
theorem set_mul_normal_comm (s : Set G) (N : Subgroup G) [hN : N.Normal] :
    s * (N : Set G) = (N : Set G) * s 
goal: s * ↑N = ↑N * s

full_name: AddSubgroup.add_normal
code: /-- The carrier of `H ⊔ N` is just `↑H * ↑N` (pointwise set product) when `N` is normal. -/
@[to_additive "The carrier of `H ⊔ N` is just `↑H + ↑N` (pointwise set addition)
when `N` is normal."]
theorem mul_normal (H N : Subgroup G) [hN : N.Normal] : (↑(H ⊔ N) : Set G) = H * N 
goal: ↑(H ⊔ N) = ↑H + ↑N

full_name: Subgroup.mul_normal
code: /-- The carrier of `H ⊔ N` is just `↑H * ↑N` (pointwise set product) when `N` is normal. -/
@[to_additive "The carrier of `H ⊔ N` is just `↑H + ↑N` (pointwise set addition)
when `N` is normal."]
theorem mul_normal (H N : Subgroup G) [hN : N.Normal] : (↑(H ⊔ N) : Set G) = H * N 
goal: ↑(H ⊔ N) = ↑H * ↑N

full_name: Subgroup.normal_mul
code: /-- The carrier of `N ⊔ H` is just `↑N * ↑H` (pointwise set product) when `N` is normal. -/
@[to_additive "The carrier of `N ⊔ H` is just `↑N + ↑H` (pointwise set addition)
when `N` is normal."]
theorem normal_mul (N H : Subgroup G) [N.Normal] : (↑(N ⊔ H) : Set G) = N * H 
goal: ↑(N ⊔ H) = ↑N * ↑H

full_name: AddSubgroup.normal_add
code: /-- The carrier of `N ⊔ H` is just `↑N * ↑H` (pointwise set product) when `N` is normal. -/
@[to_additive "The carrier of `N ⊔ H` is just `↑N + ↑H` (pointwise set addition)
when `N` is normal."]
theorem normal_mul (N H : Subgroup G) [N.Normal] : (↑(N ⊔ H) : Set G) = N * H 
goal: ↑(N ⊔ H) = ↑N + ↑H

full_name: Subgroup.mul_inf_assoc
code: @[to_additive]
theorem mul_inf_assoc (A B C : Subgroup G) (h : A ≤ C) :
    (A : Set G) * ↑(B ⊓ C) = (A : Set G) * (B : Set G) ∩ C 
goal: ↑A * ↑(B ⊓ C) = ↑A * ↑B ∩ ↑C

full_name: AddSubgroup.add_inf_assoc
code: @[to_additive]
theorem mul_inf_assoc (A B C : Subgroup G) (h : A ≤ C) :
    (A : Set G) * ↑(B ⊓ C) = (A : Set G) * (B : Set G) ∩ C 
goal: ↑A + ↑(B ⊓ C) = (↑A + ↑B) ∩ ↑C

full_name: AddSubgroup.inf_add_assoc
code: @[to_additive]
theorem inf_mul_assoc (A B C : Subgroup G) (h : C ≤ A) :
    ((A ⊓ B : Subgroup G) : Set G) * C = (A : Set G) ∩ (↑B * ↑C) 
goal: ↑(A ⊓ B) + ↑C = ↑A ∩ (↑B + ↑C)

full_name: Subgroup.inf_mul_assoc
code: @[to_additive]
theorem inf_mul_assoc (A B C : Subgroup G) (h : C ≤ A) :
    ((A ⊓ B : Subgroup G) : Set G) * C = (A : Set G) ∩ (↑B * ↑C) 
goal: ↑(A ⊓ B) * ↑C = ↑A ∩ (↑B * ↑C)

full_name: AddSubgroup.sup_normal
code: @[to_additive]
instance sup_normal (H K : Subgroup G) [hH : H.Normal] [hK : K.Normal] : (H ⊔ K).Normal 
goal: (H ⊔ K).Normal

full_name: Subgroup.sup_normal
code: @[to_additive]
instance sup_normal (H K : Subgroup G) [hH : H.Normal] [hK : K.Normal] : (H ⊔ K).Normal 
goal: (H ⊔ K).Normal

full_name: Subgroup.smul_opposite_image_mul_preimage'
code: @[to_additive]
theorem smul_opposite_image_mul_preimage' (g : G) (h : Gᵐᵒᵖ) (s : Set G) :
    (fun y => h • y) '' ((g * ·) ⁻¹' s) = (g * ·) ⁻¹' ((fun y => h • y) '' s) 
goal: (fun y => h • y) '' ((fun x => g * x) ⁻¹' s) = (fun x => g * x) ⁻¹' ((fun y => h • y) '' s)

full_name: AddSubgroup.vadd_opposite_image_add_preimage'
code: @[to_additive]
theorem smul_opposite_image_mul_preimage' (g : G) (h : Gᵐᵒᵖ) (s : Set G) :
    (fun y => h • y) '' ((g * ·) ⁻¹' s) = (g * ·) ⁻¹' ((fun y => h • y) '' s) 
goal: (fun y => h +ᵥ y) '' ((fun x => g + x) ⁻¹' s) = (fun x => g + x) ⁻¹' ((fun y => h +ᵥ y) '' s)

full_name: Subgroup.smul_opposite_image_mul_preimage
code: @[to_additive]
theorem smul_opposite_image_mul_preimage {H : Subgroup G} (g : G) (h : H.op) (s : Set G) :
    (fun y => h • y) '' ((g * ·) ⁻¹' s) = (g * ·) ⁻¹' ((fun y => h • y) '' s) 
goal: (fun y => h • y) '' ((fun x => g * x) ⁻¹' s) = (fun x => g * x) ⁻¹' ((fun y => h • y) '' s)

full_name: AddSubgroup.vadd_opposite_image_add_preimage
code: @[to_additive]
theorem smul_opposite_image_mul_preimage {H : Subgroup G} (g : G) (h : H.op) (s : Set G) :
    (fun y => h • y) '' ((g * ·) ⁻¹' s) = (g * ·) ⁻¹' ((fun y => h • y) '' s) 
goal: (fun y => h +ᵥ y) '' ((fun x => g + x) ⁻¹' s) = (fun x => g + x) ⁻¹' ((fun y => h +ᵥ y) '' s)

full_name: Subgroup.pointwiseMulAction
code: /-- The action on a subgroup corresponding to applying the action to every element.

This is available as an instance in the `Pointwise` locale. -/
protected def pointwiseMulAction : MulAction α (Subgroup G) 
goal: MulAction α (Subgroup G)

full_name: Subgroup.pointwise_smul_def
code: theorem pointwise_smul_def {a : α} (S : Subgroup G) :
    a • S = S.map (MulDistribMulAction.toMonoidEnd _ _ a) 
goal: a • S = Subgroup.map ((MulDistribMulAction.toMonoidEnd α G) a) S

full_name: Subgroup.coe_pointwise_smul
code: @[simp]
theorem coe_pointwise_smul (a : α) (S : Subgroup G) : ↑(a • S) = a • (S : Set G) 
goal: ↑(a • S) = a • ↑S

full_name: Subgroup.pointwise_smul_toSubmonoid
code: @[simp]
theorem pointwise_smul_toSubmonoid (a : α) (S : Subgroup G) :
    (a • S).toSubmonoid = a • S.toSubmonoid 
goal: (a • S).toSubmonoid = a • S.toSubmonoid

full_name: Subgroup.smul_mem_pointwise_smul
code: theorem smul_mem_pointwise_smul (m : G) (a : α) (S : Subgroup G) : m ∈ S → a • m ∈ a • S 
goal: m ∈ S → a • m ∈ a • S

full_name: Subgroup.instCovariantClassHSMulLe
code: instance : CovariantClass α (Subgroup G) HSMul.hSMul LE.le 
goal: CovariantClass α (Subgroup G) HSMul.hSMul LE.le

full_name: Subgroup.mem_smul_pointwise_iff_exists
code: theorem mem_smul_pointwise_iff_exists (m : G) (a : α) (S : Subgroup G) :
    m ∈ a • S ↔ ∃ s : G, s ∈ S ∧ a • s = m 
goal: m ∈ a • S ↔ ∃ s ∈ S, a • s = m

full_name: Subgroup.smul_bot
code: @[simp]
theorem smul_bot (a : α) : a • (⊥ : Subgroup G) = ⊥ 
goal: a • ⊥ = ⊥

full_name: Subgroup.smul_sup
code: theorem smul_sup (a : α) (S T : Subgroup G) : a • (S ⊔ T) = a • S ⊔ a • T 
goal: a • (S ⊔ T) = a • S ⊔ a • T

full_name: Subgroup.smul_closure
code: theorem smul_closure (a : α) (s : Set G) : a • closure s = closure (a • s) 
goal: a • Subgroup.closure s = Subgroup.closure (a • s)

full_name: Subgroup.pointwise_isCentralScalar
code: instance pointwise_isCentralScalar [MulDistribMulAction αᵐᵒᵖ G] [IsCentralScalar α G] :
    IsCentralScalar α (Subgroup G) 
goal: IsCentralScalar α (Subgroup G)

full_name: Subgroup.conj_smul_le_of_le
code: theorem conj_smul_le_of_le {P H : Subgroup G} (hP : P ≤ H) (h : H) :
    MulAut.conj (h : G) • P ≤ H 
goal: MulAut.conj ↑h • P ≤ H

full_name: Subgroup.conj_smul_subgroupOf
code: theorem conj_smul_subgroupOf {P H : Subgroup G} (hP : P ≤ H) (h : H) :
    MulAut.conj h • P.subgroupOf H = (MulAut.conj (h : G) • P).subgroupOf H 
goal: MulAut.conj h • P.subgroupOf H = (MulAut.conj ↑h • P).subgroupOf H

full_name: Subgroup.smul_mem_pointwise_smul_iff
code: @[simp]
theorem smul_mem_pointwise_smul_iff {a : α} {S : Subgroup G} {x : G} : a • x ∈ a • S ↔ x ∈ S 
goal: a • x ∈ a • S ↔ x ∈ S

full_name: Subgroup.mem_pointwise_smul_iff_inv_smul_mem
code: theorem mem_pointwise_smul_iff_inv_smul_mem {a : α} {S : Subgroup G} {x : G} :
    x ∈ a • S ↔ a⁻¹ • x ∈ S 
goal: x ∈ a • S ↔ a⁻¹ • x ∈ S

full_name: Subgroup.mem_inv_pointwise_smul_iff
code: theorem mem_inv_pointwise_smul_iff {a : α} {S : Subgroup G} {x : G} : x ∈ a⁻¹ • S ↔ a • x ∈ S 
goal: x ∈ a⁻¹ • S ↔ a • x ∈ S

full_name: Subgroup.pointwise_smul_le_pointwise_smul_iff
code: @[simp]
theorem pointwise_smul_le_pointwise_smul_iff {a : α} {S T : Subgroup G} : a • S ≤ a • T ↔ S ≤ T 
goal: a • S ≤ a • T ↔ S ≤ T

full_name: Subgroup.pointwise_smul_subset_iff
code: theorem pointwise_smul_subset_iff {a : α} {S T : Subgroup G} : a • S ≤ T ↔ S ≤ a⁻¹ • T 
goal: a • S ≤ T ↔ S ≤ a⁻¹ • T

full_name: Subgroup.subset_pointwise_smul_iff
code: theorem subset_pointwise_smul_iff {a : α} {S T : Subgroup G} : S ≤ a • T ↔ a⁻¹ • S ≤ T 
goal: S ≤ a • T ↔ a⁻¹ • S ≤ T

full_name: Subgroup.smul_inf
code: @[simp]
theorem smul_inf (a : α) (S T : Subgroup G) : a • (S ⊓ T) = a • S ⊓ a • T 
goal: a • (S ⊓ T) = a • S ⊓ a • T

full_name: Subgroup.equivSMul_apply_coe
code: /-- Applying a `MulDistribMulAction` results in an isomorphic subgroup -/
@[simps!]
def equivSMul (a : α) (H : Subgroup G) : H ≃* (a • H : Subgroup G) 
goal: ↑((Subgroup.equivSMul a H) x) = a • ↑x

full_name: Subgroup.equivSMul
code: /-- Applying a `MulDistribMulAction` results in an isomorphic subgroup -/
@[simps!]
def equivSMul (a : α) (H : Subgroup G) : H ≃* (a • H : Subgroup G) 
goal: ↥H ≃* ↥(a • H)

full_name: Subgroup.equivSMul_symm_apply_coe
code: /-- Applying a `MulDistribMulAction` results in an isomorphic subgroup -/
@[simps!]
def equivSMul (a : α) (H : Subgroup G) : H ≃* (a • H : Subgroup G) 
goal: ↑((Subgroup.equivSMul a H).symm y) = a⁻¹ • ↑y

full_name: Subgroup.subgroup_mul_singleton
code: theorem subgroup_mul_singleton {H : Subgroup G} {h : G} (hh : h ∈ H) : (H : Set G) * {h} = H 
goal: ↑H * {h} = ↑H

full_name: Subgroup.singleton_mul_subgroup
code: theorem singleton_mul_subgroup {H : Subgroup G} {h : G} (hh : h ∈ H) : {h} * (H : Set G) = H 
goal: {h} * ↑H = ↑H

full_name: Subgroup.Normal.conjAct
code: theorem Normal.conjAct {G : Type*} [Group G] {H : Subgroup G} (hH : H.Normal) (g : ConjAct G) :
    g • H = H 
goal: g • H = H

full_name: Subgroup.smul_normal
code: @[simp]
theorem smul_normal (g : G) (H : Subgroup G) [h : Normal H] : MulAut.conj g • H = H 
goal: MulAut.conj g • H = H

full_name: Subgroup.smul_mem_pointwise_smul_iff₀
code: @[simp]
theorem smul_mem_pointwise_smul_iff₀ {a : α} (ha : a ≠ 0) (S : Subgroup G) (x : G) :
    a • x ∈ a • S ↔ x ∈ S 
goal: a • x ∈ a • S ↔ x ∈ S

full_name: Subgroup.mem_pointwise_smul_iff_inv_smul_mem₀
code: theorem mem_pointwise_smul_iff_inv_smul_mem₀ {a : α} (ha : a ≠ 0) (S : Subgroup G) (x : G) :
    x ∈ a • S ↔ a⁻¹ • x ∈ S 
goal: x ∈ a • S ↔ a⁻¹ • x ∈ S

full_name: Subgroup.mem_inv_pointwise_smul_iff₀
code: theorem mem_inv_pointwise_smul_iff₀ {a : α} (ha : a ≠ 0) (S : Subgroup G) (x : G) :
    x ∈ a⁻¹ • S ↔ a • x ∈ S 
goal: x ∈ a⁻¹ • S ↔ a • x ∈ S

full_name: Subgroup.pointwise_smul_le_pointwise_smul_iff₀
code: @[simp]
theorem pointwise_smul_le_pointwise_smul_iff₀ {a : α} (ha : a ≠ 0) {S T : Subgroup G} :
    a • S ≤ a • T ↔ S ≤ T 
goal: a • S ≤ a • T ↔ S ≤ T

full_name: Subgroup.pointwise_smul_le_iff₀
code: theorem pointwise_smul_le_iff₀ {a : α} (ha : a ≠ 0) {S T : Subgroup G} : a • S ≤ T ↔ S ≤ a⁻¹ • T 
goal: a • S ≤ T ↔ S ≤ a⁻¹ • T

full_name: Subgroup.le_pointwise_smul_iff₀
code: theorem le_pointwise_smul_iff₀ {a : α} (ha : a ≠ 0) {S T : Subgroup G} : S ≤ a • T ↔ a⁻¹ • S ≤ T 
goal: S ≤ a • T ↔ a⁻¹ • S ≤ T

full_name: AddSubgroup.pointwiseMulAction
code: /-- The action on an additive subgroup corresponding to applying the action to every element.

This is available as an instance in the `Pointwise` locale. -/
protected def pointwiseMulAction : MulAction α (AddSubgroup A) 
goal: MulAction α (AddSubgroup A)

full_name: AddSubgroup.pointwise_smul_def
code: theorem pointwise_smul_def {a : α} (S : AddSubgroup A) :
    a • S = S.map (DistribMulAction.toAddMonoidEnd _ _ a) 
goal: a • S = AddSubgroup.map ((DistribMulAction.toAddMonoidEnd α A) a) S

full_name: AddSubgroup.coe_pointwise_smul
code: @[simp]
theorem coe_pointwise_smul (a : α) (S : AddSubgroup A) : ↑(a • S) = a • (S : Set A) 
goal: ↑(a • S) = a • ↑S

full_name: AddSubgroup.pointwise_smul_toAddSubmonoid
code: @[simp]
theorem pointwise_smul_toAddSubmonoid (a : α) (S : AddSubgroup A) :
    (a • S).toAddSubmonoid = a • S.toAddSubmonoid 
goal: (a • S).toAddSubmonoid = a • S.toAddSubmonoid

full_name: AddSubgroup.smul_mem_pointwise_smul
code: theorem smul_mem_pointwise_smul (m : A) (a : α) (S : AddSubgroup A) : m ∈ S → a • m ∈ a • S 
goal: m ∈ S → a • m ∈ a • S

full_name: AddSubgroup.mem_smul_pointwise_iff_exists
code: theorem mem_smul_pointwise_iff_exists (m : A) (a : α) (S : AddSubgroup A) :
    m ∈ a • S ↔ ∃ s : A, s ∈ S ∧ a • s = m 
goal: m ∈ a • S ↔ ∃ s ∈ S, a • s = m

full_name: AddSubgroup.pointwise_isCentralScalar
code: instance pointwise_isCentralScalar [DistribMulAction αᵐᵒᵖ A] [IsCentralScalar α A] :
    IsCentralScalar α (AddSubgroup A) 
goal: IsCentralScalar α (AddSubgroup A)

full_name: AddSubgroup.smul_mem_pointwise_smul_iff
code: @[simp]
theorem smul_mem_pointwise_smul_iff {a : α} {S : AddSubgroup A} {x : A} : a • x ∈ a • S ↔ x ∈ S 
goal: a • x ∈ a • S ↔ x ∈ S

full_name: AddSubgroup.mem_pointwise_smul_iff_inv_smul_mem
code: theorem mem_pointwise_smul_iff_inv_smul_mem {a : α} {S : AddSubgroup A} {x : A} :
    x ∈ a • S ↔ a⁻¹ • x ∈ S 
goal: x ∈ a • S ↔ a⁻¹ • x ∈ S

full_name: AddSubgroup.mem_inv_pointwise_smul_iff
code: theorem mem_inv_pointwise_smul_iff {a : α} {S : AddSubgroup A} {x : A} : x ∈ a⁻¹ • S ↔ a • x ∈ S 
goal: x ∈ a⁻¹ • S ↔ a • x ∈ S

full_name: AddSubgroup.pointwise_smul_le_pointwise_smul_iff
code: @[simp]
theorem pointwise_smul_le_pointwise_smul_iff {a : α} {S T : AddSubgroup A} :
    a • S ≤ a • T ↔ S ≤ T 
goal: a • S ≤ a • T ↔ S ≤ T

full_name: AddSubgroup.pointwise_smul_le_iff
code: theorem pointwise_smul_le_iff {a : α} {S T : AddSubgroup A} : a • S ≤ T ↔ S ≤ a⁻¹ • T 
goal: a • S ≤ T ↔ S ≤ a⁻¹ • T

full_name: AddSubgroup.le_pointwise_smul_iff
code: theorem le_pointwise_smul_iff {a : α} {S T : AddSubgroup A} : S ≤ a • T ↔ a⁻¹ • S ≤ T 
goal: S ≤ a • T ↔ a⁻¹ • S ≤ T

full_name: AddSubgroup.smul_mem_pointwise_smul_iff₀
code: @[simp]
theorem smul_mem_pointwise_smul_iff₀ {a : α} (ha : a ≠ 0) (S : AddSubgroup A) (x : A) :
    a • x ∈ a • S ↔ x ∈ S 
goal: a • x ∈ a • S ↔ x ∈ S

full_name: AddSubgroup.mem_pointwise_smul_iff_inv_smul_mem₀
code: theorem mem_pointwise_smul_iff_inv_smul_mem₀ {a : α} (ha : a ≠ 0) (S : AddSubgroup A) (x : A) :
    x ∈ a • S ↔ a⁻¹ • x ∈ S 
goal: x ∈ a • S ↔ a⁻¹ • x ∈ S

full_name: AddSubgroup.mem_inv_pointwise_smul_iff₀
code: theorem mem_inv_pointwise_smul_iff₀ {a : α} (ha : a ≠ 0) (S : AddSubgroup A) (x : A) :
    x ∈ a⁻¹ • S ↔ a • x ∈ S 
goal: x ∈ a⁻¹ • S ↔ a • x ∈ S

full_name: AddSubgroup.pointwise_smul_le_pointwise_smul_iff₀
code: @[simp]
theorem pointwise_smul_le_pointwise_smul_iff₀ {a : α} (ha : a ≠ 0) {S T : AddSubgroup A} :
    a • S ≤ a • T ↔ S ≤ T 
goal: a • S ≤ a • T ↔ S ≤ T

full_name: AddSubgroup.pointwise_smul_le_iff₀
code: theorem pointwise_smul_le_iff₀ {a : α} (ha : a ≠ 0) {S T : AddSubgroup A} :
    a • S ≤ T ↔ S ≤ a⁻¹ • T 
goal: a • S ≤ T ↔ S ≤ a⁻¹ • T

full_name: AddSubgroup.le_pointwise_smul_iff₀
code: theorem le_pointwise_smul_iff₀ {a : α} (ha : a ≠ 0) {S T : AddSubgroup A} :
    S ≤ a • T ↔ a⁻¹ • S ≤ T 
goal: S ≤ a • T ↔ a⁻¹ • S ≤ T