Theorem: CategoryTheory.Limits.MonoCoprod.mono_map'_of_injective
File: Mathlib/CategoryTheory/Limits/MonoCoprod.lean

tactic: convert mono_of_injective' X ι hι
state_before: C : Type u_1
inst✝⁴ : Category.{u_4, u_1} C
inst✝³ : MonoCoprod C
I : Type u_2
J : Type u_3
X : I → C
ι : J → I
hι : Function.Injective ι
inst✝² : HasCoproduct (X ∘ ι)
inst✝¹ : HasCoproduct X
inst✝ : HasCoproduct fun k => X ↑k
⊢ Mono (Sigma.map' ι fun j => 𝟙 ((X ∘ ι) j))
state_after: case h.e'_5
C : Type u_1
inst✝⁴ : Category.{u_4, u_1} C
inst✝³ : MonoCoprod C
I : Type u_2
J : Type u_3
X : I → C
ι : J → I
hι : Function.Injective ι
inst✝² : HasCoproduct (X ∘ ι)
inst✝¹ : HasCoproduct X
inst✝ : HasCoproduct fun k => X ↑k
⊢ (Sigma.map' ι fun j => 𝟙 ((X ∘ ι) j)) = Sigma.desc fun j => Sigma.ι X (ι j)

tactic: apply Sigma.hom_ext
state_before: case h.e'_5
C : Type u_1
inst✝⁴ : Category.{u_4, u_1} C
inst✝³ : MonoCoprod C
I : Type u_2
J : Type u_3
X : I → C
ι : J → I
hι : Function.Injective ι
inst✝² : HasCoproduct (X ∘ ι)
inst✝¹ : HasCoproduct X
inst✝ : HasCoproduct fun k => X ↑k
⊢ (Sigma.map' ι fun j => 𝟙 ((X ∘ ι) j)) = Sigma.desc fun j => Sigma.ι X (ι j)
state_after: case h.e'_5.h
C : Type u_1
inst✝⁴ : Category.{u_4, u_1} C
inst✝³ : MonoCoprod C
I : Type u_2
J : Type u_3
X : I → C
ι : J → I
hι : Function.Injective ι
inst✝² : HasCoproduct (X ∘ ι)
inst✝¹ : HasCoproduct X
inst✝ : HasCoproduct fun k => X ↑k
⊢ ∀ (b : J),
    (Sigma.ι (X ∘ ι) b ≫ Sigma.map' ι fun j => 𝟙 ((X ∘ ι) j)) = Sigma.ι (X ∘ ι) b ≫ Sigma.desc fun j => Sigma.ι X (ι j)

tactic: intro j
state_before: case h.e'_5.h
C : Type u_1
inst✝⁴ : Category.{u_4, u_1} C
inst✝³ : MonoCoprod C
I : Type u_2
J : Type u_3
X : I → C
ι : J → I
hι : Function.Injective ι
inst✝² : HasCoproduct (X ∘ ι)
inst✝¹ : HasCoproduct X
inst✝ : HasCoproduct fun k => X ↑k
⊢ ∀ (b : J),
    (Sigma.ι (X ∘ ι) b ≫ Sigma.map' ι fun j => 𝟙 ((X ∘ ι) j)) = Sigma.ι (X ∘ ι) b ≫ Sigma.desc fun j => Sigma.ι X (ι j)
state_after: case h.e'_5.h
C : Type u_1
inst✝⁴ : Category.{u_4, u_1} C
inst✝³ : MonoCoprod C
I : Type u_2
J : Type u_3
X : I → C
ι : J → I
hι : Function.Injective ι
inst✝² : HasCoproduct (X ∘ ι)
inst✝¹ : HasCoproduct X
inst✝ : HasCoproduct fun k => X ↑k
j : J
⊢ (Sigma.ι (X ∘ ι) j ≫ Sigma.map' ι fun j => 𝟙 ((X ∘ ι) j)) = Sigma.ι (X ∘ ι) j ≫ Sigma.desc fun j => Sigma.ι X (ι j)

tactic: rw [Sigma.ι_comp_map', id_comp, colimit.ι_desc]
state_before: case h.e'_5.h
C : Type u_1
inst✝⁴ : Category.{u_4, u_1} C
inst✝³ : MonoCoprod C
I : Type u_2
J : Type u_3
X : I → C
ι : J → I
hι : Function.Injective ι
inst✝² : HasCoproduct (X ∘ ι)
inst✝¹ : HasCoproduct X
inst✝ : HasCoproduct fun k => X ↑k
j : J
⊢ (Sigma.ι (X ∘ ι) j ≫ Sigma.map' ι fun j => 𝟙 ((X ∘ ι) j)) = Sigma.ι (X ∘ ι) j ≫ Sigma.desc fun j => Sigma.ι X (ι j)
state_after: case h.e'_5.h
C : Type u_1
inst✝⁴ : Category.{u_4, u_1} C
inst✝³ : MonoCoprod C
I : Type u_2
J : Type u_3
X : I → C
ι : J → I
hι : Function.Injective ι
inst✝² : HasCoproduct (X ∘ ι)
inst✝¹ : HasCoproduct X
inst✝ : HasCoproduct fun k => X ↑k
j : J
⊢ Sigma.ι X (ι j) = (Cofan.mk (∐ X) fun j => Sigma.ι X (ι j)).ι.app { as := j }

tactic: simp
state_before: case h.e'_5.h
C : Type u_1
inst✝⁴ : Category.{u_4, u_1} C
inst✝³ : MonoCoprod C
I : Type u_2
J : Type u_3
X : I → C
ι : J → I
hι : Function.Injective ι
inst✝² : HasCoproduct (X ∘ ι)
inst✝¹ : HasCoproduct X
inst✝ : HasCoproduct fun k => X ↑k
j : J
⊢ Sigma.ι X (ι j) = (Cofan.mk (∐ X) fun j => Sigma.ι X (ι j)).ι.app { as := j }
state_after: no goals