-- Module: Mathlib.Algebra.Homology.Augment
Goal:
V : Type u
inst : Category.{v, u} V
inst_1 : HasZeroMorphisms.{v, u} V
C : ChainComplex.{v, u, 0} V ℕ
i j n : ℕ
zero :
  (ComplexShape.down ℕ).Rel (n + 2) 0 →
    Eq.{v + 1} (α := ((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X (n + 2) ⟶ C.X 0)
      (CategoryStruct.comp (Y := C.X (n + 2))
          (match (motive := (x : ℕ) → ((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X x ⟶ C.X x)
            n + 2 with
          | 0 => 𝟙 (((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X 0)
          | n.succ => 𝟙 (((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X (n + 1)))
          (C.d (n + 2) 0) :
        ((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X (n + 2) ⟶ C.X 0)
      (CategoryStruct.comp (Y := ((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X 0)
          (((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).d (n + 2) 0)
          (match (motive := (x : ℕ) → ((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X x ⟶ C.X x) 0 with
          | 0 => 𝟙 (((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X 0)
          | n.succ => 𝟙 (((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X (n + 1))) :
        ((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X (n + 2) ⟶ C.X 0)
succ :
  ∀ (j : ℕ),
    (ComplexShape.down ℕ).Rel (n + 2) (j + 1) →
      Eq.{v + 1} (α := ((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X (n + 2) ⟶ C.X (j + 1))
        (CategoryStruct.comp (Y := C.X (n + 2))
            (match (motive := (x : ℕ) → ((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X x ⟶ C.X x)
              n + 2 with
            | 0 => 𝟙 (((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X 0)
            | n.succ => 𝟙 (((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X (n + 1)))
            (C.d (n + 2) (j + 1)) :
          ((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X (n + 2) ⟶ C.X (j + 1))
        (CategoryStruct.comp (Y := ((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X (j + 1))
            (((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).d (n + 2) (j + 1))
            (match (motive := (x : ℕ) → ((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X x ⟶ C.X x)
              j + 1 with
            | 0 => 𝟙 (((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X 0)
            | n.succ => 𝟙 (((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X (n + 1))) :
          ((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X (n + 2) ⟶ C.X (j + 1))
⊢ (ComplexShape.down ℕ).Rel (n + 2) j →
    Eq.{v + 1} (α := ((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X (n + 2) ⟶ C.X j)
      (CategoryStruct.comp (Y := C.X (n + 2))
          (match (motive := (x : ℕ) → ((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X x ⟶ C.X x)
            n + 2 with
          | 0 => 𝟙 (((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X 0)
          | n.succ => 𝟙 (((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X (n + 1)))
          (C.d (n + 2) j) :
        ((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X (n + 2) ⟶ C.X j)
      (((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).d (n + 2) j ≫
          match (motive := (x : ℕ) → ((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X x ⟶ C.X x) j with
          | 0 => 𝟙 (((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X 0)
          | n.succ => 𝟙 (((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X (n + 1)) :
        ((Functor.obj truncate C).augment (X := C.X 0) (C.d 1 0) ⋯).X (n + 2) ⟶ C.X j)

Tactic:
rcases j with - | j