Theorem: CategoryTheory.monoidalPreadditive_of_faithful
File: Mathlib/CategoryTheory/Monoidal/Preadditive.lean

tactic: intros
state_before: C : Type u_4
inst✝⁸ : Category C
inst✝⁷ : Preadditive C
inst✝⁶ : MonoidalCategory C
inst✝⁵ : MonoidalPreadditive C
D : Type u_1
inst✝⁴ : Category D
inst✝³ : Preadditive D
inst✝² : MonoidalCategory D
F : MonoidalFunctor D C
inst✝¹ : Faithful F.toFunctor
inst✝ : Functor.Additive F.toFunctor
⊢ ∀ {W X Y Z : D} (f : W ⟶ X), f ⊗ 0 = 0

tactic: apply F.toFunctor.map_injective
state_before: C : Type u_4
inst✝⁸ : Category C
inst✝⁷ : Preadditive C
inst✝⁶ : MonoidalCategory C
inst✝⁵ : MonoidalPreadditive C
D : Type u_1
inst✝⁴ : Category D
inst✝³ : Preadditive D
inst✝² : MonoidalCategory D
F : MonoidalFunctor D C
inst✝¹ : Faithful F.toFunctor
inst✝ : Functor.Additive F.toFunctor
W✝ X✝ Y✝ Z✝ : D
f✝ : W✝ ⟶ X✝
⊢ f✝ ⊗ 0 = 0

tactic: simp [F.map_tensor]
state_before: case a
C : Type u_4
inst✝⁸ : Category C
inst✝⁷ : Preadditive C
inst✝⁶ : MonoidalCategory C
inst✝⁵ : MonoidalPreadditive C
D : Type u_1
inst✝⁴ : Category D
inst✝³ : Preadditive D
inst✝² : MonoidalCategory D
F : MonoidalFunctor D C
inst✝¹ : Faithful F.toFunctor
inst✝ : Functor.Additive F.toFunctor
W✝ X✝ Y✝ Z✝ : D
f✝ : W✝ ⟶ X✝
⊢ F.map (f✝ ⊗ 0) = F.map 0

tactic: intros
state_before: C : Type u_4
inst✝⁸ : Category C
inst✝⁷ : Preadditive C
inst✝⁶ : MonoidalCategory C
inst✝⁵ : MonoidalPreadditive C
D : Type u_1
inst✝⁴ : Category D
inst✝³ : Preadditive D
inst✝² : MonoidalCategory D
F : MonoidalFunctor D C
inst✝¹ : Faithful F.toFunctor
inst✝ : Functor.Additive F.toFunctor
⊢ ∀ {W X Y Z : D} (f : Y ⟶ Z), 0 ⊗ f = 0

tactic: apply F.toFunctor.map_injective
state_before: C : Type u_4
inst✝⁸ : Category C
inst✝⁷ : Preadditive C
inst✝⁶ : MonoidalCategory C
inst✝⁵ : MonoidalPreadditive C
D : Type u_1
inst✝⁴ : Category D
inst✝³ : Preadditive D
inst✝² : MonoidalCategory D
F : MonoidalFunctor D C
inst✝¹ : Faithful F.toFunctor
inst✝ : Functor.Additive F.toFunctor
W✝ X✝ Y✝ Z✝ : D
f✝ : Y✝ ⟶ Z✝
⊢ 0 ⊗ f✝ = 0

tactic: simp [F.map_tensor]
state_before: case a
C : Type u_4
inst✝⁸ : Category C
inst✝⁷ : Preadditive C
inst✝⁶ : MonoidalCategory C
inst✝⁵ : MonoidalPreadditive C
D : Type u_1
inst✝⁴ : Category D
inst✝³ : Preadditive D
inst✝² : MonoidalCategory D
F : MonoidalFunctor D C
inst✝¹ : Faithful F.toFunctor
inst✝ : Functor.Additive F.toFunctor
W✝ X✝ Y✝ Z✝ : D
f✝ : Y✝ ⟶ Z✝
⊢ F.map (0 ⊗ f✝) = F.map 0

tactic: intros
state_before: C : Type u_4
inst✝⁸ : Category C
inst✝⁷ : Preadditive C
inst✝⁶ : MonoidalCategory C
inst✝⁵ : MonoidalPreadditive C
D : Type u_1
inst✝⁴ : Category D
inst✝³ : Preadditive D
inst✝² : MonoidalCategory D
F : MonoidalFunctor D C
inst✝¹ : Faithful F.toFunctor
inst✝ : Functor.Additive F.toFunctor
⊢ ∀ {W X Y Z : D} (f : W ⟶ X) (g h : Y ⟶ Z), f ⊗ (g + h) = f ⊗ g + f ⊗ h

tactic: apply F.toFunctor.map_injective
state_before: C : Type u_4
inst✝⁸ : Category C
inst✝⁷ : Preadditive C
inst✝⁶ : MonoidalCategory C
inst✝⁵ : MonoidalPreadditive C
D : Type u_1
inst✝⁴ : Category D
inst✝³ : Preadditive D
inst✝² : MonoidalCategory D
F : MonoidalFunctor D C
inst✝¹ : Faithful F.toFunctor
inst✝ : Functor.Additive F.toFunctor
W✝ X✝ Y✝ Z✝ : D
f✝ : W✝ ⟶ X✝
g✝ h✝ : Y✝ ⟶ Z✝
⊢ f✝ ⊗ (g✝ + h✝) = f✝ ⊗ g✝ + f✝ ⊗ h✝

tactic: simp only [F.map_tensor, Functor.map_add, Preadditive.comp_add, Preadditive.add_comp,
  MonoidalPreadditive.tensor_add]
state_before: case a
C : Type u_4
inst✝⁸ : Category C
inst✝⁷ : Preadditive C
inst✝⁶ : MonoidalCategory C
inst✝⁵ : MonoidalPreadditive C
D : Type u_1
inst✝⁴ : Category D
inst✝³ : Preadditive D
inst✝² : MonoidalCategory D
F : MonoidalFunctor D C
inst✝¹ : Faithful F.toFunctor
inst✝ : Functor.Additive F.toFunctor
W✝ X✝ Y✝ Z✝ : D
f✝ : W✝ ⟶ X✝
g✝ h✝ : Y✝ ⟶ Z✝
⊢ F.map (f✝ ⊗ (g✝ + h✝)) = F.map (f✝ ⊗ g✝ + f✝ ⊗ h✝)

tactic: intros
state_before: C : Type u_4
inst✝⁸ : Category C
inst✝⁷ : Preadditive C
inst✝⁶ : MonoidalCategory C
inst✝⁵ : MonoidalPreadditive C
D : Type u_1
inst✝⁴ : Category D
inst✝³ : Preadditive D
inst✝² : MonoidalCategory D
F : MonoidalFunctor D C
inst✝¹ : Faithful F.toFunctor
inst✝ : Functor.Additive F.toFunctor
⊢ ∀ {W X Y Z : D} (f g : W ⟶ X) (h : Y ⟶ Z), (f + g) ⊗ h = f ⊗ h + g ⊗ h

tactic: apply F.toFunctor.map_injective
state_before: C : Type u_4
inst✝⁸ : Category C
inst✝⁷ : Preadditive C
inst✝⁶ : MonoidalCategory C
inst✝⁵ : MonoidalPreadditive C
D : Type u_1
inst✝⁴ : Category D
inst✝³ : Preadditive D
inst✝² : MonoidalCategory D
F : MonoidalFunctor D C
inst✝¹ : Faithful F.toFunctor
inst✝ : Functor.Additive F.toFunctor
W✝ X✝ Y✝ Z✝ : D
f✝ g✝ : W✝ ⟶ X✝
h✝ : Y✝ ⟶ Z✝
⊢ (f✝ + g✝) ⊗ h✝ = f✝ ⊗ h✝ + g✝ ⊗ h✝

tactic: simp only [F.map_tensor, Functor.map_add, Preadditive.comp_add, Preadditive.add_comp,
  MonoidalPreadditive.add_tensor]
state_before: case a
C : Type u_4
inst✝⁸ : Category C
inst✝⁷ : Preadditive C
inst✝⁶ : MonoidalCategory C
inst✝⁵ : MonoidalPreadditive C
D : Type u_1
inst✝⁴ : Category D
inst✝³ : Preadditive D
inst✝² : MonoidalCategory D
F : MonoidalFunctor D C
inst✝¹ : Faithful F.toFunctor
inst✝ : Functor.Additive F.toFunctor
W✝ X✝ Y✝ Z✝ : D
f✝ g✝ : W✝ ⟶ X✝
h✝ : Y✝ ⟶ Z✝
⊢ F.map ((f✝ + g✝) ⊗ h✝) = F.map (f✝ ⊗ h✝ + g✝ ⊗ h✝)