TODO: Use Pointed (the category of pointed types) in Mathlib.
Given an exact sequence
A --a-> B --b-> C --c-> D --d-> E
of five pointed sets, if a is surjective and d is injective, then C = 0.
proof.
theorem
ExactSeq.unique_mid_of_five
{A : Type u_1}
{B : Type u_2}
{C : Type u_3}
{D : Type u_4}
{E : Type u_5}
[Inhabited B]
[Inhabited C]
[Inhabited D]
[Inhabited E]
(a : A → B)
(b : B → C)
(c : C → D)
(d : D → E)
[IsPointedMap d]
(a_surj : Function.Surjective a)
(d_inj : Function.Injective d)
(exb : IsExactAt a b)
(exc : IsExactAt b c)
(exd : IsExactAt c d)
:
C = {0} if there is an exact sequence A --a-> B --b-> C --c-> D --d-> E
of five pointed sets such that a is surjective and d is injective.