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

Proof steps:
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 ι
c : Cofan X
c₁ : Cofan (X ∘ ι)
hc : IsColimit c
hc₁ : IsColimit c₁
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 ι
c : Cofan X
c₁ : Cofan (X ∘ ι)
hc : IsColimit c
hc₁ : IsColimit c₁
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: convert mono_of_injective' X ι hι
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 ι
c : Cofan X
c₁ : Cofan (X ∘ ι)
hc : IsColimit c
hc₁ : IsColimit c₁
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 ι
c : Cofan X
c₁ : Cofan (X ∘ ι)
hc : IsColimit c
hc₁ : IsColimit c₁
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: apply Sigma.hom_ext
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 ι
c : Cofan X
c₁ : Cofan (X ∘ ι)
hc : IsColimit c
hc₁ : IsColimit c₁
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 ι
c : Cofan X
c₁ : Cofan (X ∘ ι)
hc : IsColimit c
hc₁ : IsColimit c₁
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: 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 ι
c : Cofan X
c₁ : Cofan (X ∘ ι)
hc : IsColimit c
hc₁ : IsColimit c₁
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 ι
c : Cofan X
c₁ : Cofan (X ∘ ι)
hc : IsColimit c
hc₁ : IsColimit c₁
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: 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 ι
c : Cofan X
c₁ : Cofan (X ∘ ι)
hc : IsColimit c
hc₁ : IsColimit c₁
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
tactic: simp