File: Mathlib/GroupTheory/GroupAction/Group.lean

full_name: CancelMonoidWithZero.faithfulSMul
code: /-- `Monoid.toMulAction` is faithful on nontrivial cancellative monoids with zero. -/
instance CancelMonoidWithZero.faithfulSMul [CancelMonoidWithZero α] [Nontrivial α] :
    FaithfulSMul α α 
goal: FaithfulSMul α α

full_name: inv_smul_smul₀
code: @[simp]
theorem inv_smul_smul₀ {c : α} (hc : c ≠ 0) (x : β) : c⁻¹ • c • x = x 
goal: c⁻¹ • c • x = x

full_name: smul_inv_smul₀
code: @[simp]
theorem smul_inv_smul₀ {c : α} (hc : c ≠ 0) (x : β) : c • c⁻¹ • x = x 
goal: c • c⁻¹ • x = x

full_name: inv_smul_eq_iff₀
code: theorem inv_smul_eq_iff₀ {a : α} (ha : a ≠ 0) {x y : β} : a⁻¹ • x = y ↔ x = a • y 
goal: a⁻¹ • x = y ↔ x = a • y

full_name: eq_inv_smul_iff₀
code: theorem eq_inv_smul_iff₀ {a : α} (ha : a ≠ 0) {x y : β} : x = a⁻¹ • y ↔ a • x = y 
goal: x = a⁻¹ • y ↔ a • x = y

full_name: Commute.smul_right_iff₀
code: @[simp]
theorem Commute.smul_right_iff₀ [Mul β] [SMulCommClass α β β] [IsScalarTower α β β] {a b : β}
    {c : α} (hc : c ≠ 0) : Commute a (c • b) ↔ Commute a b 
goal: Commute a (c • b) ↔ Commute a b

full_name: Commute.smul_left_iff₀
code: @[simp]
theorem Commute.smul_left_iff₀ [Mul β] [SMulCommClass α β β] [IsScalarTower α β β] {a b : β} {c : α}
    (hc : c ≠ 0) : Commute (c • a) b ↔ Commute a b 
goal: Commute (c • a) b ↔ Commute a b

full_name: Equiv.smulRight_apply
code: /-- Right scalar multiplication as an order isomorphism. -/
@[simps] def Equiv.smulRight (ha : a ≠ 0) : β ≃ β 
goal: (Equiv.smulRight ha) b = a • b

full_name: Equiv.smulRight_symm_apply
code: /-- Right scalar multiplication as an order isomorphism. -/
@[simps] def Equiv.smulRight (ha : a ≠ 0) : β ≃ β 
goal: (Equiv.smulRight ha).symm b = a⁻¹ • b

full_name: Equiv.smulRight
code: /-- Right scalar multiplication as an order isomorphism. -/
@[simps] def Equiv.smulRight (ha : a ≠ 0) : β ≃ β 
goal: β ≃ β

full_name: MulAction.bijective₀
code: protected theorem MulAction.bijective₀ (ha : a ≠ 0) : Function.Bijective (a • · : β → β) 
goal: Function.Bijective fun x => a • x

full_name: MulAction.injective₀
code: protected theorem MulAction.injective₀ (ha : a ≠ 0) : Function.Injective (a • · : β → β) 
goal: Function.Injective fun x => a • x

full_name: MulAction.surjective₀
code: protected theorem MulAction.surjective₀ (ha : a ≠ 0) : Function.Surjective (a • · : β → β) 
goal: Function.Surjective fun x => a • x

full_name: DistribMulAction.toAddEquiv_symm_apply
code: /-- Each element of the group defines an additive monoid isomorphism.

This is a stronger version of `MulAction.toPerm`. -/
@[simps (config := { simpRhs := true })]
def DistribMulAction.toAddEquiv (x : α) : β ≃+ β 
goal: ∀ (a : β), (DistribMulAction.toAddEquiv β x).symm a = x⁻¹ • a

full_name: DistribMulAction.toAddEquiv
code: /-- Each element of the group defines an additive monoid isomorphism.

This is a stronger version of `MulAction.toPerm`. -/
@[simps (config := { simpRhs := true })]
def DistribMulAction.toAddEquiv (x : α) : β ≃+ β 
goal: β ≃+ β

full_name: DistribMulAction.toAddEquiv_apply
code: /-- Each element of the group defines an additive monoid isomorphism.

This is a stronger version of `MulAction.toPerm`. -/
@[simps (config := { simpRhs := true })]
def DistribMulAction.toAddEquiv (x : α) : β ≃+ β 
goal: ∀ (a : β), (DistribMulAction.toAddEquiv β x) a = x • a

full_name: DistribMulAction.toAddAut
code: /-- Each element of the group defines an additive monoid isomorphism.

This is a stronger version of `MulAction.toPermHom`. -/
@[simps]
def DistribMulAction.toAddAut : α →* AddAut β 
goal: α →* AddAut β

full_name: DistribMulAction.toAddAut_apply
code: /-- Each element of the group defines an additive monoid isomorphism.

This is a stronger version of `MulAction.toPermHom`. -/
@[simps]
def DistribMulAction.toAddAut : α →* AddAut β 
goal: (DistribMulAction.toAddAut α β) x = DistribMulAction.toAddEquiv β x

full_name: DistribMulAction.toAddEquiv₀
code: /-- Each non-zero element of a `GroupWithZero` defines an additive monoid isomorphism of an
`AddMonoid` on which it acts distributively.
This is a stronger version of `DistribMulAction.toAddMonoidHom`. -/
def DistribMulAction.toAddEquiv₀ {α : Type*} (β : Type*) [GroupWithZero α] [AddMonoid β]
    [DistribMulAction α β] (x : α) (hx : x ≠ 0) : β ≃+ β 
goal: β ≃+ β

full_name: smul_eq_zero_iff_eq
code: theorem smul_eq_zero_iff_eq (a : α) {x : β} : a • x = 0 ↔ x = 0 
goal: a • x = 0 ↔ x = 0

full_name: smul_ne_zero_iff_ne
code: theorem smul_ne_zero_iff_ne (a : α) {x : β} : a • x ≠ 0 ↔ x ≠ 0 
goal: a • x ≠ 0 ↔ x ≠ 0

full_name: MulDistribMulAction.toMulEquiv
code: /-- Each element of the group defines a multiplicative monoid isomorphism.

This is a stronger version of `MulAction.toPerm`. -/
@[simps (config := { simpRhs := true })]
def MulDistribMulAction.toMulEquiv (x : α) : β ≃* β 
goal: β ≃* β

full_name: MulDistribMulAction.toMulEquiv_apply
code: /-- Each element of the group defines a multiplicative monoid isomorphism.

This is a stronger version of `MulAction.toPerm`. -/
@[simps (config := { simpRhs := true })]
def MulDistribMulAction.toMulEquiv (x : α) : β ≃* β 
goal: ∀ (a : β), (MulDistribMulAction.toMulEquiv β x) a = x • a

full_name: MulDistribMulAction.toMulEquiv_symm_apply
code: /-- Each element of the group defines a multiplicative monoid isomorphism.

This is a stronger version of `MulAction.toPerm`. -/
@[simps (config := { simpRhs := true })]
def MulDistribMulAction.toMulEquiv (x : α) : β ≃* β 
goal: ∀ (a : β), (MulDistribMulAction.toMulEquiv β x).symm a = x⁻¹ • a

full_name: MulDistribMulAction.toMulAut
code: /-- Each element of the group defines a multiplicative monoid isomorphism.

This is a stronger version of `MulAction.toPermHom`. -/
@[simps]
def MulDistribMulAction.toMulAut : α →* MulAut β 
goal: α →* MulAut β

full_name: MulDistribMulAction.toMulAut_apply
code: /-- Each element of the group defines a multiplicative monoid isomorphism.

This is a stronger version of `MulAction.toPermHom`. -/
@[simps]
def MulDistribMulAction.toMulAut : α →* MulAut β 
goal: (MulDistribMulAction.toMulAut α β) x = MulDistribMulAction.toMulEquiv β x

full_name: arrowMulDistribMulAction
code: /-- When `B` is a monoid, `ArrowAction` is additionally a `MulDistribMulAction`. -/
def arrowMulDistribMulAction {G A B : Type*} [Group G] [MulAction G A] [Monoid B] :
    MulDistribMulAction G (A → B) 
goal: MulDistribMulAction G (A → B)

full_name: mulAutArrow
code: /-- Given groups `G H` with `G` acting on `A`, `G` acts by
  multiplicative automorphisms on `A → H`. -/
@[simps!]
def mulAutArrow {G A H} [Group G] [MulAction G A] [Monoid H] : G →* MulAut (A → H) 
goal: G →* MulAut (A → H)

full_name: mulAutArrow_apply_symm_apply
code: /-- Given groups `G H` with `G` acting on `A`, `G` acts by
  multiplicative automorphisms on `A → H`. -/
@[simps!]
def mulAutArrow {G A H} [Group G] [MulAction G A] [Monoid H] : G →* MulAut (A → H) 
goal: ∀ (a : A → H) (a_1 : A), (MulEquiv.symm (mulAutArrow x)) a a_1 = (x⁻¹ • a) a_1

full_name: mulAutArrow_apply_apply
code: /-- Given groups `G H` with `G` acting on `A`, `G` acts by
  multiplicative automorphisms on `A → H`. -/
@[simps!]
def mulAutArrow {G A H} [Group G] [MulAction G A] [Monoid H] : G →* MulAut (A → H) 
goal: ∀ (a : A → H) (a_1 : A), (mulAutArrow x) a a_1 = (x • a) a_1

full_name: IsUnit.smul_eq_zero
code: @[simp]
theorem smul_eq_zero {u : α} (hu : IsUnit u) {x : β} : u • x = 0 ↔ x = 0 
goal: u • x = 0 ↔ x = 0

full_name: IsUnit.smul_sub_iff_sub_inv_smul
code: theorem IsUnit.smul_sub_iff_sub_inv_smul [AddGroup β] [DistribMulAction α β] [IsScalarTower α β β]
    [SMulCommClass α β β] (r : α) (a : β) : IsUnit (r • (1 : β) - a) ↔ IsUnit (1 - r⁻¹ • a) 
goal: IsUnit (r • 1 - a) ↔ IsUnit (1 - r⁻¹ • a)