File: Mathlib/CategoryTheory/Preadditive/OfBiproducts.lean

full_name: CategoryTheory.SemiadditiveOfBinaryBiproducts.leftAdd
code: /-- `f +ₗ g` is the composite `X ⟶ Y ⊞ Y ⟶ Y`, where the first map is `(f, g)` and the second map
    is `(𝟙 𝟙)`. -/
@[simp]
def leftAdd (f g : X ⟶ Y) : X ⟶ Y 
goal: X ⟶ Y

full_name: CategoryTheory.SemiadditiveOfBinaryBiproducts.rightAdd
code: /-- `f +ᵣ g` is the composite `X ⟶ X ⊞ X ⟶ Y`, where the first map is `(𝟙, 𝟙)` and the second map
    is `(f g)`. -/
@[simp]
def rightAdd (f g : X ⟶ Y) : X ⟶ Y 
goal: X ⟶ Y

full_name: CategoryTheory.SemiadditiveOfBinaryBiproducts.«_aux_Mathlib_CategoryTheory_Preadditive_OfBiproducts___macroRules_CategoryTheory_SemiadditiveOfBinaryBiproducts_term_+ₗ__1»
code: local infixr:65 " +ₗ " => leftAdd X Y
goal: Lean.Macro

full_name: CategoryTheory.SemiadditiveOfBinaryBiproducts.«_aux_Mathlib_CategoryTheory_Preadditive_OfBiproducts___macroRules_CategoryTheory_SemiadditiveOfBinaryBiproducts_term_+ᵣ__1»
code: local infixr:65 " +ᵣ " => rightAdd X Y
goal: Lean.Macro

full_name: CategoryTheory.SemiadditiveOfBinaryBiproducts.isUnital_leftAdd
code: theorem isUnital_leftAdd : EckmannHilton.IsUnital (· +ₗ ·) 0 
goal: EckmannHilton.IsUnital (fun x x_1 => CategoryTheory.SemiadditiveOfBinaryBiproducts.leftAdd X Y x x_1) 0

full_name: CategoryTheory.SemiadditiveOfBinaryBiproducts.isUnital_rightAdd
code: theorem isUnital_rightAdd : EckmannHilton.IsUnital (· +ᵣ ·) 0 
goal: EckmannHilton.IsUnital (fun x x_1 => CategoryTheory.SemiadditiveOfBinaryBiproducts.rightAdd X Y x x_1) 0

full_name: CategoryTheory.SemiadditiveOfBinaryBiproducts.distrib
code: theorem distrib (f g h k : X ⟶ Y) : (f +ᵣ g) +ₗ h +ᵣ k = (f +ₗ h) +ᵣ g +ₗ k 
goal: CategoryTheory.SemiadditiveOfBinaryBiproducts.leftAdd X Y
    (CategoryTheory.SemiadditiveOfBinaryBiproducts.rightAdd X Y f g)
    (CategoryTheory.SemiadditiveOfBinaryBiproducts.rightAdd X Y h k) =
  CategoryTheory.SemiadditiveOfBinaryBiproducts.rightAdd X Y
    (CategoryTheory.SemiadditiveOfBinaryBiproducts.leftAdd X Y f h)
    (CategoryTheory.SemiadditiveOfBinaryBiproducts.leftAdd X Y g k)

full_name: CategoryTheory.SemiadditiveOfBinaryBiproducts.addCommMonoidHomOfHasBinaryBiproducts
code: /-- In a category with binary biproducts, the morphisms form a commutative monoid. -/
def addCommMonoidHomOfHasBinaryBiproducts : AddCommMonoid (X ⟶ Y) 
goal: AddCommMonoid (X ⟶ Y)

full_name: CategoryTheory.SemiadditiveOfBinaryBiproducts.add_eq_right_addition
code: theorem add_eq_right_addition (f g : X ⟶ Y) : f + g = biprod.lift (𝟙 X) (𝟙 X) ≫ biprod.desc f g 
goal: f + g = CategoryTheory.Limits.biprod.lift (𝟙 X) (𝟙 X) ≫ CategoryTheory.Limits.biprod.desc f g

full_name: CategoryTheory.SemiadditiveOfBinaryBiproducts.add_eq_left_addition
code: theorem add_eq_left_addition (f g : X ⟶ Y) : f + g = biprod.lift f g ≫ biprod.desc (𝟙 Y) (𝟙 Y) 
goal: f + g = CategoryTheory.Limits.biprod.lift f g ≫ CategoryTheory.Limits.biprod.desc (𝟙 Y) (𝟙 Y)

full_name: CategoryTheory.SemiadditiveOfBinaryBiproducts.add_comp
code: theorem add_comp (f g : X ⟶ Y) (h : Y ⟶ Z) : (f + g) ≫ h = f ≫ h + g ≫ h 
goal: (f + g) ≫ h = f ≫ h + g ≫ h

full_name: CategoryTheory.SemiadditiveOfBinaryBiproducts.comp_add
code: theorem comp_add (f : X ⟶ Y) (g h : Y ⟶ Z) : f ≫ (g + h) = f ≫ g + f ≫ h 
goal: f ≫ (g + h) = f ≫ g + f ≫ h