-- Module: Mathlib.CategoryTheory.Limits.Bicones
Goal:
J : Type v₁
inst : SmallCategory J
C : Type u₁
inst_1 : Category.{v₁, u₁} C
F : J ⥤ C
c₁ c₂ : Cone F
val : J
⊢ Eq.{v₁ + 1} (α :=
    Quiver.Hom.{v₁, u₁} (V := C)
      (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) (Bicone.diagram val) c₁.pt c₂.pt fun (j : J) ↦ F.obj j : C)
      (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) (Bicone.diagram val) c₁.pt c₂.pt fun (j : J) ↦ F.obj j : C))
    (@BiconeHom.casesOn _ _
        (fun (a a_1 : Bicone J) (x : BiconeHom J a a_1) ↦
          (h : Bicone.diagram val = a) →
            (h : Bicone.diagram val = a_1) →
              (h : HEq (α := Bicone.diagram val ⟶ Bicone.diagram val) (𝟙 (Bicone.diagram val)) x) →
                Quiver.Hom.{v₁, u₁} (V := C)
                  (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) (Bicone.diagram val) c₁.pt c₂.pt fun (j : J) ↦
                      F.obj j :
                    C)
                  (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) (Bicone.diagram val) c₁.pt c₂.pt fun (j : J) ↦
                      F.obj j :
                    C))
        (Bicone.diagram val) (Bicone.diagram val) (𝟙 (Bicone.diagram val))
        (fun (h : Bicone.diagram val = Bicone.left) ↦
          Eq.ndrec (motive := fun {X : Bicone J} ↦
            (f : X ⟶ Bicone.diagram val) →
              (h : Bicone.diagram val = Bicone.left) →
                (h : HEq f (β := BiconeHom J Bicone.left Bicone.left) BiconeHom.left_id) →
                  Quiver.Hom.{v₁, u₁} (V := C)
                    (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) X c₁.pt c₂.pt fun (j : J) ↦ F.obj j : C)
                    (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) (Bicone.diagram val) c₁.pt c₂.pt fun (j : J) ↦
                        F.obj j :
                      C))
            (fun (f : Bicone.left ⟶ Bicone.diagram val) (h : Bicone.diagram val = Bicone.left) ↦
              Eq.ndrec (motive := fun {Y : Bicone J} ↦
                (f : Bicone.left ⟶ Y) →
                  (h : HEq f (β := BiconeHom J Bicone.left Bicone.left) BiconeHom.left_id) →
                    Quiver.Hom.{v₁, u₁} (V := C)
                      (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) Bicone.left c₁.pt c₂.pt fun (j : J) ↦ F.obj j :
                        C)
                      (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) Y c₁.pt c₂.pt fun (j : J) ↦ F.obj j : C))
                (fun (f : Quiver.Hom (V := Bicone J) Bicone.left Bicone.left)
                    (h : HEq f (β := BiconeHom J Bicone.left Bicone.left) BiconeHom.left_id) ↦
                  𝟙 (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) Bicone.left c₁.pt c₂.pt fun (j : J) ↦ F.obj j))
                ⋯ f)
            ⋯ (𝟙 (Bicone.diagram val)))
        (fun (h : Bicone.diagram val = Bicone.right) ↦
          Eq.ndrec (motive := fun {X : Bicone J} ↦
            (f : X ⟶ Bicone.diagram val) →
              (h : Bicone.diagram val = Bicone.right) →
                (h : HEq f (β := BiconeHom J Bicone.right Bicone.right) BiconeHom.right_id) →
                  Quiver.Hom.{v₁, u₁} (V := C)
                    (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) X c₁.pt c₂.pt fun (j : J) ↦ F.obj j : C)
                    (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) (Bicone.diagram val) c₁.pt c₂.pt fun (j : J) ↦
                        F.obj j :
                      C))
            (fun (f : Bicone.right ⟶ Bicone.diagram val) (h : Bicone.diagram val = Bicone.right) ↦
              Eq.ndrec (motive := fun {Y : Bicone J} ↦
                (f : Bicone.right ⟶ Y) →
                  (h : HEq f (β := BiconeHom J Bicone.right Bicone.right) BiconeHom.right_id) →
                    Quiver.Hom.{v₁, u₁} (V := C)
                      (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) Bicone.right c₁.pt c₂.pt fun (j : J) ↦
                          F.obj j :
                        C)
                      (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) Y c₁.pt c₂.pt fun (j : J) ↦ F.obj j : C))
                (fun (f : Quiver.Hom (V := Bicone J) Bicone.right Bicone.right)
                    (h : HEq f (β := BiconeHom J Bicone.right Bicone.right) BiconeHom.right_id) ↦
                  𝟙 (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) Bicone.right c₁.pt c₂.pt fun (j : J) ↦ F.obj j))
                ⋯ f)
            ⋯ (𝟙 (Bicone.diagram val)))
        (fun (j : J) (h : Bicone.diagram val = Bicone.left) ↦
          Eq.ndrec (motive := fun {X : Bicone J} ↦
            (f : X ⟶ Bicone.diagram val) →
              (h : Bicone.diagram val = Bicone.diagram j) →
                (h : HEq f (β := BiconeHom J Bicone.left (Bicone.diagram j)) (BiconeHom.left j)) →
                  Quiver.Hom.{v₁, u₁} (V := C)
                    (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) X c₁.pt c₂.pt fun (j : J) ↦ F.obj j : C)
                    (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) (Bicone.diagram val) c₁.pt c₂.pt fun (j : J) ↦
                        F.obj j :
                      C))
            (fun (f : Bicone.left ⟶ Bicone.diagram val) (h : Bicone.diagram val = Bicone.diagram j) ↦
              Eq.ndrec (motive := fun {Y : Bicone J} ↦
                (f : Bicone.left ⟶ Y) →
                  (h : HEq f (β := BiconeHom J Bicone.left (Bicone.diagram j)) (BiconeHom.left j)) →
                    Quiver.Hom.{v₁, u₁} (V := C)
                      (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) Bicone.left c₁.pt c₂.pt fun (j : J) ↦ F.obj j :
                        C)
                      (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) Y c₁.pt c₂.pt fun (j : J) ↦ F.obj j : C))
                (fun (f : Bicone.left ⟶ Bicone.diagram j)
                    (h : HEq f (β := BiconeHom J Bicone.left (Bicone.diagram j)) (BiconeHom.left j)) ↦
                  c₁.π.app j)
                ⋯ f)
            ⋯ (𝟙 (Bicone.diagram val)))
        (fun (j : J) (h : Bicone.diagram val = Bicone.right) ↦
          Eq.ndrec (motive := fun {X : Bicone J} ↦
            (f : X ⟶ Bicone.diagram val) →
              (h : Bicone.diagram val = Bicone.diagram j) →
                (h : HEq f (β := BiconeHom J Bicone.right (Bicone.diagram j)) (BiconeHom.right j)) →
                  Quiver.Hom.{v₁, u₁} (V := C)
                    (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) X c₁.pt c₂.pt fun (j : J) ↦ F.obj j : C)
                    (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) (Bicone.diagram val) c₁.pt c₂.pt fun (j : J) ↦
                        F.obj j :
                      C))
            (fun (f : Bicone.right ⟶ Bicone.diagram val) (h : Bicone.diagram val = Bicone.diagram j) ↦
              Eq.ndrec (motive := fun {Y : Bicone J} ↦
                (f : Bicone.right ⟶ Y) →
                  (h : HEq f (β := BiconeHom J Bicone.right (Bicone.diagram j)) (BiconeHom.right j)) →
                    Quiver.Hom.{v₁, u₁} (V := C)
                      (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) Bicone.right c₁.pt c₂.pt fun (j : J) ↦
                          F.obj j :
                        C)
                      (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) Y c₁.pt c₂.pt fun (j : J) ↦ F.obj j : C))
                (fun (f : Bicone.right ⟶ Bicone.diagram j)
                    (h : HEq f (β := BiconeHom J Bicone.right (Bicone.diagram j)) (BiconeHom.right j)) ↦
                  c₂.π.app j)
                ⋯ f)
            ⋯ (𝟙 (Bicone.diagram val)))
        (fun {j k : J} (f : j ⟶ k) (h : Bicone.diagram val = Bicone.diagram j) ↦
          Eq.ndrec (motive := fun {X : Bicone J} ↦
            (f_1 : X ⟶ Bicone.diagram val) →
              (h : Bicone.diagram val = Bicone.diagram k) →
                (h : f_1 ≍ BiconeHom.diagram f) →
                  Quiver.Hom.{v₁, u₁} (V := C)
                    (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) X c₁.pt c₂.pt fun (j : J) ↦ F.obj j : C)
                    (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) (Bicone.diagram val) c₁.pt c₂.pt fun (j : J) ↦
                        F.obj j :
                      C))
            (fun (f_1 : Bicone.diagram j ⟶ Bicone.diagram val) (h : Bicone.diagram val = Bicone.diagram k) ↦
              Eq.ndrec (motive := fun {Y : Bicone J} ↦
                (f_2 : Bicone.diagram j ⟶ Y) →
                  (h : f_2 ≍ BiconeHom.diagram f) →
                    Quiver.Hom.{v₁, u₁} (V := C)
                      (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) (Bicone.diagram j) c₁.pt c₂.pt fun (j : J) ↦
                          F.obj j :
                        C)
                      (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) Y c₁.pt c₂.pt fun (j : J) ↦ F.obj j : C))
                (fun (f_2 : Bicone.diagram j ⟶ Bicone.diagram k) (h : f_2 ≍ BiconeHom.diagram f) ↦ F.map f) ⋯ f_1)
            ⋯ (𝟙 (Bicone.diagram val)))
        ⋯ ⋯ ⋯ :
      Quiver.Hom.{v₁, u₁} (V := C)
        (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) (Bicone.diagram val) c₁.pt c₂.pt fun (j : J) ↦ F.obj j : C)
        (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) (Bicone.diagram val) c₁.pt c₂.pt fun (j : J) ↦ F.obj j : C))
    (𝟙 (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) (Bicone.diagram val) c₁.pt c₂.pt fun (j : J) ↦ F.obj j) :
      Quiver.Hom.{v₁, u₁} (V := C)
        (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) (Bicone.diagram val) c₁.pt c₂.pt fun (j : J) ↦ F.obj j : C)
        (Bicone.casesOn (motive := fun (x : Bicone J) ↦ C) (Bicone.diagram val) c₁.pt c₂.pt fun (j : J) ↦ F.obj j : C))

Tactic:
simp