ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- map_add
@[to_additive (attr := simp)]
theorem map_mul [MulHomClass F M N] (f : F) (x y : M) : f (x * y) = f x * f y 
Arguments: {M : Type u_4} {N : Type u_5} {F : Type u_9} [Add M] [Add N] [FunLike F M N] [AddHomClass F M N] (f : F) (x y : M)
Goal: f (x + y) = f x + f y
-- map_mul
@[to_additive (attr := simp)]
theorem map_mul [MulHomClass F M N] (f : F) (x y : M) : f (x * y) = f x * f y 
Arguments: {M : Type u_4} {N : Type u_5} {F : Type u_9} [Mul M] [Mul N] [FunLike F M N] [MulHomClass F M N] (f : F) (x y : M)
Goal: f (x * y) = f x * f y
-- map_comp_mul
@[to_additive (attr := simp)]
lemma map_comp_mul [MulHomClass F M N] (f : F) (g h : ι → M) : f ∘ (g * h) = f ∘ g * f ∘ h 
Arguments: {ι : Type u_1} {M : Type u_4} {N : Type u_5} {F : Type u_9} [Mul M] [Mul N] [FunLike F M N] [MulHomClass F M N] (f : F) (g h : ι → M)
Goal: ⇑f ∘ (g * h) = ⇑f ∘ g * ⇑f ∘ h
-- map_comp_add
@[to_additive (attr := simp)]
lemma map_comp_mul [MulHomClass F M N] (f : F) (g h : ι → M) : f ∘ (g * h) = f ∘ g * f ∘ h 
Arguments: {ι : Type u_1} {M : Type u_4} {N : Type u_5} {F : Type u_9} [Add M] [Add N] [FunLike F M N] [AddHomClass F M N] (f : F) (g h : ι → M)
Goal: ⇑f ∘ (g + h) = ⇑f ∘ g + ⇑f ∘ h
-- MulHom.coe_coe
@[to_additive (attr := simp)]
theorem MulHom.coe_coe [MulHomClass F M N] (f : F) : ((f : MulHom M N) : M → N) = f 
Arguments: {M : Type u_4} {N : Type u_5} {F : Type u_9} [Mul M] [Mul N] [FunLike F M N] [MulHomClass F M N] (f : F)
Goal: ⇑↑f = ⇑f
-- AddHom.coe_coe
@[to_additive (attr := simp)]
theorem MulHom.coe_coe [MulHomClass F M N] (f : F) : ((f : MulHom M N) : M → N) = f 
Arguments: {M : Type u_4} {N : Type u_5} {F : Type u_9} [Add M] [Add N] [FunLike F M N] [AddHomClass F M N] (f : F)
Goal: ⇑↑f = ⇑f
-- AddMonoidHom.coe_coe
@[to_additive (attr := simp)]
theorem MonoidHom.coe_coe [MonoidHomClass F M N] (f : F) : ((f : M →* N) : M → N) = f 
Arguments: {M : Type u_4} {N : Type u_5} {F : Type u_9} [AddZeroClass M] [AddZeroClass N] [FunLike F M N] [AddMonoidHomClass F M N] (f : F)
Goal: ⇑↑f = ⇑f
-- MonoidHom.coe_coe
@[to_additive (attr := simp)]
theorem MonoidHom.coe_coe [MonoidHomClass F M N] (f : F) : ((f : M →* N) : M → N) = f 
Arguments: {M : Type u_4} {N : Type u_5} {F : Type u_9} [MulOneClass M] [MulOneClass N] [FunLike F M N] [MonoidHomClass F M N] (f : F)
Goal: ⇑↑f = ⇑f
-- map_mul_eq_one
@[to_additive]
theorem map_mul_eq_one [MonoidHomClass F M N] (f : F) {a b : M} (h : a * b = 1) :
    f a * f b = 1 
Arguments: {M : Type u_4} {N : Type u_5} {F : Type u_9} [MulOneClass M] [MulOneClass N] [FunLike F M N] [MonoidHomClass F M N] (f : F) {a b : M} (h : a * b = 1)
Goal: f a * f b = 1
-- map_add_eq_zero
@[to_additive]
theorem map_mul_eq_one [MonoidHomClass F M N] (f : F) {a b : M} (h : a * b = 1) :
    f a * f b = 1 
Arguments: {M : Type u_4} {N : Type u_5} {F : Type u_9} [AddZeroClass M] [AddZeroClass N] [FunLike F M N] [AddMonoidHomClass F M N] (f : F) {a b : M} (h : a + b = 0)
Goal: f a + f b = 0
-- map_sub'
@[to_additive]
theorem map_div' [DivInvMonoid G] [DivInvMonoid H] [MonoidHomClass F G H]
    (f : F) (hf : ∀ a, f a⁻¹ = (f a)⁻¹) (a b : G) : f (a / b) = f a / f b 
Arguments: {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [SubNegMonoid G] [SubNegMonoid H] [AddMonoidHomClass F G H] (f : F) (hf : ∀ (a : G), f (-a) = -f a) (a b : G)
Goal: f (a - b) = f a - f b
-- map_div'
@[to_additive]
theorem map_div' [DivInvMonoid G] [DivInvMonoid H] [MonoidHomClass F G H]
    (f : F) (hf : ∀ a, f a⁻¹ = (f a)⁻¹) (a b : G) : f (a / b) = f a / f b 
Arguments: {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [DivInvMonoid G] [DivInvMonoid H] [MonoidHomClass F G H] (f : F) (hf : ∀ (a : G), f a⁻¹ = (f a)⁻¹) (a b : G)
Goal: f (a / b) = f a / f b
-- map_comp_div'
@[to_additive]
lemma map_comp_div' [DivInvMonoid G] [DivInvMonoid H] [MonoidHomClass F G H] (f : F)
    (hf : ∀ a, f a⁻¹ = (f a)⁻¹) (g h : ι → G) : f ∘ (g / h) = f ∘ g / f ∘ h 
Arguments: {ι : Type u_1} {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [DivInvMonoid G] [DivInvMonoid H] [MonoidHomClass F G H] (f : F) (hf : ∀ (a : G), f a⁻¹ = (f a)⁻¹) (g h : ι → G)
Goal: ⇑f ∘ (g / h) = ⇑f ∘ g / ⇑f ∘ h
-- map_comp_sub'
@[to_additive]
lemma map_comp_div' [DivInvMonoid G] [DivInvMonoid H] [MonoidHomClass F G H] (f : F)
    (hf : ∀ a, f a⁻¹ = (f a)⁻¹) (g h : ι → G) : f ∘ (g / h) = f ∘ g / f ∘ h 
Arguments: {ι : Type u_1} {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [SubNegMonoid G] [SubNegMonoid H] [AddMonoidHomClass F G H] (f : F) (hf : ∀ (a : G), f (-a) = -f a) (g h : ι → G)
Goal: ⇑f ∘ (g - h) = ⇑f ∘ g - ⇑f ∘ h
-- map_inv
@[to_additive (attr := simp) "Additive group homomorphisms preserve negation."]
theorem map_inv [Group G] [DivisionMonoid H] [MonoidHomClass F G H]
    (f : F) (a : G) : f a⁻¹ = (f a)⁻¹ 
Arguments: {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (a : G)
Goal: f a⁻¹ = (f a)⁻¹
-- map_neg
@[to_additive (attr := simp) "Additive group homomorphisms preserve negation."]
theorem map_inv [Group G] [DivisionMonoid H] [MonoidHomClass F G H]
    (f : F) (a : G) : f a⁻¹ = (f a)⁻¹ 
Arguments: {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [AddGroup G] [SubtractionMonoid H] [AddMonoidHomClass F G H] (f : F) (a : G)
Goal: f (-a) = -f a
-- map_comp_inv
@[to_additive (attr := simp)]
lemma map_comp_inv [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (g : ι → G) :
    f ∘ g⁻¹ = (f ∘ g)⁻¹ 
Arguments: {ι : Type u_1} {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (g : ι → G)
Goal: ⇑f ∘ g⁻¹ = (⇑f ∘ g)⁻¹
-- map_comp_neg
@[to_additive (attr := simp)]
lemma map_comp_inv [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (g : ι → G) :
    f ∘ g⁻¹ = (f ∘ g)⁻¹ 
Arguments: {ι : Type u_1} {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [AddGroup G] [SubtractionMonoid H] [AddMonoidHomClass F G H] (f : F) (g : ι → G)
Goal: ⇑f ∘ (-g) = -⇑f ∘ g
-- map_add_neg
@[to_additive "Additive group homomorphisms preserve subtraction."]
theorem map_mul_inv [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (a b : G) :
    f (a * b⁻¹) = f a * (f b)⁻¹ 
Arguments: {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [AddGroup G] [SubtractionMonoid H] [AddMonoidHomClass F G H] (f : F) (a b : G)
Goal: f (a + -b) = f a + -f b
-- map_mul_inv
@[to_additive "Additive group homomorphisms preserve subtraction."]
theorem map_mul_inv [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (a b : G) :
    f (a * b⁻¹) = f a * (f b)⁻¹ 
Arguments: {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (a b : G)
Goal: f (a * b⁻¹) = f a * (f b)⁻¹
-- map_comp_mul_inv
@[to_additive]
lemma map_comp_mul_inv [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (g h : ι → G) :
    f ∘ (g * h⁻¹) = f ∘ g * (f ∘ h)⁻¹ 
Arguments: {ι : Type u_1} {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (g h : ι → G)
Goal: ⇑f ∘ (g * h⁻¹) = ⇑f ∘ g * (⇑f ∘ h)⁻¹
-- map_comp_add_neg
@[to_additive]
lemma map_comp_mul_inv [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (g h : ι → G) :
    f ∘ (g * h⁻¹) = f ∘ g * (f ∘ h)⁻¹ 
Arguments: {ι : Type u_1} {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [AddGroup G] [SubtractionMonoid H] [AddMonoidHomClass F G H] (f : F) (g h : ι → G)
Goal: ⇑f ∘ (g + -h) = ⇑f ∘ g + -⇑f ∘ h
-- map_sub
@[to_additive (attr := simp) "Additive group homomorphisms preserve subtraction."]
theorem map_div [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) :
    ∀ a b, f (a / b) = f a / f b 
Arguments: {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [AddGroup G] [SubtractionMonoid H] [AddMonoidHomClass F G H] (f : F) (a b : G)
Goal: f (a - b) = f a - f b
-- map_div
@[to_additive (attr := simp) "Additive group homomorphisms preserve subtraction."]
theorem map_div [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) :
    ∀ a b, f (a / b) = f a / f b 
Arguments: {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (a b : G)
Goal: f (a / b) = f a / f b
-- map_comp_div
@[to_additive (attr := simp)]
lemma map_comp_div [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (g h : ι → G) :
    f ∘ (g / h) = f ∘ g / f ∘ h 
Arguments: {ι : Type u_1} {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (g h : ι → G)
Goal: ⇑f ∘ (g / h) = ⇑f ∘ g / ⇑f ∘ h
-- map_comp_sub
@[to_additive (attr := simp)]
lemma map_comp_div [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (g h : ι → G) :
    f ∘ (g / h) = f ∘ g / f ∘ h 
Arguments: {ι : Type u_1} {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [AddGroup G] [SubtractionMonoid H] [AddMonoidHomClass F G H] (f : F) (g h : ι → G)
Goal: ⇑f ∘ (g - h) = ⇑f ∘ g - ⇑f ∘ h
-- map_nsmul
@[to_additive (attr := simp) (reorder := 9 10)]
theorem map_pow [Monoid G] [Monoid H] [MonoidHomClass F G H] (f : F) (a : G) :
    ∀ n : ℕ, f (a ^ n) = f a ^ n
  
Arguments: {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [AddMonoid G] [AddMonoid H] [AddMonoidHomClass F G H] (f : F) (n : ℕ) (a : G)
Goal: f (n • a) = n • f a
-- map_pow
@[to_additive (attr := simp) (reorder := 9 10)]
theorem map_pow [Monoid G] [Monoid H] [MonoidHomClass F G H] (f : F) (a : G) :
    ∀ n : ℕ, f (a ^ n) = f a ^ n
  
Arguments: {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [Monoid G] [Monoid H] [MonoidHomClass F G H] (f : F) (a : G) (n : ℕ)
Goal: f (a ^ n) = f a ^ n
-- map_comp_nsmul
@[to_additive (attr := simp)]
lemma map_comp_pow [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (g : ι → G) (n : ℕ) :
    f ∘ (g ^ n) = f ∘ g ^ n 
Arguments: {ι : Type u_1} {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [AddGroup G] [SubtractionMonoid H] [AddMonoidHomClass F G H] (f : F) (g : ι → G) (n : ℕ)
Goal: ⇑f ∘ (n • g) = n • ⇑f ∘ g
-- map_comp_pow
@[to_additive (attr := simp)]
lemma map_comp_pow [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (g : ι → G) (n : ℕ) :
    f ∘ (g ^ n) = f ∘ g ^ n 
Arguments: {ι : Type u_1} {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (g : ι → G) (n : ℕ)
Goal: ⇑f ∘ (g ^ n) = ⇑f ∘ g ^ n
-- map_zsmul'
@[to_additive]
theorem map_zpow' [DivInvMonoid G] [DivInvMonoid H] [MonoidHomClass F G H]
    (f : F) (hf : ∀ x : G, f x⁻¹ = (f x)⁻¹) (a : G) : ∀ n : ℤ, f (a ^ n) = f a ^ n
  
Arguments: {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [SubNegMonoid G] [SubNegMonoid H] [AddMonoidHomClass F G H] (f : F) (hf : ∀ (x : G), f (-x) = -f x) (a : G) (n : ℤ)
Goal: f (n • a) = n • f a
-- map_zpow'
@[to_additive]
theorem map_zpow' [DivInvMonoid G] [DivInvMonoid H] [MonoidHomClass F G H]
    (f : F) (hf : ∀ x : G, f x⁻¹ = (f x)⁻¹) (a : G) : ∀ n : ℤ, f (a ^ n) = f a ^ n
  
Arguments: {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [DivInvMonoid G] [DivInvMonoid H] [MonoidHomClass F G H] (f : F) (hf : ∀ (x : G), f x⁻¹ = (f x)⁻¹) (a : G) (n : ℤ)
Goal: f (a ^ n) = f a ^ n
-- map_comp_zpow'
@[to_additive (attr := simp)]
lemma map_comp_zpow' [DivInvMonoid G] [DivInvMonoid H] [MonoidHomClass F G H] (f : F)
    (hf : ∀ x : G, f x⁻¹ = (f x)⁻¹) (g : ι → G) (n : ℤ) : f ∘ (g ^ n) = f ∘ g ^ n 
Arguments: {ι : Type u_1} {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [DivInvMonoid G] [DivInvMonoid H] [MonoidHomClass F G H] (f : F) (hf : ∀ (x : G), f x⁻¹ = (f x)⁻¹) (g : ι → G) (n : ℤ)
Goal: ⇑f ∘ (g ^ n) = ⇑f ∘ g ^ n
-- map_comp_zsmul'
@[to_additive (attr := simp)]
lemma map_comp_zpow' [DivInvMonoid G] [DivInvMonoid H] [MonoidHomClass F G H] (f : F)
    (hf : ∀ x : G, f x⁻¹ = (f x)⁻¹) (g : ι → G) (n : ℤ) : f ∘ (g ^ n) = f ∘ g ^ n 
Arguments: {ι : Type u_1} {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [SubNegMonoid G] [SubNegMonoid H] [AddMonoidHomClass F G H] (f : F) (hf : ∀ (x : G), f (-x) = -f x) (g : ι → G) (n : ℤ)
Goal: ⇑f ∘ (n • g) = n • ⇑f ∘ g
-- map_zpow
@[to_additive (attr := simp) (reorder := 9 10)
"Additive group homomorphisms preserve integer scaling."]
theorem map_zpow [Group G] [DivisionMonoid H] [MonoidHomClass F G H]
    (f : F) (g : G) (n : ℤ) : f (g ^ n) = f g ^ n 
Arguments: {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (g : G) (n : ℤ)
Goal: f (g ^ n) = f g ^ n
-- map_zsmul
@[to_additive (attr := simp) (reorder := 9 10)
"Additive group homomorphisms preserve integer scaling."]
theorem map_zpow [Group G] [DivisionMonoid H] [MonoidHomClass F G H]
    (f : F) (g : G) (n : ℤ) : f (g ^ n) = f g ^ n 
Arguments: {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [AddGroup G] [SubtractionMonoid H] [AddMonoidHomClass F G H] (f : F) (n : ℤ) (g : G)
Goal: f (n • g) = n • f g
-- map_comp_zsmul
@[to_additive]
lemma map_comp_zpow [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (g : ι → G)
    (n : ℤ) : f ∘ (g ^ n) = f ∘ g ^ n 
Arguments: {ι : Type u_1} {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [AddGroup G] [SubtractionMonoid H] [AddMonoidHomClass F G H] (f : F) (g : ι → G) (n : ℤ)
Goal: ⇑f ∘ (n • g) = n • ⇑f ∘ g
-- map_comp_zpow
@[to_additive]
lemma map_comp_zpow [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (g : ι → G)
    (n : ℤ) : f ∘ (g ^ n) = f ∘ g ^ n 
Arguments: {ι : Type u_1} {G : Type u_7} {H : Type u_8} {F : Type u_9} [FunLike F G H] [Group G] [DivisionMonoid H] [MonoidHomClass F G H] (f : F) (g : ι → G) (n : ℤ)
Goal: ⇑f ∘ (g ^ n) = ⇑f ∘ g ^ n
-- ZeroHom.coe_mk
@[to_additive (attr := simp)]
theorem OneHom.coe_mk [One M] [One N] (f : M → N) (h1) : (OneHom.mk f h1 : M → N) = f 
Arguments: {M : Type u_4} {N : Type u_5} [Zero M] [Zero N] (f : M → N) (h1 : f 0 = 0)
Goal: ⇑{ toFun := f, map_zero' := h1 } = f
-- OneHom.coe_mk
@[to_additive (attr := simp)]
theorem OneHom.coe_mk [One M] [One N] (f : M → N) (h1) : (OneHom.mk f h1 : M → N) = f 
Arguments: {M : Type u_4} {N : Type u_5} [One M] [One N] (f : M → N) (h1 : f 1 = 1)
Goal: ⇑{ toFun := f, map_one' := h1 } = f
-- ZeroHom.toFun_eq_coe
@[to_additive (attr := simp)]
theorem OneHom.toFun_eq_coe [One M] [One N] (f : OneHom M N) : f.toFun = f 
Arguments: {M : Type u_4} {N : Type u_5} [Zero M] [Zero N] (f : ZeroHom M N)
Goal: f.toFun = ⇑f
-- OneHom.toFun_eq_coe
@[to_additive (attr := simp)]
theorem OneHom.toFun_eq_coe [One M] [One N] (f : OneHom M N) : f.toFun = f 
Arguments: {M : Type u_4} {N : Type u_5} [One M] [One N] (f : OneHom M N)
Goal: f.toFun = ⇑f
-- MulHom.coe_mk
@[to_additive (attr := simp)]
theorem MulHom.coe_mk [Mul M] [Mul N] (f : M → N) (hmul) : (MulHom.mk f hmul : M → N) = f 
Arguments: {M : Type u_4} {N : Type u_5} [Mul M] [Mul N] (f : M → N) (hmul : ∀ (x y : M), f (x * y) = f x * f y)
Goal: ⇑{ toFun := f, map_mul' := hmul } = f
-- AddHom.coe_mk
@[to_additive (attr := simp)]
theorem MulHom.coe_mk [Mul M] [Mul N] (f : M → N) (hmul) : (MulHom.mk f hmul : M → N) = f 
Arguments: {M : Type u_4} {N : Type u_5} [Add M] [Add N] (f : M → N) (hmul : ∀ (x y : M), f (x + y) = f x + f y)
Goal: ⇑{ toFun := f, map_add' := hmul } = f
-- AddHom.toFun_eq_coe
@[to_additive (attr := simp)]
theorem MulHom.toFun_eq_coe [Mul M] [Mul N] (f : M →ₙ* N) : f.toFun = f 
Arguments: {M : Type u_4} {N : Type u_5} [Add M] [Add N] (f : AddHom M N)
Goal: f.toFun = ⇑f
-- MulHom.toFun_eq_coe
@[to_additive (attr := simp)]
theorem MulHom.toFun_eq_coe [Mul M] [Mul N] (f : M →ₙ* N) : f.toFun = f 
Arguments: {M : Type u_4} {N : Type u_5} [Mul M] [Mul N] (f : M →ₙ* N)
Goal: f.toFun = ⇑f
-- MonoidHom.coe_mk
@[to_additive (attr := simp)]
theorem MonoidHom.coe_mk [MulOneClass M] [MulOneClass N] (f hmul) :
    (MonoidHom.mk f hmul : M → N) = f 
Arguments: {M : Type u_4} {N : Type u_5} [MulOneClass M] [MulOneClass N] (f : OneHom M N) (hmul : ∀ (x y : M), f.toFun (x * y) = f.toFun x * f.toFun y)
Goal: ⇑{ toOneHom := f, map_mul' := hmul } = ⇑f
-- AddMonoidHom.coe_mk
@[to_additive (attr := simp)]
theorem MonoidHom.coe_mk [MulOneClass M] [MulOneClass N] (f hmul) :
    (MonoidHom.mk f hmul : M → N) = f 
Arguments: {M : Type u_4} {N : Type u_5} [AddZeroClass M] [AddZeroClass N] (f : ZeroHom M N) (hmul : ∀ (x y : M), f.toFun (x + y) = f.toFun x + f.toFun y)
Goal: ⇑{ toZeroHom := f, map_add' := hmul } = ⇑f
-- MonoidHom.toOneHom_coe
@[to_additive (attr := simp)]
theorem MonoidHom.toOneHom_coe [MulOneClass M] [MulOneClass N] (f : M →* N) :
    (f.toOneHom : M → N) = f 
Arguments: {M : Type u_4} {N : Type u_5} [MulOneClass M] [MulOneClass N] (f : M →* N)
Goal: ⇑↑f = ⇑f
-- AddMonoidHom.toZeroHom_coe
@[to_additive (attr := simp)]
theorem MonoidHom.toOneHom_coe [MulOneClass M] [MulOneClass N] (f : M →* N) :
    (f.toOneHom : M → N) = f 
Arguments: {M : Type u_4} {N : Type u_5} [AddZeroClass M] [AddZeroClass N] (f : M →+ N)
Goal: ⇑↑f = ⇑f
-- AddMonoidHom.toAddHom_coe
@[to_additive (attr := simp)]
theorem MonoidHom.toMulHom_coe [MulOneClass M] [MulOneClass N] (f : M →* N) :
    f.toMulHom.toFun = f 
Arguments: {M : Type u_4} {N : Type u_5} [AddZeroClass M] [AddZeroClass N] (f : M →+ N)
Goal: (↑f).toFun = ⇑f
-- MonoidHom.toMulHom_coe
@[to_additive (attr := simp)]
theorem MonoidHom.toMulHom_coe [MulOneClass M] [MulOneClass N] (f : M →* N) :
    f.toMulHom.toFun = f 
Arguments: {M : Type u_4} {N : Type u_5} [MulOneClass M] [MulOneClass N] (f : M →* N)
Goal: (↑f).toFun = ⇑f
-- AddMonoidHom.toFun_eq_coe
@[to_additive]
theorem MonoidHom.toFun_eq_coe [MulOneClass M] [MulOneClass N] (f : M →* N) : f.toFun = f 
Arguments: {M : Type u_4} {N : Type u_5} [AddZeroClass M] [AddZeroClass N] (f : M →+ N)
Goal: (↑f).toFun = ⇑f
-- MonoidHom.toFun_eq_coe
@[to_additive]
theorem MonoidHom.toFun_eq_coe [MulOneClass M] [MulOneClass N] (f : M →* N) : f.toFun = f 
Arguments: {M : Type u_4} {N : Type u_5} [MulOneClass M] [MulOneClass N] (f : M →* N)
Goal: (↑f).toFun = ⇑f
-- ZeroHom.ext
@[to_additive (attr := ext)]
theorem OneHom.ext [One M] [One N] ⦃f g : OneHom M N⦄ (h : ∀ x, f x = g x) : f = g 
Arguments: {M : Type u_4} {N : Type u_5} [Zero M] [Zero N] ⦃f g : ZeroHom M N⦄ (h : ∀ (x : M), f x = g x)
Goal: f = g
-- OneHom.ext
@[to_additive (attr := ext)]
theorem OneHom.ext [One M] [One N] ⦃f g : OneHom M N⦄ (h : ∀ x, f x = g x) : f = g 
Arguments: {M : Type u_4} {N : Type u_5} [One M] [One N] ⦃f g : OneHom M N⦄ (h : ∀ (x : M), f x = g x)
Goal: f = g
-- MulHom.ext
@[to_additive (attr := ext)]
theorem MulHom.ext [Mul M] [Mul N] ⦃f g : M →ₙ* N⦄ (h : ∀ x, f x = g x) : f = g 
Arguments: {M : Type u_4} {N : Type u_5} [Mul M] [Mul N] ⦃f g : M →ₙ* N⦄ (h : ∀ (x : M), f x = g x)
Goal: f = g
-- AddHom.ext
@[to_additive (attr := ext)]
theorem MulHom.ext [Mul M] [Mul N] ⦃f g : M →ₙ* N⦄ (h : ∀ x, f x = g x) : f = g 
Arguments: {M : Type u_4} {N : Type u_5} [Add M] [Add N] ⦃f g : AddHom M N⦄ (h : ∀ (x : M), f x = g x)
Goal: f = g
-- AddMonoidHom.ext
@[to_additive (attr := ext)]
theorem MonoidHom.ext [MulOneClass M] [MulOneClass N] ⦃f g : M →* N⦄ (h : ∀ x, f x = g x) : f = g 
Arguments: {M : Type u_4} {N : Type u_5} [AddZeroClass M] [AddZeroClass N] ⦃f g : M →+ N⦄ (h : ∀ (x : M), f x = g x)
Goal: f = g
-- MonoidHom.ext
@[to_additive (attr := ext)]
theorem MonoidHom.ext [MulOneClass M] [MulOneClass N] ⦃f g : M →* N⦄ (h : ∀ x, f x = g x) : f = g 
Arguments: {M : Type u_4} {N : Type u_5} [MulOneClass M] [MulOneClass N] ⦃f g : M →* N⦄ (h : ∀ (x : M), f x = g x)
Goal: f = g
-- MonoidHom.mk'_apply
@[to_additive (attr := simps (config := .asFn))
  "Makes an additive group homomorphism from a proof that the map preserves addition."]
def mk' (f : M → G) (map_mul : ∀ a b : M, f (a * b) = f a * f b) : M →* G 
Arguments: {M : Type u_4} {G : Type u_7} [Group G] [MulOneClass M] (f : M → G) (map_mul : ∀ (a b : M), f (a * b) = f a * f b)
Goal: ⇑(MonoidHom.mk' f map_mul) = f
-- AddMonoidHom.mk'_apply
@[to_additive (attr := simps (config := .asFn))
  "Makes an additive group homomorphism from a proof that the map preserves addition."]
def mk' (f : M → G) (map_mul : ∀ a b : M, f (a * b) = f a * f b) : M →* G 
Arguments: {M : Type u_4} {G : Type u_7} [AddGroup G] [AddZeroClass M] (f : M → G) (map_mul : ∀ (a b : M), f (a + b) = f a + f b)
Goal: ⇑(AddMonoidHom.mk' f map_mul) = f
-- ZeroHom.mk_coe
@[to_additive (attr := simp)]
theorem OneHom.mk_coe [One M] [One N] (f : OneHom M N) (h1) : OneHom.mk f h1 = f 
Arguments: {M : Type u_4} {N : Type u_5} [Zero M] [Zero N] (f : ZeroHom M N) (h1 : f 0 = 0)
Goal: { toFun := ⇑f, map_zero' := h1 } = f
-- OneHom.mk_coe
@[to_additive (attr := simp)]
theorem OneHom.mk_coe [One M] [One N] (f : OneHom M N) (h1) : OneHom.mk f h1 = f 
Arguments: {M : Type u_4} {N : Type u_5} [One M] [One N] (f : OneHom M N) (h1 : f 1 = 1)
Goal: { toFun := ⇑f, map_one' := h1 } = f
-- MulHom.mk_coe
@[to_additive (attr := simp)]
theorem MulHom.mk_coe [Mul M] [Mul N] (f : M →ₙ* N) (hmul) : MulHom.mk f hmul = f 
Arguments: {M : Type u_4} {N : Type u_5} [Mul M] [Mul N] (f : M →ₙ* N) (hmul : ∀ (x y : M), f (x * y) = f x * f y)
Goal: { toFun := ⇑f, map_mul' := hmul } = f
-- AddHom.mk_coe
@[to_additive (attr := simp)]
theorem MulHom.mk_coe [Mul M] [Mul N] (f : M →ₙ* N) (hmul) : MulHom.mk f hmul = f 
Arguments: {M : Type u_4} {N : Type u_5} [Add M] [Add N] (f : AddHom M N) (hmul : ∀ (x y : M), f (x + y) = f x + f y)
Goal: { toFun := ⇑f, map_add' := hmul } = f
-- AddMonoidHom.mk_coe
@[to_additive (attr := simp)]
theorem MonoidHom.mk_coe [MulOneClass M] [MulOneClass N] (f : M →* N) (hmul) :
    MonoidHom.mk f hmul = f 
Arguments: {M : Type u_4} {N : Type u_5} [AddZeroClass M] [AddZeroClass N] (f : M →+ N) (hmul : ∀ (x y : M), (↑f).toFun (x + y) = (↑f).toFun x + (↑f).toFun y)
Goal: { toZeroHom := ↑f, map_add' := hmul } = f
-- MonoidHom.mk_coe
@[to_additive (attr := simp)]
theorem MonoidHom.mk_coe [MulOneClass M] [MulOneClass N] (f : M →* N) (hmul) :
    MonoidHom.mk f hmul = f 
Arguments: {M : Type u_4} {N : Type u_5} [MulOneClass M] [MulOneClass N] (f : M →* N) (hmul : ∀ (x y : M), (↑f).toFun (x * y) = (↑f).toFun x * (↑f).toFun y)
Goal: { toOneHom := ↑f, map_mul' := hmul } = f
-- ZeroHom.coe_copy
@[to_additive (attr := simp)]
theorem OneHom.coe_copy {_ : One M} {_ : One N} (f : OneHom M N) (f' : M → N) (h : f' = f) :
    (f.copy f' h) = f' 
Arguments: {M : Type u_4} {N : Type u_5}
Goal: ∀ {x : Zero M} {x_1 : Zero N} (f : ZeroHom M N) (f' : M → N) (h : f' = ⇑f), ⇑(f.copy f' h) = f'
-- OneHom.coe_copy
@[to_additive (attr := simp)]
theorem OneHom.coe_copy {_ : One M} {_ : One N} (f : OneHom M N) (f' : M → N) (h : f' = f) :
    (f.copy f' h) = f' 
Arguments: {M : Type u_4} {N : Type u_5}
Goal: ∀ {x : One M} {x_1 : One N} (f : OneHom M N) (f' : M → N) (h : f' = ⇑f), ⇑(f.copy f' h) = f'
-- ZeroHom.coe_copy_eq
@[to_additive]
theorem OneHom.coe_copy_eq {_ : One M} {_ : One N} (f : OneHom M N) (f' : M → N) (h : f' = f) :
    f.copy f' h = f 
Arguments: {M : Type u_4} {N : Type u_5}
Goal: ∀ {x : Zero M} {x_1 : Zero N} (f : ZeroHom M N) (f' : M → N) (h : f' = ⇑f), f.copy f' h = f
-- OneHom.coe_copy_eq
@[to_additive]
theorem OneHom.coe_copy_eq {_ : One M} {_ : One N} (f : OneHom M N) (f' : M → N) (h : f' = f) :
    f.copy f' h = f 
Arguments: {M : Type u_4} {N : Type u_5}
Goal: ∀ {x : One M} {x_1 : One N} (f : OneHom M N) (f' : M → N) (h : f' = ⇑f), f.copy f' h = f
-- MulHom.coe_copy
@[to_additive (attr := simp)]
theorem MulHom.coe_copy {_ : Mul M} {_ : Mul N} (f : M →ₙ* N) (f' : M → N) (h : f' = f) :
    (f.copy f' h) = f' 
Arguments: {M : Type u_4} {N : Type u_5}
Goal: ∀ {x : Mul M} {x_1 : Mul N} (f : M →ₙ* N) (f' : M → N) (h : f' = ⇑f), ⇑(f.copy f' h) = f'
-- AddHom.coe_copy
@[to_additive (attr := simp)]
theorem MulHom.coe_copy {_ : Mul M} {_ : Mul N} (f : M →ₙ* N) (f' : M → N) (h : f' = f) :
    (f.copy f' h) = f' 
Arguments: {M : Type u_4} {N : Type u_5}
Goal: ∀ {x : Add M} {x_1 : Add N} (f : AddHom M N) (f' : M → N) (h : f' = ⇑f), ⇑(f.copy f' h) = f'
-- AddHom.coe_copy_eq
@[to_additive]
theorem MulHom.coe_copy_eq {_ : Mul M} {_ : Mul N} (f : M →ₙ* N) (f' : M → N) (h : f' = f) :
    f.copy f' h = f 
Arguments: {M : Type u_4} {N : Type u_5}
Goal: ∀ {x : Add M} {x_1 : Add N} (f : AddHom M N) (f' : M → N) (h : f' = ⇑f), f.copy f' h = f