-- Module: Mathlib.CategoryTheory.Limits.Shapes.Reflexive
Goal:
C : Type u
inst : Category.{v, u} C
A B : C
f g : A ⟶ B
s : B ⟶ A
sl : s ≫ f = 𝟙 B
sr : s ≫ g = 𝟙 B
reflexion :
  (match (motive :=
      (X Y : WalkingReflexivePair) →
        (X ⟶ Y) →
          Quiver.Hom.{v, u} (V := C)
            (match (motive := WalkingReflexivePair → C) X with
              | zero => B
              | one => A :
              C)
            (match (motive := WalkingReflexivePair → C) Y with
              | zero => B
              | one => A :
              C))
      zero, one, Hom.reflexion ≫ Hom.id one with
    | x, .(x), Hom.id .(x) =>
      𝟙
        (match (motive := WalkingReflexivePair → C) x with
        | zero => B
        | one => A)
    | .(one), .(zero), Hom.left => f
    | .(one), .(zero), Hom.right => g
    | .(zero), .(one), Hom.reflexion => s
    | .(one), .(one), Hom.rightCompReflexion => g ≫ s
    | .(one), .(one), Hom.leftCompReflexion => f ≫ s) =
    s
⊢ Eq.{v + 1} (α :=
    Quiver.Hom.{v, u} (V := C)
      (match (motive := WalkingReflexivePair → C) zero with
        | zero => B
        | one => A :
        C)
      (match (motive := WalkingReflexivePair → C) one with
        | zero => B
        | one => A :
        C))
    (match (motive :=
        (X Y : WalkingReflexivePair) →
          (X ⟶ Y) →
            Quiver.Hom.{v, u} (V := C)
              (match (motive := WalkingReflexivePair → C) X with
                | zero => B
                | one => A :
                C)
              (match (motive := WalkingReflexivePair → C) Y with
                | zero => B
                | one => A :
                C))
        zero, one, Hom.reflexion ≫ Hom.id one with
      | x, .(x), Hom.id .(x) =>
        𝟙
          (match (motive := WalkingReflexivePair → C) x with
          | zero => B
          | one => A)
      | .(one), .(zero), Hom.left => f
      | .(one), .(zero), Hom.right => g
      | .(zero), .(one), Hom.reflexion => s
      | .(one), .(one), Hom.rightCompReflexion => g ≫ s
      | .(one), .(one), Hom.leftCompReflexion => f ≫ s :
      Quiver.Hom.{v, u} (V := C)
        (match (motive := WalkingReflexivePair → C) zero with
          | zero => B
          | one => A :
          C)
        (match (motive := WalkingReflexivePair → C) one with
          | zero => B
          | one => A :
          C))
    (CategoryStruct.comp (Y :=
        match (motive := WalkingReflexivePair → C) one with
        | zero => B
        | one => A)
        (match (motive :=
          (X Y : WalkingReflexivePair) →
            (X ⟶ Y) →
              Quiver.Hom.{v, u} (V := C)
                (match (motive := WalkingReflexivePair → C) X with
                  | zero => B
                  | one => A :
                  C)
                (match (motive := WalkingReflexivePair → C) Y with
                  | zero => B
                  | one => A :
                  C))
          zero, one, Hom.reflexion with
        | x, .(x), Hom.id .(x) =>
          𝟙
            (match (motive := WalkingReflexivePair → C) x with
            | zero => B
            | one => A)
        | .(one), .(zero), Hom.left => f
        | .(one), .(zero), Hom.right => g
        | .(zero), .(one), Hom.reflexion => s
        | .(one), .(one), Hom.rightCompReflexion => g ≫ s
        | .(one), .(one), Hom.leftCompReflexion => f ≫ s)
        (match (motive :=
          (X Y : WalkingReflexivePair) →
            (X ⟶ Y) →
              Quiver.Hom.{v, u} (V := C)
                (match (motive := WalkingReflexivePair → C) X with
                  | zero => B
                  | one => A :
                  C)
                (match (motive := WalkingReflexivePair → C) Y with
                  | zero => B
                  | one => A :
                  C))
          one, one, Hom.id one with
        | x, .(x), Hom.id .(x) =>
          𝟙
            (match (motive := WalkingReflexivePair → C) x with
            | zero => B
            | one => A)
        | .(one), .(zero), Hom.left => f
        | .(one), .(zero), Hom.right => g
        | .(zero), .(one), Hom.reflexion => s
        | .(one), .(one), Hom.rightCompReflexion => g ≫ s
        | .(one), .(one), Hom.leftCompReflexion => f ≫ s) :
      Quiver.Hom.{v, u} (V := C)
        (match (motive := WalkingReflexivePair → C) zero with
          | zero => B
          | one => A :
          C)
        (match (motive := WalkingReflexivePair → C) one with
          | zero => B
          | one => A :
          C))

Tactic:
simp only [Category.id_comp, Category.comp_id, Category.assoc, sl, sr,
        reassoc_of% sl, reassoc_of% sr]

Premises used: CategoryTheory.Category.assoc, CategoryTheory.Category.comp_id, CategoryTheory.Category.id_comp