ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- AddMonoidHom.mul_op_ext
@[ext]
theorem AddMonoidHom.mul_op_ext {α β} [AddZeroClass α] [AddZeroClass β] (f g : αᵐᵒᵖ →+ β)
    (h :
      f.comp (opAddEquiv : α ≃+ αᵐᵒᵖ).toAddMonoidHom =
        g.comp (opAddEquiv : α ≃+ αᵐᵒᵖ).toAddMonoidHom) :
    f = g 
Arguments: {α : Type u_2} {β : Type u_3} [AddZeroClass α] [AddZeroClass β] (f g : αᵐᵒᵖ →+ β) (h : f.comp MulOpposite.opAddEquiv.toAddMonoidHom = g.comp MulOpposite.opAddEquiv.toAddMonoidHom)
Goal: f = g
-- Sigma.vadd_def
@[to_additive]
theorem smul_def : a • x = x.map id fun _ => (a • ·) 
Arguments: {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} [(i : ι) → VAdd M (α i)] (a : M) (x : (i : ι) × α i)
Goal: a +ᵥ x = Sigma.map id (fun x x_1 => a +ᵥ x_1) x
-- Sigma.smul_def
@[to_additive]
theorem smul_def : a • x = x.map id fun _ => (a • ·) 
Arguments: {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} [(i : ι) → SMul M (α i)] (a : M) (x : (i : ι) × α i)
Goal: a • x = Sigma.map id (fun x x_1 => a • x_1) x
-- Sigma.smul_mk
@[to_additive (attr := simp)]
theorem smul_mk : a • mk i b = ⟨i, a • b⟩ 
Arguments: {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} [(i : ι) → SMul M (α i)] (a : M) (i : ι) (b : α i)
Goal: a • ⟨i, b⟩ = ⟨i, a • b⟩
-- Sigma.vadd_mk
@[to_additive (attr := simp)]
theorem smul_mk : a • mk i b = ⟨i, a • b⟩ 
Arguments: {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} [(i : ι) → VAdd M (α i)] (a : M) (i : ι) (b : α i)
Goal: a +ᵥ ⟨i, b⟩ = ⟨i, a +ᵥ b⟩
-- Sigma.FaithfulSMul'
@[to_additive "This is not an instance because `i` becomes a metavariable."]
protected theorem FaithfulSMul' [FaithfulSMul M (α i)] : FaithfulSMul M (Σi, α i) 
Arguments: {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} [(i : ι) → SMul M (α i)] (i : ι) [FaithfulSMul M (α i)]
Goal: FaithfulSMul M ((i : ι) × α i)
-- Sigma.FaithfulVAdd'
@[to_additive "This is not an instance because `i` becomes a metavariable."]
protected theorem FaithfulSMul' [FaithfulSMul M (α i)] : FaithfulSMul M (Σi, α i) 
Arguments: {ι : Type u_1} {M : Type u_2} {α : ι → Type u_4} [(i : ι) → VAdd M (α i)] (i : ι) [FaithfulVAdd M (α i)]
Goal: FaithfulVAdd M ((i : ι) × α i)
-- val_unitOfInvertible
@[simps]
def unitOfInvertible [Monoid α] (a : α) [Invertible a] : αˣ 
Arguments: {α : Type u} [Monoid α] (a : α) [Invertible a]
Goal: ↑(unitOfInvertible a) = a
-- val_inv_unitOfInvertible
@[simps]
def unitOfInvertible [Monoid α] (a : α) [Invertible a] : αˣ 
Arguments: {α : Type u} [Monoid α] (a : α) [Invertible a]
Goal: ↑(unitOfInvertible a)⁻¹ = ⅟a
-- isUnit_of_invertible
theorem isUnit_of_invertible [Monoid α] (a : α) [Invertible a] : IsUnit a 
Arguments: {α : Type u} [Monoid α] (a : α) [Invertible a]
Goal: IsUnit a
-- invOf_units
@[simp]
theorem invOf_units [Monoid α] (u : αˣ) [Invertible (u : α)] : ⅟ (u : α) = ↑u⁻¹ 
Arguments: {α : Type u} [Monoid α] (u : αˣ) [Invertible ↑u]
Goal: ⅟↑u = ↑u⁻¹
-- IsUnit.nonempty_invertible
theorem IsUnit.nonempty_invertible [Monoid α] {a : α} (h : IsUnit a) : Nonempty (Invertible a) 
Arguments: {α : Type u} [Monoid α] {a : α} (h : IsUnit a)
Goal: Nonempty (Invertible a)
-- nonempty_invertible_iff_isUnit
@[simp]
theorem nonempty_invertible_iff_isUnit [Monoid α] (a : α) : Nonempty (Invertible a) ↔ IsUnit a 
Arguments: {α : Type u} [Monoid α] (a : α)
Goal: Nonempty (Invertible a) ↔ IsUnit a
-- Commute.invOf_right
theorem Commute.invOf_right [Monoid α] {a b : α} [Invertible b] (h : Commute a b) :
    Commute a (⅟ b) 
Arguments: {α : Type u} [Monoid α] {a b : α} [Invertible b] (h : Commute a b)
Goal: Commute a ⅟b
-- Commute.invOf_left
theorem Commute.invOf_left [Monoid α] {a b : α} [Invertible b] (h : Commute b a) :
    Commute (⅟ b) a 
Arguments: {α : Type u} [Monoid α] {a b : α} [Invertible b] (h : Commute b a)
Goal: Commute (⅟b) a
-- commute_invOf
theorem commute_invOf {M : Type*} [One M] [Mul M] (m : M) [Invertible m] : Commute m (⅟ m) 
Arguments: {M : Type u_1} [One M] [Mul M] (m : M) [Invertible m]
Goal: Commute m ⅟m
-- Invertible.mulLeft_apply
@[simps apply symm_apply]
def Invertible.mulLeft {a : α} (_ : Invertible a) (b : α) : Invertible b ≃ Invertible (a * b) 
Arguments: {α : Type u} [Monoid α] {a : α}
Goal: ∀ (x : Invertible a) (b : α) (x_1 : Invertible b), (x.mulLeft b) x_1 = invertibleMul a b
-- Invertible.mulLeft_symm_apply
@[simps apply symm_apply]
def Invertible.mulLeft {a : α} (_ : Invertible a) (b : α) : Invertible b ≃ Invertible (a * b) 
Arguments: {α : Type u} [Monoid α] {a : α}
Goal: ∀ (x : Invertible a) (b : α) (x_1 : Invertible (a * b)), (x.mulLeft b).symm x_1 = invertibleOfInvertibleMul a b
-- Invertible.mulRight_apply
@[simps apply symm_apply]
def Invertible.mulRight (a : α) {b : α} (_ : Invertible b) : Invertible a ≃ Invertible (a * b) 
Arguments: {α : Type u} [Monoid α] (a : α) {b : α}
Goal: ∀ (x : Invertible b) (x_1 : Invertible a), (Invertible.mulRight a x) x_1 = invertibleMul a b
-- Invertible.mulRight_symm_apply
@[simps apply symm_apply]
def Invertible.mulRight (a : α) {b : α} (_ : Invertible b) : Invertible a ≃ Invertible (a * b) 
Arguments: {α : Type u} [Monoid α] (a : α) {b : α}
Goal: ∀ (x : Invertible b) (x_1 : Invertible (a * b)), (Invertible.mulRight a x).symm x_1 = invertibleOfMulInvertible a b
-- invOf_pow
lemma invOf_pow (m : α) [Invertible m] (n : ℕ) [Invertible (m ^ n)] : ⅟ (m ^ n) = ⅟ m ^ n 
Arguments: {α : Type u} [Monoid α] (m : α) [Invertible m] (n : ℕ) [Invertible (m ^ n)]
Goal: ⅟(m ^ n) = ⅟m ^ n
-- map_invOf
theorem map_invOf {R : Type*} {S : Type*} {F : Type*} [MulOneClass R] [Monoid S]
    [FunLike F R S] [MonoidHomClass F R S] (f : F) (r : R)
    [Invertible r] [ifr : Invertible (f r)] :
    f (⅟ r) = ⅟ (f r) 
Arguments: {R : Type u_1} {S : Type u_2} {F : Type u_3} [MulOneClass R] [Monoid S] [FunLike F R S] [MonoidHomClass F R S] (f : F) (r : R) [Invertible r] [ifr : Invertible (f r)]
Goal: f ⅟r = ⅟(f r)
-- Invertible.ofLeftInverse_invOf
@[simps! (config := .lemmasOnly)]
def Invertible.ofLeftInverse {R : Type*} {S : Type*} {G : Type*} [MulOneClass R] [MulOneClass S]
    [FunLike G S R] [MonoidHomClass G S R] (f : R → S) (g : G) (r : R)
    (h : Function.LeftInverse g f) [Invertible (f r)] : Invertible r 
Arguments: {R : Type u_1} {S : Type u_2} {G : Type u_3} [MulOneClass R] [MulOneClass S] [FunLike G S R] [MonoidHomClass G S R] (f : R → S) (g : G) (r : R) (h : Function.LeftInverse (⇑g) f) [Invertible (f r)]
Goal: ⅟r = ⅟(g (f r))
-- invertibleEquivOfLeftInverse_apply
@[simps]
def invertibleEquivOfLeftInverse {R : Type*} {S : Type*} {F G : Type*} [Monoid R] [Monoid S]
    [FunLike F R S] [MonoidHomClass F R S] [FunLike G S R] [MonoidHomClass G S R]
    (f : F) (g : G) (r : R) (h : Function.LeftInverse g f) : Invertible (f r) ≃ Invertible r 
Arguments: {R : Type u_1} {S : Type u_2} {F : Type u_3} {G : Type u_4} [Monoid R] [Monoid S] [FunLike F R S] [MonoidHomClass F R S] [FunLike G S R] [MonoidHomClass G S R] (f : F) (g : G) (r : R) (h : Function.LeftInverse ⇑g ⇑f)
Goal: ∀ (x : Invertible (f r)), (invertibleEquivOfLeftInverse f g r h) x = Invertible.ofLeftInverse (⇑f) g r h
-- invertibleEquivOfLeftInverse_symm_apply
@[simps]
def invertibleEquivOfLeftInverse {R : Type*} {S : Type*} {F G : Type*} [Monoid R] [Monoid S]
    [FunLike F R S] [MonoidHomClass F R S] [FunLike G S R] [MonoidHomClass G S R]
    (f : F) (g : G) (r : R) (h : Function.LeftInverse g f) : Invertible (f r) ≃ Invertible r 
Arguments: {R : Type u_1} {S : Type u_2} {F : Type u_3} {G : Type u_4} [Monoid R] [Monoid S] [FunLike F R S] [MonoidHomClass F R S] [FunLike G S R] [MonoidHomClass G S R] (f : F) (g : G) (r : R) (h : Function.LeftInverse ⇑g ⇑f)
Goal: ∀ (x : Invertible r), (invertibleEquivOfLeftInverse f g r h).symm x = Invertible.map f r
-- Invertible.invOf_mul_self
class Invertible [Mul α] [One α] (a : α) : Type u where
    invOf : α
    invOf_mul_self : invOf * a = 1
    mul_invOf_self : a * invOf = 1
Arguments: {α : Type u} [Mul α] [One α] {a : α} [self : Invertible a]
Goal: ⅟a * a = 1
-- Invertible.mul_invOf_self
class Invertible [Mul α] [One α] (a : α) : Type u where
    invOf : α
    invOf_mul_self : invOf * a = 1
    mul_invOf_self : a * invOf = 1
Arguments: {α : Type u} [Mul α] [One α] {a : α} [self : Invertible a]
Goal: a * ⅟a = 1
-- invOf_mul_self'
@[simp]
theorem invOf_mul_self' [Mul α] [One α] (a : α) {_ : Invertible a} : ⅟ a * a = 1 
Arguments: {α : Type u} [Mul α] [One α] (a : α)
Goal: ∀ {x : Invertible a}, ⅟a * a = 1
-- invOf_mul_self
theorem invOf_mul_self [Mul α] [One α] (a : α) [Invertible a] : ⅟ a * a = 1 
Arguments: {α : Type u} [Mul α] [One α] (a : α) [Invertible a]
Goal: ⅟a * a = 1
-- mul_invOf_self'
@[simp]
theorem mul_invOf_self' [Mul α] [One α] (a : α) {_ : Invertible a} : a * ⅟ a = 1 
Arguments: {α : Type u} [Mul α] [One α] (a : α)
Goal: ∀ {x : Invertible a}, a * ⅟a = 1
-- mul_invOf_self
theorem mul_invOf_self [Mul α] [One α] (a : α) [Invertible a] : a * ⅟ a = 1 
Arguments: {α : Type u} [Mul α] [One α] (a : α) [Invertible a]
Goal: a * ⅟a = 1
-- invOf_mul_self_assoc'
@[simp]
theorem invOf_mul_self_assoc' [Monoid α] (a b : α) {_ : Invertible a} : ⅟ a * (a * b) = b 
Arguments: {α : Type u} [Monoid α] (a b : α)
Goal: ∀ {x : Invertible a}, ⅟a * (a * b) = b
-- invOf_mul_self_assoc
theorem invOf_mul_self_assoc [Monoid α] (a b : α) [Invertible a] : ⅟ a * (a * b) = b 
Arguments: {α : Type u} [Monoid α] (a b : α) [Invertible a]
Goal: ⅟a * (a * b) = b
-- mul_invOf_self_assoc'
@[simp]
theorem mul_invOf_self_assoc' [Monoid α] (a b : α) {_ : Invertible a} : a * (⅟ a * b) = b 
Arguments: {α : Type u} [Monoid α] (a b : α)
Goal: ∀ {x : Invertible a}, a * (⅟a * b) = b
-- mul_invOf_self_assoc
theorem mul_invOf_self_assoc [Monoid α] (a b : α) [Invertible a] : a * (⅟ a * b) = b 
Arguments: {α : Type u} [Monoid α] (a b : α) [Invertible a]
Goal: a * (⅟a * b) = b
-- mul_invOf_mul_self_cancel'
@[simp]
theorem mul_invOf_mul_self_cancel' [Monoid α] (a b : α) {_ : Invertible b} : a * ⅟ b * b = a 
Arguments: {α : Type u} [Monoid α] (a b : α)
Goal: ∀ {x : Invertible b}, a * ⅟b * b = a
-- mul_invOf_mul_self_cancel
theorem mul_invOf_mul_self_cancel [Monoid α] (a b : α) [Invertible b] : a * ⅟ b * b = a 
Arguments: {α : Type u} [Monoid α] (a b : α) [Invertible b]
Goal: a * ⅟b * b = a
-- mul_mul_invOf_self_cancel'
@[simp]
theorem mul_mul_invOf_self_cancel' [Monoid α] (a b : α) {_ : Invertible b} : a * b * ⅟ b = a 
Arguments: {α : Type u} [Monoid α] (a b : α)
Goal: ∀ {x : Invertible b}, a * b * ⅟b = a
-- mul_mul_invOf_self_cancel
theorem mul_mul_invOf_self_cancel [Monoid α] (a b : α) [Invertible b] : a * b * ⅟ b = a 
Arguments: {α : Type u} [Monoid α] (a b : α) [Invertible b]
Goal: a * b * ⅟b = a
-- invOf_eq_right_inv
theorem invOf_eq_right_inv [Monoid α] {a b : α} [Invertible a] (hac : a * b = 1) : ⅟ a = b 
Arguments: {α : Type u} [Monoid α] {a b : α} [Invertible a] (hac : a * b = 1)
Goal: ⅟a = b
-- invOf_eq_left_inv
theorem invOf_eq_left_inv [Monoid α] {a b : α} [Invertible a] (hac : b * a = 1) : ⅟ a = b 
Arguments: {α : Type u} [Monoid α] {a b : α} [Invertible a] (hac : b * a = 1)
Goal: ⅟a = b
-- invertible_unique
theorem invertible_unique {α : Type u} [Monoid α] (a b : α) [Invertible a] [Invertible b]
    (h : a = b) : ⅟ a = ⅟ b 
Arguments: {α : Type u} [Monoid α] (a b : α) [Invertible a] [Invertible b] (h : a = b)
Goal: ⅟a = ⅟b
-- Invertible.congr
@[congr]
theorem Invertible.congr [Monoid α] (a b : α) [Invertible a] [Invertible b] (h : a = b) :
    ⅟a = ⅟b 
Arguments: {α : Type u} [Monoid α] (a b : α) [Invertible a] [Invertible b] (h : a = b)
Goal: ⅟a = ⅟b
-- invOf_eq_group_inv
@[simp]
theorem invOf_eq_group_inv [Group α] (a : α) [Invertible a] : ⅟ a = a⁻¹ 
Arguments: {α : Type u} [Group α] (a : α) [Invertible a]
Goal: ⅟a = a⁻¹
-- invOf_one'
@[simp]
theorem invOf_one' [Monoid α] {_ : Invertible (1 : α)} : ⅟ (1 : α) = 1 
Arguments: {α : Type u} [Monoid α]
Goal: ∀ {x : Invertible 1}, ⅟1 = 1
-- invOf_one
theorem invOf_one [Monoid α] [Invertible (1 : α)] : ⅟ (1 : α) = 1 
Arguments: {α : Type u} [Monoid α] [Invertible 1]
Goal: ⅟1 = 1
-- invOf_invOf
@[simp]
theorem invOf_invOf [Monoid α] (a : α) [Invertible a] [Invertible (⅟ a)] : ⅟ (⅟ a) = a 
Arguments: {α : Type u} [Monoid α] (a : α) [Invertible a] [Invertible ⅟a]
Goal: ⅟⅟a = a
-- invOf_inj
@[simp]
theorem invOf_inj [Monoid α] {a b : α} [Invertible a] [Invertible b] : ⅟ a = ⅟ b ↔ a = b 
Arguments: {α : Type u} [Monoid α] {a b : α} [Invertible a] [Invertible b]
Goal: ⅟a = ⅟b ↔ a = b
-- invOf_mul
@[simp]
theorem invOf_mul [Monoid α] (a b : α) [Invertible a] [Invertible b] [Invertible (a * b)] :
    ⅟ (a * b) = ⅟ b * ⅟ a 
Arguments: {α : Type u} [Monoid α] (a b : α) [Invertible a] [Invertible b] [Invertible (a * b)]
Goal: ⅟(a * b) = ⅟b * ⅟a
-- mul_right_inj_of_invertible
theorem mul_right_inj_of_invertible : a * c = b * c ↔ a = b 
Arguments: {α : Type u} [Monoid α] {a b : α} (c : α) [Invertible c]
Goal: a * c = b * c ↔ a = b
-- mul_left_inj_of_invertible
theorem mul_left_inj_of_invertible : c * a = c * b ↔ a = b 
Arguments: {α : Type u} [Monoid α] {a b : α} (c : α) [Invertible c]
Goal: c * a = c * b ↔ a = b
-- invOf_mul_eq_iff_eq_mul_left
theorem invOf_mul_eq_iff_eq_mul_left : ⅟c * a = b ↔ a = c * b 
Arguments: {α : Type u} [Monoid α] {a b c : α} [Invertible c]
Goal: ⅟c * a = b ↔ a = c * b
-- mul_left_eq_iff_eq_invOf_mul
theorem mul_left_eq_iff_eq_invOf_mul : c * a = b ↔ a = ⅟c * b 
Arguments: {α : Type u} [Monoid α] {a b c : α} [Invertible c]
Goal: c * a = b ↔ a = ⅟c * b
-- mul_invOf_eq_iff_eq_mul_right
theorem mul_invOf_eq_iff_eq_mul_right : a * ⅟c = b ↔ a = b * c 
Arguments: {α : Type u} [Monoid α] {a b c : α} [Invertible c]
Goal: a * ⅟c = b ↔ a = b * c
-- mul_right_eq_iff_eq_mul_invOf
theorem mul_right_eq_iff_eq_mul_invOf : a * c = b ↔ a = b * ⅟c 
Arguments: {α : Type u} [Monoid α] {a b c : α} [Invertible c]
Goal: a * c = b ↔ a = b * ⅟c
-- FaithfulVAdd.eq_of_vadd_eq_vadd
class FaithfulVAdd (G : Type*) (P : Type*) [VAdd G P] : Prop where
    eq_of_vadd_eq_vadd : ∀ {g₁ g₂ : G}, (∀ p : P, g₁ +ᵥ p = g₂ +ᵥ p) → g₁ = g₂
Arguments: {G : Type u_11} {P : Type u_12} [VAdd G P] [self : FaithfulVAdd G P] {g₁ g₂ : G}
Goal: (∀ (p : P), g₁ +ᵥ p = g₂ +ᵥ p) → g₁ = g₂
-- FaithfulSMul.eq_of_smul_eq_smul
@[to_additive]
class FaithfulSMul (M : Type*) (α : Type*) [SMul M α] : Prop where
    eq_of_smul_eq_smul : ∀ {m₁ m₂ : M}, (∀ a : α, m₁ • a = m₂ • a) → m₁ = m₂
Arguments: {M : Type u_11} {α : Type u_12} [SMul M α] [self : FaithfulSMul M α] {m₁ m₂ : M}
Goal: (∀ (a : α), m₁ • a = m₂ • a) → m₁ = m₂
-- vadd_left_injective'
@[to_additive]
lemma smul_left_injective' [SMul M α] [FaithfulSMul M α] : Injective ((· • ·) : M → α → α) 
Arguments: {M : Type u_1} {α : Type u_7} [VAdd M α] [FaithfulVAdd M α]
Goal: Function.Injective fun x x_1 => x +ᵥ x_1
-- smul_left_injective'
@[to_additive]
lemma smul_left_injective' [SMul M α] [FaithfulSMul M α] : Injective ((· • ·) : M → α → α) 
Arguments: {M : Type u_1} {α : Type u_7} [SMul M α] [FaithfulSMul M α]
Goal: Function.Injective fun x x_1 => x • x_1
-- vadd_eq_add
@[to_additive (attr := simp)]
lemma smul_eq_mul (α : Type*) [Mul α] {a a' : α} : a • a' = a * a' 
Arguments: (α : Type u_11) [Add α] {a a' : α}
Goal: a +ᵥ a' = a + a'
-- smul_eq_mul
@[to_additive (attr := simp)]
lemma smul_eq_mul (α : Type*) [Mul α] {a a' : α} : a • a' = a * a' 
Arguments: (α : Type u_11) [Mul α] {a a' : α}
Goal: a • a' = a * a'
-- AddAction.add_vadd
class AddAction (G : Type*) (P : Type*) [AddMonoid G] extends VAdd G P where
    protected zero_vadd : ∀ p : P, (0 : G) +ᵥ p = p
    add_vadd : ∀ (g₁ g₂ : G) (p : P), g₁ + g₂ +ᵥ p = g₁ +ᵥ (g₂ +ᵥ p)
Arguments: {G : Type u_11} {P : Type u_12} [AddMonoid G] [self : AddAction G P] (g₁ g₂ : G) (p : P)
Goal: g₁ + g₂ +ᵥ p = g₁ +ᵥ (g₂ +ᵥ p)
-- AddAction.zero_vadd
class AddAction (G : Type*) (P : Type*) [AddMonoid G] extends VAdd G P where
    protected zero_vadd : ∀ p : P, (0 : G) +ᵥ p = p
    add_vadd : ∀ (g₁ g₂ : G) (p : P), g₁ + g₂ +ᵥ p = g₁ +ᵥ (g₂ +ᵥ p)
Arguments: {G : Type u_11} {P : Type u_12} [AddMonoid G] [self : AddAction G P] (p : P)
Goal: 0 +ᵥ p = p
-- MulAction.mul_smul
@[to_additive (attr := ext)]
class MulAction (α : Type*) (β : Type*) [Monoid α] extends SMul α β where
    protected one_smul : ∀ b : β, (1 : α) • b = b
    mul_smul : ∀ (x y : α) (b : β), (x * y) • b = x • y • b
Arguments: {α : Type u_11} {β : Type u_12} [Monoid α] [self : MulAction α β] (x y : α) (b : β)
Goal: (x * y) • b = x • y • b
-- MulAction.one_smul
@[to_additive (attr := ext)]
class MulAction (α : Type*) (β : Type*) [Monoid α] extends SMul α β where
    protected one_smul : ∀ b : β, (1 : α) • b = b
    mul_smul : ∀ (x y : α) (b : β), (x * y) • b = x • y • b
Arguments: {α : Type u_11} {β : Type u_12} [Monoid α] [self : MulAction α β] (b : β)
Goal: 1 • b = b
-- AddAction.IsPretransitive.exists_vadd_eq
class AddAction.IsPretransitive (M α : Type*) [VAdd M α] : Prop where
    exists_vadd_eq : ∀ x y : α, ∃ g : M, g +ᵥ x = y
Arguments: {M : Type u_11} {α : Type u_12} [VAdd M α] [self : AddAction.IsPretransitive M α] (x y : α)
Goal: ∃ g, g +ᵥ x = y
-- MulAction.IsPretransitive.exists_smul_eq
@[to_additive]
class MulAction.IsPretransitive (M α : Type*) [SMul M α] : Prop where
    exists_smul_eq : ∀ x y : α, ∃ g : M, g • x = y
Arguments: {M : Type u_11} {α : Type u_12} [SMul M α] [self : MulAction.IsPretransitive M α] (x y : α)
Goal: ∃ g, g • x = y
-- AddAction.exists_vadd_eq
@[to_additive]
lemma exists_smul_eq (x y : α) : ∃ m : M, m • x = y 
Arguments: (M : Type u_1) {α : Type u_7} [VAdd M α] [AddAction.IsPretransitive M α] (x y : α)
Goal: ∃ m, m +ᵥ x = y
-- MulAction.exists_smul_eq
@[to_additive]
lemma exists_smul_eq (x y : α) : ∃ m : M, m • x = y 
Arguments: (M : Type u_1) {α : Type u_7} [SMul M α] [MulAction.IsPretransitive M α] (x y : α)
Goal: ∃ m, m • x = y
-- AddAction.surjective_vadd
@[to_additive]
lemma surjective_smul (x : α) : Surjective fun c : M ↦ c • x 
Arguments: (M : Type u_1) {α : Type u_7} [VAdd M α] [AddAction.IsPretransitive M α] (x : α)
Goal: Function.Surjective fun c => c +ᵥ x
-- MulAction.surjective_smul
@[to_additive]
lemma surjective_smul (x : α) : Surjective fun c : M ↦ c • x 
Arguments: (M : Type u_1) {α : Type u_7} [SMul M α] [MulAction.IsPretransitive M α] (x : α)
Goal: Function.Surjective fun c => c • x
-- VAddCommClass.vadd_comm
class VAddCommClass (M N α : Type*) [VAdd M α] [VAdd N α] : Prop where
    vadd_comm : ∀ (m : M) (n : N) (a : α), m +ᵥ (n +ᵥ a) = n +ᵥ (m +ᵥ a)
Arguments: {M : Type u_11} {N : Type u_12} {α : Type u_13} [VAdd M α] [VAdd N α] [self : VAddCommClass M N α] (m : M) (n : N) (a : α)
Goal: m +ᵥ (n +ᵥ a) = n +ᵥ (m +ᵥ a)
-- SMulCommClass.smul_comm
@[to_additive]
class SMulCommClass (M N α : Type*) [SMul M α] [SMul N α] : Prop where
    smul_comm : ∀ (m : M) (n : N) (a : α), m • n • a = n • m • a
Arguments: {M : Type u_11} {N : Type u_12} {α : Type u_13} [SMul M α] [SMul N α] [self : SMulCommClass M N α] (m : M) (n : N) (a : α)
Goal: m • n • a = n • m • a
-- SMulCommClass.symm
@[to_additive]
lemma SMulCommClass.symm (M N α : Type*) [SMul M α] [SMul N α] [SMulCommClass M N α] :
    SMulCommClass N M α 
Arguments: (M : Type u_11) (N : Type u_12) (α : Type u_13) [SMul M α] [SMul N α] [SMulCommClass M N α]
Goal: SMulCommClass N M α
-- VAddCommClass.symm
@[to_additive]
lemma SMulCommClass.symm (M N α : Type*) [SMul M α] [SMul N α] [SMulCommClass M N α] :
    SMulCommClass N M α 
Arguments: (M : Type u_11) (N : Type u_12) (α : Type u_13) [VAdd M α] [VAdd N α] [VAddCommClass M N α]
Goal: VAddCommClass N M α
-- Function.Injective.vaddCommClass
@[to_additive]
lemma Function.Injective.smulCommClass [SMul M α] [SMul N α] [SMul M β] [SMul N β]
    [SMulCommClass M N β] {f : α → β} (hf : Injective f) (h₁ : ∀ (c : M) x, f (c • x) = c • f x)
    (h₂ : ∀ (c : N) x, f (c • x) = c • f x) : SMulCommClass M N α 
Arguments: {M : Type u_1} {N : Type u_2} {α : Type u_7} {β : Type u_8} [VAdd M α] [VAdd N α] [VAdd M β] [VAdd N β] [VAddCommClass M N β] {f : α → β} (hf : Function.Injective f) (h₁ : ∀ (c : M) (x : α), f (c +ᵥ x) = c +ᵥ f x) (h₂ : ∀ (c : N) (x : α), f (c +ᵥ x) = c +ᵥ f x)
Goal: VAddCommClass M N α
-- Function.Injective.smulCommClass
@[to_additive]
lemma Function.Injective.smulCommClass [SMul M α] [SMul N α] [SMul M β] [SMul N β]
    [SMulCommClass M N β] {f : α → β} (hf : Injective f) (h₁ : ∀ (c : M) x, f (c • x) = c • f x)
    (h₂ : ∀ (c : N) x, f (c • x) = c • f x) : SMulCommClass M N α 
Arguments: {M : Type u_1} {N : Type u_2} {α : Type u_7} {β : Type u_8} [SMul M α] [SMul N α] [SMul M β] [SMul N β] [SMulCommClass M N β] {f : α → β} (hf : Function.Injective f) (h₁ : ∀ (c : M) (x : α), f (c • x) = c • f x) (h₂ : ∀ (c : N) (x : α), f (c • x) = c • f x)
Goal: SMulCommClass M N α
-- Function.Surjective.vaddCommClass
@[to_additive]
lemma Function.Surjective.smulCommClass [SMul M α] [SMul N α] [SMul M β] [SMul N β]
    [SMulCommClass M N α] {f : α → β} (hf : Surjective f) (h₁ : ∀ (c : M) x, f (c • x) = c • f x)
    (h₂ : ∀ (c : N) x, f (c • x) = c • f x) : SMulCommClass M N β 
Arguments: {M : Type u_1} {N : Type u_2} {α : Type u_7} {β : Type u_8} [VAdd M α] [VAdd N α] [VAdd M β] [VAdd N β] [VAddCommClass M N α] {f : α → β} (hf : Function.Surjective f) (h₁ : ∀ (c : M) (x : α), f (c +ᵥ x) = c +ᵥ f x) (h₂ : ∀ (c : N) (x : α), f (c +ᵥ x) = c +ᵥ f x)
Goal: VAddCommClass M N β
-- Function.Surjective.smulCommClass
@[to_additive]
lemma Function.Surjective.smulCommClass [SMul M α] [SMul N α] [SMul M β] [SMul N β]
    [SMulCommClass M N α] {f : α → β} (hf : Surjective f) (h₁ : ∀ (c : M) x, f (c • x) = c • f x)
    (h₂ : ∀ (c : N) x, f (c • x) = c • f x) : SMulCommClass M N β 
Arguments: {M : Type u_1} {N : Type u_2} {α : Type u_7} {β : Type u_8} [SMul M α] [SMul N α] [SMul M β] [SMul N β] [SMulCommClass M N α] {f : α → β} (hf : Function.Surjective f) (h₁ : ∀ (c : M) (x : α), f (c • x) = c • f x) (h₂ : ∀ (c : N) (x : α), f (c • x) = c • f x)
Goal: SMulCommClass M N β
-- VAddAssocClass.vadd_assoc
class VAddAssocClass (M N α : Type*) [VAdd M N] [VAdd N α] [VAdd M α] : Prop where
    vadd_assoc : ∀ (x : M) (y : N) (z : α), x +ᵥ y +ᵥ z = x +ᵥ (y +ᵥ z)
Arguments: {M : Type u_11} {N : Type u_12} {α : Type u_13} [VAdd M N] [VAdd N α] [VAdd M α] [self : VAddAssocClass M N α] (x : M) (y : N) (z : α)
Goal: x +ᵥ y +ᵥ z = x +ᵥ (y +ᵥ z)
-- IsScalarTower.smul_assoc
@[to_additive VAddAssocClass] -- TODO auto-translating
class IsScalarTower (M N α : Type*) [SMul M N] [SMul N α] [SMul M α] : Prop where
    smul_assoc : ∀ (x : M) (y : N) (z : α), (x • y) • z = x • y • z
Arguments: {M : Type u_11} {N : Type u_12} {α : Type u_13} [SMul M N] [SMul N α] [SMul M α] [self : IsScalarTower M N α] (x : M) (y : N) (z : α)
Goal: (x • y) • z = x • y • z
-- smul_assoc
@[to_additive (attr := simp)]
lemma smul_assoc {M N} [SMul M N] [SMul N α] [SMul M α] [IsScalarTower M N α] (x : M) (y : N)
    (z : α) : (x • y) • z = x • y • z 
Arguments: {α : Type u_7} {M : Type u_11} {N : Type u_12} [SMul M N] [SMul N α] [SMul M α] [IsScalarTower M N α] (x : M) (y : N) (z : α)
Goal: (x • y) • z = x • y • z
-- vadd_assoc
@[to_additive (attr := simp)]
lemma smul_assoc {M N} [SMul M N] [SMul N α] [SMul M α] [IsScalarTower M N α] (x : M) (y : N)
    (z : α) : (x • y) • z = x • y • z 
Arguments: {α : Type u_7} {M : Type u_11} {N : Type u_12} [VAdd M N] [VAdd N α] [VAdd M α] [VAddAssocClass M N α] (x : M) (y : N) (z : α)
Goal: x +ᵥ y +ᵥ z = x +ᵥ (y +ᵥ z)
-- IsCentralVAdd.op_vadd_eq_vadd
class IsCentralVAdd (M α : Type*) [VAdd M α] [VAdd Mᵃᵒᵖ α] : Prop where
    op_vadd_eq_vadd : ∀ (m : M) (a : α), AddOpposite.op m +ᵥ a = m +ᵥ a
Arguments: {M : Type u_11} {α : Type u_12} [VAdd M α] [VAdd Mᵃᵒᵖ α] [self : IsCentralVAdd M α] (m : M) (a : α)
Goal: AddOpposite.op m +ᵥ a = m +ᵥ a
-- IsCentralScalar.op_smul_eq_smul
@[to_additive]
class IsCentralScalar (M α : Type*) [SMul M α] [SMul Mᵐᵒᵖ α] : Prop where
    op_smul_eq_smul : ∀ (m : M) (a : α), MulOpposite.op m • a = m • a
Arguments: {M : Type u_11} {α : Type u_12} [SMul M α] [SMul Mᵐᵒᵖ α] [self : IsCentralScalar M α] (m : M) (a : α)
Goal: MulOpposite.op m • a = m • a
-- IsCentralVAdd.unop_vadd_eq_vadd
@[to_additive]
lemma IsCentralScalar.unop_smul_eq_smul {M α : Type*} [SMul M α] [SMul Mᵐᵒᵖ α]
    [IsCentralScalar M α] (m : Mᵐᵒᵖ) (a : α) : MulOpposite.unop m • a = m • a 
Arguments: {M : Type u_11} {α : Type u_12} [VAdd M α] [VAdd Mᵃᵒᵖ α] [IsCentralVAdd M α] (m : Mᵃᵒᵖ) (a : α)
Goal: AddOpposite.unop m +ᵥ a = m +ᵥ a