-- Lean 4 proof step from Mathlib.CategoryTheory.Limits.Shapes.Reflexive (goal)
Goal:
C : Type u
inst : Category.{v, u} C
A B : C
f g_1 : A ⟶ B
s : B ⟶ A
sl : s ≫ f = 𝟙 B
sr : s ≫ g_1 = 𝟙 B
X Z : WalkingReflexivePair
g : X ⟶ Z
id :
  Eq.{v + 1} (α :=
    Quiver.Hom.{v, u} (V := C)
      (match (motive := WalkingReflexivePair → C) one with
        | zero => B
        | one => A :
        C)
      (match (motive := WalkingReflexivePair → C) zero 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))
        one, zero, Hom.id one ≫ Hom.left 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_1
      | .(zero), .(one), Hom.reflexion => s
      | .(one), .(one), Hom.rightCompReflexion => g_1 ≫ s
      | .(one), .(one), Hom.leftCompReflexion => f ≫ s :
      Quiver.Hom.{v, u} (V := C)
        (match (motive := WalkingReflexivePair → C) one with
          | zero => B
          | one => A :
          C)
        (match (motive := WalkingReflexivePair → C) zero 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))
          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_1
        | .(zero), .(one), Hom.reflexion => s
        | .(one), .(one), Hom.rightCompReflexion => g_1 ≫ 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, zero, Hom.left 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_1
        | .(zero), .(one), Hom.reflexion => s
        | .(one), .(one), Hom.rightCompReflexion => g_1 ≫ s
        | .(one), .(one), Hom.leftCompReflexion => f ≫ s) :
      Quiver.Hom.{v, u} (V := C)
        (match (motive := WalkingReflexivePair → C) one with
          | zero => B
          | one => A :
          C)
        (match (motive := WalkingReflexivePair → C) zero with
          | zero => B
          | one => A :
          C))
id₁ :
  Eq.{v + 1} (α :=
    Quiver.Hom.{v, u} (V := C)
      (match (motive := WalkingReflexivePair → C) one with
        | zero => B
        | one => A :
        C)
      (match (motive := WalkingReflexivePair → C) zero 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))
        one, zero, Hom.id one ≫ Hom.right 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_1
      | .(zero), .(one), Hom.reflexion => s
      | .(one), .(one), Hom.rightCompReflexion => g_1 ≫ s
      | .(one), .(one), Hom.leftCompReflexion => f ≫ s :
      Quiver.Hom.{v, u} (V := C)
        (match (motive := WalkingReflexivePair → C) one with
          | zero => B
          | one => A :
          C)
        (match (motive := WalkingReflexivePair → C) zero 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))
          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_1
        | .(zero), .(one), Hom.reflexion => s
        | .(one), .(one), Hom.rightCompReflexion => g_1 ≫ 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, zero, Hom.right 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_1
        | .(zero), .(one), Hom.reflexion => s
        | .(one), .(one), Hom.rightCompReflexion => g_1 ≫ s
        | .(one), .(one), Hom.leftCompReflexion => f ≫ s) :
      Quiver.Hom.{v, u} (V := C)
        (match (motive := WalkingReflexivePair → C) one with
          | zero => B
          | one => A :
          C)
        (match (motive := WalkingReflexivePair → C) zero with
          | zero => B
          | one => A :
          C))
id₂ :
  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.id zero ≫ 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_1
      | .(zero), .(one), Hom.reflexion => s
      | .(one), .(one), Hom.rightCompReflexion => g_1 ≫ 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) zero 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, zero, Hom.id zero 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_1
        | .(zero), .(one), Hom.reflexion => s
        | .(one), .(one), Hom.rightCompReflexion => g_1 ≫ 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))
          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_1
        | .(zero), .(one), Hom.reflexion => s
        | .(one), .(one), Hom.rightCompReflexion => g_1 ≫ 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))
id₃ :
  Eq.{v + 1} (α :=
    Quiver.Hom.{v, u} (V := C)
      (match (motive := WalkingReflexivePair → C) one 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))
        one, one, Hom.id one ≫ Hom.leftCompReflexion 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_1
      | .(zero), .(one), Hom.reflexion => s
      | .(one), .(one), Hom.rightCompReflexion => g_1 ≫ s
      | .(one), .(one), Hom.leftCompReflexion => f ≫ s :
      Quiver.Hom.{v, u} (V := C)
        (match (motive := WalkingReflexivePair → C) one 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))
          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_1
        | .(zero), .(one), Hom.reflexion => s
        | .(one), .(one), Hom.rightCompReflexion => g_1 ≫ 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.leftCompReflexion 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_1
        | .(zero), .(one), Hom.reflexion => s
        | .(one), .(one), Hom.rightCompReflexion => g_1 ≫ s
        | .(one), .(one), Hom.leftCompReflexion => f ≫ s) :
      Quiver.Hom.{v, u} (V := C)
        (match (motive := WalkingReflexivePair → C) one with
          | zero => B
          | one => A :
          C)
        (match (motive := WalkingReflexivePair → C) one with
          | zero => B
          | one => A :
          C))
⊢ Eq.{v + 1} (α :=
    Quiver.Hom.{v, u} (V := C)
      (match (motive := WalkingReflexivePair → C) X with
        | zero => B
        | one => A :
        C)
      (match (motive := WalkingReflexivePair → C) Z 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))
        X, Z, Hom.id X ≫ g 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_1
      | .(zero), .(one), Hom.reflexion => s
      | .(one), .(one), Hom.rightCompReflexion => g_1 ≫ s
      | .(one), .(one), Hom.leftCompReflexion => f ≫ s :
      Quiver.Hom.{v, u} (V := C)
        (match (motive := WalkingReflexivePair → C) X with
          | zero => B
          | one => A :
          C)
        (match (motive := WalkingReflexivePair → C) Z with
          | zero => B
          | one => A :
          C))
    (CategoryStruct.comp (Y :=
        match (motive := WalkingReflexivePair → C) X 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))
          X, X, Hom.id X 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_1
        | .(zero), .(one), Hom.reflexion => s
        | .(one), .(one), Hom.rightCompReflexion => g_1 ≫ 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))
          X, Z, g 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_1
        | .(zero), .(one), Hom.reflexion => s
        | .(one), .(one), Hom.rightCompReflexion => g_1 ≫ s
        | .(one), .(one), Hom.leftCompReflexion => f ≫ s) :
      Quiver.Hom.{v, u} (V := C)
        (match (motive := WalkingReflexivePair → C) X with
          | zero => B
          | one => A :
          C)
        (match (motive := WalkingReflexivePair → C) Z with
          | zero => B
          | one => A :
          C))
have id₄ : Eq.{v + 1} (α :=
  Quiver.Hom.{v, u} (V := C)
    (match (motive := WalkingReflexivePair → C) one 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))
      one, one, Hom.id one ≫ Hom.rightCompReflexion 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_1
    | .(zero), .(one), Hom.reflexion => s
    | .(one), .(one), Hom.rightCompReflexion => g_1 ≫ s
    | .(one), .(one), Hom.leftCompReflexion => f ≫ s :
    Quiver.Hom.{v, u} (V := C)
      (match (motive := WalkingReflexivePair → C) one 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))
        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_1
      | .(zero), .(one), Hom.reflexion => s
      | .(one), .(one), Hom.rightCompReflexion => g_1 ≫ 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.rightCompReflexion 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_1
      | .(zero), .(one), Hom.reflexion => s
      | .(one), .(one), Hom.rightCompReflexion => g_1 ≫ s
      | .(one), .(one), Hom.leftCompReflexion => f ≫ s) :
    Quiver.Hom.{v, u} (V := C)
      (match (motive := WalkingReflexivePair → C) one with
        | zero => B
        | one => A :
        C)
      (match (motive := WalkingReflexivePair → C) one with
        | zero => B
        | one => A :
        C))
Tactic: cases g
Cleared hypotheses: X, Z, g