ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- MulHom.prod_unique
@[to_additive (attr := simp) prod_unique]
theorem prod_unique (f : M →ₙ* N × P) : ((fst N P).comp f).prod ((snd N P).comp f) = f 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [Mul M] [Mul N] [Mul P] (f : M →ₙ* N × P)
Goal: ((MulHom.fst N P).comp f).prod ((MulHom.snd N P).comp f) = f
-- AddHom.prod_unique
@[to_additive (attr := simp) prod_unique]
theorem prod_unique (f : M →ₙ* N × P) : ((fst N P).comp f).prod ((snd N P).comp f) = f 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [Add M] [Add N] [Add P] (f : AddHom M (N × P))
Goal: ((AddHom.fst N P).comp f).prod ((AddHom.snd N P).comp f) = f
-- MulHom.prodMap_def
@[to_additive prodMap_def]
theorem prodMap_def : prodMap f g = (f.comp (fst M N)).prod (g.comp (snd M N)) 
Arguments: {M : Type u_5} {N : Type u_6} {M' : Type u_8} {N' : Type u_9} [Mul M] [Mul N] [Mul M'] [Mul N'] (f : M →ₙ* M') (g : N →ₙ* N')
Goal: f.prodMap g = (f.comp (MulHom.fst M N)).prod (g.comp (MulHom.snd M N))
-- AddHom.prodMap_def
@[to_additive prodMap_def]
theorem prodMap_def : prodMap f g = (f.comp (fst M N)).prod (g.comp (snd M N)) 
Arguments: {M : Type u_5} {N : Type u_6} {M' : Type u_8} {N' : Type u_9} [Add M] [Add N] [Add M'] [Add N'] (f : AddHom M M') (g : AddHom N N')
Goal: f.prodMap g = (f.comp (AddHom.fst M N)).prod (g.comp (AddHom.snd M N))
-- AddHom.coe_prodMap
@[to_additive (attr := simp) coe_prodMap]
theorem coe_prodMap : ⇑(prodMap f g) = Prod.map f g 
Arguments: {M : Type u_5} {N : Type u_6} {M' : Type u_8} {N' : Type u_9} [Add M] [Add N] [Add M'] [Add N'] (f : AddHom M M') (g : AddHom N N')
Goal: ⇑(f.prodMap g) = Prod.map ⇑f ⇑g
-- MulHom.coe_prodMap
@[to_additive (attr := simp) coe_prodMap]
theorem coe_prodMap : ⇑(prodMap f g) = Prod.map f g 
Arguments: {M : Type u_5} {N : Type u_6} {M' : Type u_8} {N' : Type u_9} [Mul M] [Mul N] [Mul M'] [Mul N'] (f : M →ₙ* M') (g : N →ₙ* N')
Goal: ⇑(f.prodMap g) = Prod.map ⇑f ⇑g
-- AddHom.prod_comp_prodMap
@[to_additive prod_comp_prodMap]
theorem prod_comp_prodMap (f : P →ₙ* M) (g : P →ₙ* N) (f' : M →ₙ* M') (g' : N →ₙ* N') :
    (f'.prodMap g').comp (f.prod g) = (f'.comp f).prod (g'.comp g) 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} {M' : Type u_8} {N' : Type u_9} [Add M] [Add N] [Add M'] [Add N'] [Add P] (f : AddHom P M) (g : AddHom P N) (f' : AddHom M M') (g' : AddHom N N')
Goal: (f'.prodMap g').comp (f.prod g) = (f'.comp f).prod (g'.comp g)
-- MulHom.prod_comp_prodMap
@[to_additive prod_comp_prodMap]
theorem prod_comp_prodMap (f : P →ₙ* M) (g : P →ₙ* N) (f' : M →ₙ* M') (g' : N →ₙ* N') :
    (f'.prodMap g').comp (f.prod g) = (f'.comp f).prod (g'.comp g) 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} {M' : Type u_8} {N' : Type u_9} [Mul M] [Mul N] [Mul M'] [Mul N'] [Mul P] (f : P →ₙ* M) (g : P →ₙ* N) (f' : M →ₙ* M') (g' : N →ₙ* N')
Goal: (f'.prodMap g').comp (f.prod g) = (f'.comp f).prod (g'.comp g)
-- AddHom.coprod_apply
@[to_additive (attr := simp)]
theorem coprod_apply (p : M × N) : f.coprod g p = f p.1 * g p.2 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [Add M] [Add N] [AddCommSemigroup P] (f : AddHom M P) (g : AddHom N P) (p : M × N)
Goal: (f.coprod g) p = f p.1 + g p.2
-- MulHom.coprod_apply
@[to_additive (attr := simp)]
theorem coprod_apply (p : M × N) : f.coprod g p = f p.1 * g p.2 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [Mul M] [Mul N] [CommSemigroup P] (f : M →ₙ* P) (g : N →ₙ* P) (p : M × N)
Goal: (f.coprod g) p = f p.1 * g p.2
-- MulHom.comp_coprod
@[to_additive]
theorem comp_coprod {Q : Type*} [CommSemigroup Q] (h : P →ₙ* Q) (f : M →ₙ* P) (g : N →ₙ* P) :
    h.comp (f.coprod g) = (h.comp f).coprod (h.comp g) 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [Mul M] [Mul N] [CommSemigroup P] {Q : Type u_8} [CommSemigroup Q] (h : P →ₙ* Q) (f : M →ₙ* P) (g : N →ₙ* P)
Goal: h.comp (f.coprod g) = (h.comp f).coprod (h.comp g)
-- AddHom.comp_coprod
@[to_additive]
theorem comp_coprod {Q : Type*} [CommSemigroup Q] (h : P →ₙ* Q) (f : M →ₙ* P) (g : N →ₙ* P) :
    h.comp (f.coprod g) = (h.comp f).coprod (h.comp g) 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [Add M] [Add N] [AddCommSemigroup P] {Q : Type u_8} [AddCommSemigroup Q] (h : AddHom P Q) (f : AddHom M P) (g : AddHom N P)
Goal: h.comp (f.coprod g) = (h.comp f).coprod (h.comp g)
-- MonoidHom.coe_fst
@[to_additive (attr := simp)]
theorem coe_fst : ⇑(fst M N) = Prod.fst 
Arguments: {M : Type u_5} {N : Type u_6} [MulOneClass M] [MulOneClass N]
Goal: ⇑(MonoidHom.fst M N) = Prod.fst
-- AddMonoidHom.coe_fst
@[to_additive (attr := simp)]
theorem coe_fst : ⇑(fst M N) = Prod.fst 
Arguments: {M : Type u_5} {N : Type u_6} [AddZeroClass M] [AddZeroClass N]
Goal: ⇑(AddMonoidHom.fst M N) = Prod.fst
-- AddMonoidHom.coe_snd
@[to_additive (attr := simp)]
theorem coe_snd : ⇑(snd M N) = Prod.snd 
Arguments: {M : Type u_5} {N : Type u_6} [AddZeroClass M] [AddZeroClass N]
Goal: ⇑(AddMonoidHom.snd M N) = Prod.snd
-- MonoidHom.coe_snd
@[to_additive (attr := simp)]
theorem coe_snd : ⇑(snd M N) = Prod.snd 
Arguments: {M : Type u_5} {N : Type u_6} [MulOneClass M] [MulOneClass N]
Goal: ⇑(MonoidHom.snd M N) = Prod.snd
-- MonoidHom.inl_apply
@[to_additive (attr := simp)]
theorem inl_apply (x) : inl M N x = (x, 1) 
Arguments: {M : Type u_5} {N : Type u_6} [MulOneClass M] [MulOneClass N] (x : M)
Goal: (MonoidHom.inl M N) x = (x, 1)
-- AddMonoidHom.inl_apply
@[to_additive (attr := simp)]
theorem inl_apply (x) : inl M N x = (x, 1) 
Arguments: {M : Type u_5} {N : Type u_6} [AddZeroClass M] [AddZeroClass N] (x : M)
Goal: (AddMonoidHom.inl M N) x = (x, 0)
-- MonoidHom.inr_apply
@[to_additive (attr := simp)]
theorem inr_apply (y) : inr M N y = (1, y) 
Arguments: {M : Type u_5} {N : Type u_6} [MulOneClass M] [MulOneClass N] (y : N)
Goal: (MonoidHom.inr M N) y = (1, y)
-- AddMonoidHom.inr_apply
@[to_additive (attr := simp)]
theorem inr_apply (y) : inr M N y = (1, y) 
Arguments: {M : Type u_5} {N : Type u_6} [AddZeroClass M] [AddZeroClass N] (y : N)
Goal: (AddMonoidHom.inr M N) y = (0, y)
-- AddMonoidHom.fst_comp_inl
@[to_additive (attr := simp)]
theorem fst_comp_inl : (fst M N).comp (inl M N) = id M 
Arguments: {M : Type u_5} {N : Type u_6} [AddZeroClass M] [AddZeroClass N]
Goal: (AddMonoidHom.fst M N).comp (AddMonoidHom.inl M N) = AddMonoidHom.id M
-- MonoidHom.fst_comp_inl
@[to_additive (attr := simp)]
theorem fst_comp_inl : (fst M N).comp (inl M N) = id M 
Arguments: {M : Type u_5} {N : Type u_6} [MulOneClass M] [MulOneClass N]
Goal: (MonoidHom.fst M N).comp (MonoidHom.inl M N) = MonoidHom.id M
-- AddMonoidHom.snd_comp_inl
@[to_additive (attr := simp)]
theorem snd_comp_inl : (snd M N).comp (inl M N) = 1 
Arguments: {M : Type u_5} {N : Type u_6} [AddZeroClass M] [AddZeroClass N]
Goal: (AddMonoidHom.snd M N).comp (AddMonoidHom.inl M N) = 0
-- MonoidHom.snd_comp_inl
@[to_additive (attr := simp)]
theorem snd_comp_inl : (snd M N).comp (inl M N) = 1 
Arguments: {M : Type u_5} {N : Type u_6} [MulOneClass M] [MulOneClass N]
Goal: (MonoidHom.snd M N).comp (MonoidHom.inl M N) = 1
-- AddMonoidHom.fst_comp_inr
@[to_additive (attr := simp)]
theorem fst_comp_inr : (fst M N).comp (inr M N) = 1 
Arguments: {M : Type u_5} {N : Type u_6} [AddZeroClass M] [AddZeroClass N]
Goal: (AddMonoidHom.fst M N).comp (AddMonoidHom.inr M N) = 0
-- MonoidHom.fst_comp_inr
@[to_additive (attr := simp)]
theorem fst_comp_inr : (fst M N).comp (inr M N) = 1 
Arguments: {M : Type u_5} {N : Type u_6} [MulOneClass M] [MulOneClass N]
Goal: (MonoidHom.fst M N).comp (MonoidHom.inr M N) = 1
-- MonoidHom.snd_comp_inr
@[to_additive (attr := simp)]
theorem snd_comp_inr : (snd M N).comp (inr M N) = id N 
Arguments: {M : Type u_5} {N : Type u_6} [MulOneClass M] [MulOneClass N]
Goal: (MonoidHom.snd M N).comp (MonoidHom.inr M N) = MonoidHom.id N
-- AddMonoidHom.snd_comp_inr
@[to_additive (attr := simp)]
theorem snd_comp_inr : (snd M N).comp (inr M N) = id N 
Arguments: {M : Type u_5} {N : Type u_6} [AddZeroClass M] [AddZeroClass N]
Goal: (AddMonoidHom.snd M N).comp (AddMonoidHom.inr M N) = AddMonoidHom.id N
-- AddMonoidHom.addCommute_inl_inr
@[to_additive]
theorem commute_inl_inr (m : M) (n : N) : Commute (inl M N m) (inr M N n) 
Arguments: {M : Type u_5} {N : Type u_6} [AddZeroClass M] [AddZeroClass N] (m : M) (n : N)
Goal: AddCommute ((AddMonoidHom.inl M N) m) ((AddMonoidHom.inr M N) n)
-- MonoidHom.commute_inl_inr
@[to_additive]
theorem commute_inl_inr (m : M) (n : N) : Commute (inl M N m) (inr M N n) 
Arguments: {M : Type u_5} {N : Type u_6} [MulOneClass M] [MulOneClass N] (m : M) (n : N)
Goal: Commute ((MonoidHom.inl M N) m) ((MonoidHom.inr M N) n)
-- AddMonoidHom.coe_prod
@[to_additive coe_prod]
theorem coe_prod (f : M →* N) (g : M →* P) : ⇑(f.prod g) = Pi.prod f g 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [AddZeroClass M] [AddZeroClass N] [AddZeroClass P] (f : M →+ N) (g : M →+ P)
Goal: ⇑(f.prod g) = Pi.prod ⇑f ⇑g
-- MonoidHom.coe_prod
@[to_additive coe_prod]
theorem coe_prod (f : M →* N) (g : M →* P) : ⇑(f.prod g) = Pi.prod f g 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [MulOneClass M] [MulOneClass N] [MulOneClass P] (f : M →* N) (g : M →* P)
Goal: ⇑(f.prod g) = Pi.prod ⇑f ⇑g
-- AddMonoidHom.prod_apply
@[to_additive (attr := simp) prod_apply]
theorem prod_apply (f : M →* N) (g : M →* P) (x) : f.prod g x = (f x, g x) 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [AddZeroClass M] [AddZeroClass N] [AddZeroClass P] (f : M →+ N) (g : M →+ P) (x : M)
Goal: (f.prod g) x = (f x, g x)
-- MonoidHom.prod_apply
@[to_additive (attr := simp) prod_apply]
theorem prod_apply (f : M →* N) (g : M →* P) (x) : f.prod g x = (f x, g x) 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [MulOneClass M] [MulOneClass N] [MulOneClass P] (f : M →* N) (g : M →* P) (x : M)
Goal: (f.prod g) x = (f x, g x)
-- AddMonoidHom.fst_comp_prod
@[to_additive (attr := simp) fst_comp_prod]
theorem fst_comp_prod (f : M →* N) (g : M →* P) : (fst N P).comp (f.prod g) = f 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [AddZeroClass M] [AddZeroClass N] [AddZeroClass P] (f : M →+ N) (g : M →+ P)
Goal: (AddMonoidHom.fst N P).comp (f.prod g) = f
-- MonoidHom.fst_comp_prod
@[to_additive (attr := simp) fst_comp_prod]
theorem fst_comp_prod (f : M →* N) (g : M →* P) : (fst N P).comp (f.prod g) = f 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [MulOneClass M] [MulOneClass N] [MulOneClass P] (f : M →* N) (g : M →* P)
Goal: (MonoidHom.fst N P).comp (f.prod g) = f
-- AddMonoidHom.snd_comp_prod
@[to_additive (attr := simp) snd_comp_prod]
theorem snd_comp_prod (f : M →* N) (g : M →* P) : (snd N P).comp (f.prod g) = g 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [AddZeroClass M] [AddZeroClass N] [AddZeroClass P] (f : M →+ N) (g : M →+ P)
Goal: (AddMonoidHom.snd N P).comp (f.prod g) = g
-- MonoidHom.snd_comp_prod
@[to_additive (attr := simp) snd_comp_prod]
theorem snd_comp_prod (f : M →* N) (g : M →* P) : (snd N P).comp (f.prod g) = g 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [MulOneClass M] [MulOneClass N] [MulOneClass P] (f : M →* N) (g : M →* P)
Goal: (MonoidHom.snd N P).comp (f.prod g) = g
-- MonoidHom.prod_unique
@[to_additive (attr := simp) prod_unique]
theorem prod_unique (f : M →* N × P) : ((fst N P).comp f).prod ((snd N P).comp f) = f 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [MulOneClass M] [MulOneClass N] [MulOneClass P] (f : M →* N × P)
Goal: ((MonoidHom.fst N P).comp f).prod ((MonoidHom.snd N P).comp f) = f
-- AddMonoidHom.prod_unique
@[to_additive (attr := simp) prod_unique]
theorem prod_unique (f : M →* N × P) : ((fst N P).comp f).prod ((snd N P).comp f) = f 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [AddZeroClass M] [AddZeroClass N] [AddZeroClass P] (f : M →+ N × P)
Goal: ((AddMonoidHom.fst N P).comp f).prod ((AddMonoidHom.snd N P).comp f) = f
-- MonoidHom.prodMap_def
@[to_additive prodMap_def]
theorem prodMap_def : prodMap f g = (f.comp (fst M N)).prod (g.comp (snd M N)) 
Arguments: {M : Type u_5} {N : Type u_6} [MulOneClass M] [MulOneClass N] {M' : Type u_8} {N' : Type u_9} [MulOneClass M'] [MulOneClass N'] (f : M →* M') (g : N →* N')
Goal: f.prodMap g = (f.comp (MonoidHom.fst M N)).prod (g.comp (MonoidHom.snd M N))
-- AddMonoidHom.prodMap_def
@[to_additive prodMap_def]
theorem prodMap_def : prodMap f g = (f.comp (fst M N)).prod (g.comp (snd M N)) 
Arguments: {M : Type u_5} {N : Type u_6} [AddZeroClass M] [AddZeroClass N] {M' : Type u_8} {N' : Type u_9} [AddZeroClass M'] [AddZeroClass N'] (f : M →+ M') (g : N →+ N')
Goal: f.prodMap g = (f.comp (AddMonoidHom.fst M N)).prod (g.comp (AddMonoidHom.snd M N))
-- MonoidHom.coe_prodMap
@[to_additive (attr := simp) coe_prodMap]
theorem coe_prodMap : ⇑(prodMap f g) = Prod.map f g 
Arguments: {M : Type u_5} {N : Type u_6} [MulOneClass M] [MulOneClass N] {M' : Type u_8} {N' : Type u_9} [MulOneClass M'] [MulOneClass N'] (f : M →* M') (g : N →* N')
Goal: ⇑(f.prodMap g) = Prod.map ⇑f ⇑g
-- AddMonoidHom.coe_prodMap
@[to_additive (attr := simp) coe_prodMap]
theorem coe_prodMap : ⇑(prodMap f g) = Prod.map f g 
Arguments: {M : Type u_5} {N : Type u_6} [AddZeroClass M] [AddZeroClass N] {M' : Type u_8} {N' : Type u_9} [AddZeroClass M'] [AddZeroClass N'] (f : M →+ M') (g : N →+ N')
Goal: ⇑(f.prodMap g) = Prod.map ⇑f ⇑g
-- AddMonoidHom.prod_comp_prodMap
@[to_additive prod_comp_prodMap]
theorem prod_comp_prodMap (f : P →* M) (g : P →* N) (f' : M →* M') (g' : N →* N') :
    (f'.prodMap g').comp (f.prod g) = (f'.comp f).prod (g'.comp g) 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [AddZeroClass M] [AddZeroClass N] {M' : Type u_8} {N' : Type u_9} [AddZeroClass M'] [AddZeroClass N'] [AddZeroClass P] (f : P →+ M) (g : P →+ N) (f' : M →+ M') (g' : N →+ N')
Goal: (f'.prodMap g').comp (f.prod g) = (f'.comp f).prod (g'.comp g)
-- MonoidHom.prod_comp_prodMap
@[to_additive prod_comp_prodMap]
theorem prod_comp_prodMap (f : P →* M) (g : P →* N) (f' : M →* M') (g' : N →* N') :
    (f'.prodMap g').comp (f.prod g) = (f'.comp f).prod (g'.comp g) 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [MulOneClass M] [MulOneClass N] {M' : Type u_8} {N' : Type u_9} [MulOneClass M'] [MulOneClass N'] [MulOneClass P] (f : P →* M) (g : P →* N) (f' : M →* M') (g' : N →* N')
Goal: (f'.prodMap g').comp (f.prod g) = (f'.comp f).prod (g'.comp g)
-- AddMonoidHom.coprod_apply
@[to_additive (attr := simp)]
theorem coprod_apply (p : M × N) : f.coprod g p = f p.1 * g p.2 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [AddZeroClass M] [AddZeroClass N] [AddCommMonoid P] (f : M →+ P) (g : N →+ P) (p : M × N)
Goal: (f.coprod g) p = f p.1 + g p.2
-- MonoidHom.coprod_apply
@[to_additive (attr := simp)]
theorem coprod_apply (p : M × N) : f.coprod g p = f p.1 * g p.2 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [MulOneClass M] [MulOneClass N] [CommMonoid P] (f : M →* P) (g : N →* P) (p : M × N)
Goal: (f.coprod g) p = f p.1 * g p.2
-- MonoidHom.coprod_comp_inl
@[to_additive (attr := simp)]
theorem coprod_comp_inl : (f.coprod g).comp (inl M N) = f 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [MulOneClass M] [MulOneClass N] [CommMonoid P] (f : M →* P) (g : N →* P)
Goal: (f.coprod g).comp (MonoidHom.inl M N) = f
-- AddMonoidHom.coprod_comp_inl
@[to_additive (attr := simp)]
theorem coprod_comp_inl : (f.coprod g).comp (inl M N) = f 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [AddZeroClass M] [AddZeroClass N] [AddCommMonoid P] (f : M →+ P) (g : N →+ P)
Goal: (f.coprod g).comp (AddMonoidHom.inl M N) = f
-- AddMonoidHom.coprod_comp_inr
@[to_additive (attr := simp)]
theorem coprod_comp_inr : (f.coprod g).comp (inr M N) = g 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [AddZeroClass M] [AddZeroClass N] [AddCommMonoid P] (f : M →+ P) (g : N →+ P)
Goal: (f.coprod g).comp (AddMonoidHom.inr M N) = g
-- MonoidHom.coprod_comp_inr
@[to_additive (attr := simp)]
theorem coprod_comp_inr : (f.coprod g).comp (inr M N) = g 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [MulOneClass M] [MulOneClass N] [CommMonoid P] (f : M →* P) (g : N →* P)
Goal: (f.coprod g).comp (MonoidHom.inr M N) = g
-- MonoidHom.coprod_unique
@[to_additive (attr := simp)]
theorem coprod_unique (f : M × N →* P) : (f.comp (inl M N)).coprod (f.comp (inr M N)) = f 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [MulOneClass M] [MulOneClass N] [CommMonoid P] (f : M × N →* P)
Goal: (f.comp (MonoidHom.inl M N)).coprod (f.comp (MonoidHom.inr M N)) = f
-- AddMonoidHom.coprod_unique
@[to_additive (attr := simp)]
theorem coprod_unique (f : M × N →* P) : (f.comp (inl M N)).coprod (f.comp (inr M N)) = f 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [AddZeroClass M] [AddZeroClass N] [AddCommMonoid P] (f : M × N →+ P)
Goal: (f.comp (AddMonoidHom.inl M N)).coprod (f.comp (AddMonoidHom.inr M N)) = f
-- AddMonoidHom.coprod_inl_inr
@[to_additive (attr := simp)]
theorem coprod_inl_inr {M N : Type*} [CommMonoid M] [CommMonoid N] :
    (inl M N).coprod (inr M N) = id (M × N) 
Arguments: {M : Type u_8} {N : Type u_9} [AddCommMonoid M] [AddCommMonoid N]
Goal: (AddMonoidHom.inl M N).coprod (AddMonoidHom.inr M N) = AddMonoidHom.id (M × N)
-- MonoidHom.coprod_inl_inr
@[to_additive (attr := simp)]
theorem coprod_inl_inr {M N : Type*} [CommMonoid M] [CommMonoid N] :
    (inl M N).coprod (inr M N) = id (M × N) 
Arguments: {M : Type u_8} {N : Type u_9} [CommMonoid M] [CommMonoid N]
Goal: (MonoidHom.inl M N).coprod (MonoidHom.inr M N) = MonoidHom.id (M × N)
-- AddMonoidHom.comp_coprod
@[to_additive]
theorem comp_coprod {Q : Type*} [CommMonoid Q] (h : P →* Q) (f : M →* P) (g : N →* P) :
    h.comp (f.coprod g) = (h.comp f).coprod (h.comp g) 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [AddZeroClass M] [AddZeroClass N] [AddCommMonoid P] {Q : Type u_8} [AddCommMonoid Q] (h : P →+ Q) (f : M →+ P) (g : N →+ P)
Goal: h.comp (f.coprod g) = (h.comp f).coprod (h.comp g)
-- MonoidHom.comp_coprod
@[to_additive]
theorem comp_coprod {Q : Type*} [CommMonoid Q] (h : P →* Q) (f : M →* P) (g : N →* P) :
    h.comp (f.coprod g) = (h.comp f).coprod (h.comp g) 
Arguments: {M : Type u_5} {N : Type u_6} {P : Type u_7} [MulOneClass M] [MulOneClass N] [CommMonoid P] {Q : Type u_8} [CommMonoid Q] (h : P →* Q) (f : M →* P) (g : N →* P)
Goal: h.comp (f.coprod g) = (h.comp f).coprod (h.comp g)
-- AddEquiv.coe_prodComm
@[to_additive (attr := simp) coe_prodComm]
theorem coe_prodComm : ⇑(prodComm : M × N ≃* N × M) = Prod.swap 
Arguments: {M : Type u_5} {N : Type u_6} [AddZeroClass M] [AddZeroClass N]
Goal: ⇑AddEquiv.prodComm = Prod.swap
-- MulEquiv.coe_prodComm
@[to_additive (attr := simp) coe_prodComm]
theorem coe_prodComm : ⇑(prodComm : M × N ≃* N × M) = Prod.swap 
Arguments: {M : Type u_5} {N : Type u_6} [MulOneClass M] [MulOneClass N]
Goal: ⇑MulEquiv.prodComm = Prod.swap
-- MulEquiv.coe_prodComm_symm
@[to_additive (attr := simp) coe_prodComm_symm]
theorem coe_prodComm_symm : ⇑(prodComm : M × N ≃* N × M).symm = Prod.swap 
Arguments: {M : Type u_5} {N : Type u_6} [MulOneClass M] [MulOneClass N]
Goal: ⇑MulEquiv.prodComm.symm = Prod.swap
-- AddEquiv.coe_prodComm_symm
@[to_additive (attr := simp) coe_prodComm_symm]
theorem coe_prodComm_symm : ⇑(prodComm : M × N ≃* N × M).symm = Prod.swap 
Arguments: {M : Type u_5} {N : Type u_6} [AddZeroClass M] [AddZeroClass N]
Goal: ⇑AddEquiv.prodComm.symm = Prod.swap
-- MulEquiv.prodProdProdComm_apply
@[to_additive (attr := simps apply) prodProdProdComm
    "Four-way commutativity of `Prod`.\nThe name matches `mul_mul_mul_comm`"]
def prodProdProdComm : (M × N) × M' × N' ≃* (M × M') × N × N' 
Arguments: (M : Type u_5) (N : Type u_6) [MulOneClass M] [MulOneClass N] (M' : Type u_8) (N' : Type u_9) [MulOneClass M'] [MulOneClass N'] (mnmn : (M × N) × M' × N')
Goal: (MulEquiv.prodProdProdComm M N M' N') mnmn = ((mnmn.1.1, mnmn.2.1), mnmn.1.2, mnmn.2.2)
-- AddEquiv.prodProdProdComm_apply
@[to_additive (attr := simps apply) prodProdProdComm
    "Four-way commutativity of `Prod`.\nThe name matches `mul_mul_mul_comm`"]
def prodProdProdComm : (M × N) × M' × N' ≃* (M × M') × N × N' 
Arguments: (M : Type u_5) (N : Type u_6) [AddZeroClass M] [AddZeroClass N] (M' : Type u_8) (N' : Type u_9) [AddZeroClass M'] [AddZeroClass N'] (mnmn : (M × N) × M' × N')
Goal: (AddEquiv.prodProdProdComm M N M' N') mnmn = ((mnmn.1.1, mnmn.2.1), mnmn.1.2, mnmn.2.2)
-- MulEquiv.prodProdProdComm_toEquiv
@[to_additive (attr := simp) prodProdProdComm_toEquiv]
theorem prodProdProdComm_toEquiv :
    (prodProdProdComm M N M' N' : _ ≃ _) = Equiv.prodProdProdComm M N M' N' 
Arguments: (M : Type u_5) (N : Type u_6) [MulOneClass M] [MulOneClass N] (M' : Type u_8) (N' : Type u_9) [MulOneClass M'] [MulOneClass N']
Goal: ↑(MulEquiv.prodProdProdComm M N M' N') = Equiv.prodProdProdComm M N M' N'
-- AddEquiv.prodProdProdComm_toEquiv
@[to_additive (attr := simp) prodProdProdComm_toEquiv]
theorem prodProdProdComm_toEquiv :
    (prodProdProdComm M N M' N' : _ ≃ _) = Equiv.prodProdProdComm M N M' N' 
Arguments: (M : Type u_5) (N : Type u_6) [AddZeroClass M] [AddZeroClass N] (M' : Type u_8) (N' : Type u_9) [AddZeroClass M'] [AddZeroClass N']
Goal: ↑(AddEquiv.prodProdProdComm M N M' N') = Equiv.prodProdProdComm M N M' N'
-- MulEquiv.prodProdProdComm_symm
@[simp]
theorem prodProdProdComm_symm : (prodProdProdComm M N M' N').symm = prodProdProdComm M M' N N' 
Arguments: (M : Type u_5) (N : Type u_6) [MulOneClass M] [MulOneClass N] (M' : Type u_8) (N' : Type u_9) [MulOneClass M'] [MulOneClass N']
Goal: (MulEquiv.prodProdProdComm M N M' N').symm = MulEquiv.prodProdProdComm M M' N N'
-- Units.embedProduct_apply
@[to_additive (attr := simps)
      "Canonical homomorphism of additive monoids from `AddUnits α` into `α × αᵃᵒᵖ`.
      Used mainly to define the natural topology of `AddUnits α`."]
def embedProduct (α : Type*) [Monoid α] : αˣ →* α × αᵐᵒᵖ 
Arguments: (α : Type u_8) [Monoid α] (x : αˣ)
Goal: (Units.embedProduct α) x = (↑x, MulOpposite.op ↑x⁻¹)
-- AddUnits.embedProduct_apply
@[to_additive (attr := simps)
      "Canonical homomorphism of additive monoids from `AddUnits α` into `α × αᵃᵒᵖ`.
      Used mainly to define the natural topology of `AddUnits α`."]
def embedProduct (α : Type*) [Monoid α] : αˣ →* α × αᵐᵒᵖ 
Arguments: (α : Type u_8) [AddMonoid α] (x : AddUnits α)
Goal: (AddUnits.embedProduct α) x = (↑x, AddOpposite.op ↑(-x))
-- AddUnits.embedProduct_injective
@[to_additive]
theorem embedProduct_injective (α : Type*) [Monoid α] : Function.Injective (embedProduct α) 
Arguments: (α : Type u_8) [AddMonoid α]
Goal: Function.Injective ⇑(AddUnits.embedProduct α)
-- Units.embedProduct_injective
@[to_additive]
theorem embedProduct_injective (α : Type*) [Monoid α] : Function.Injective (embedProduct α) 
Arguments: (α : Type u_8) [Monoid α]
Goal: Function.Injective ⇑(Units.embedProduct α)
-- mulMulHom_apply
@[to_additive (attr := simps) "Addition as an additive homomorphism."]
def mulMulHom [CommSemigroup α] :
    α × α →ₙ* α 
Arguments: {α : Type u_8} [CommSemigroup α] (a : α × α)
Goal: mulMulHom a = a.1 * a.2
-- addAddHom_apply
@[to_additive (attr := simps) "Addition as an additive homomorphism."]
def mulMulHom [CommSemigroup α] :
    α × α →ₙ* α 
Arguments: {α : Type u_8} [AddCommSemigroup α] (a : α × α)
Goal: addAddHom a = a.1 + a.2
-- mulMonoidHom_apply
@[to_additive (attr := simps) "Addition as an additive monoid homomorphism."]
def mulMonoidHom [CommMonoid α] : α × α →* α 
Arguments: {α : Type u_8} [CommMonoid α]
Goal: ∀ (a : α × α), mulMonoidHom a = mulMulHom.toFun a
-- addAddMonoidHom_apply
@[to_additive (attr := simps) "Addition as an additive monoid homomorphism."]
def mulMonoidHom [CommMonoid α] : α × α →* α 
Arguments: {α : Type u_8} [AddCommMonoid α]
Goal: ∀ (a : α × α), addAddMonoidHom a = addAddHom.toFun a
-- subAddMonoidHom_apply
@[to_additive (attr := simps) "Subtraction as an additive monoid homomorphism."]
def divMonoidHom [DivisionCommMonoid α] : α × α →* α 
Arguments: {α : Type u_8} [SubtractionCommMonoid α] (a : α × α)
Goal: subAddMonoidHom a = a.1 - a.2
-- divMonoidHom_apply
@[to_additive (attr := simps) "Subtraction as an additive monoid homomorphism."]
def divMonoidHom [DivisionCommMonoid α] : α × α →* α 
Arguments: {α : Type u_8} [DivisionCommMonoid α] (a : α × α)
Goal: divMonoidHom a = a.1 / a.2
-- RingHom.toRatAlgHom_toRingHom
@[simp]
theorem toRatAlgHom_toRingHom [Ring R] [Ring S] [Algebra ℚ R] [Algebra ℚ S] (f : R →+* S) :
    ↑f.toRatAlgHom = f 
Arguments: {R : Type u_1} {S : Type u_2} [Ring R] [Ring S] [Algebra ℚ R] [Algebra ℚ S] (f : R →+* S)
Goal: ↑f.toRatAlgHom = f