Theorem: CategoryTheory.Limits.Multifork.ofPiFork_pt
File: Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean

Proof steps:
state_before: C : Type u
inst✝² : Category.{v, u} C
I : MulticospanIndex C
K : Multifork I
inst✝¹ : HasProduct I.left
inst✝ : HasProduct I.right
c : Fork I.fstPiMap I.sndPiMap
⊢ ∀ ⦃X Y : WalkingMulticospan I.fstTo I.sndTo⦄ (f : X ⟶ Y),
    ((Functor.const (WalkingMulticospan I.fstTo I.sndTo)).obj c.pt).map f ≫
        (fun x =>
            match x with
            | WalkingMulticospan.left a => c.ι ≫ Pi.π I.left a
            | WalkingMulticospan.right b => c.ι ≫ I.fstPiMap ≫ Pi.π I.right b)
          Y =
      (fun x =>
            match x with
            | WalkingMulticospan.left a => c.ι ≫ Pi.π I.left a
            | WalkingMulticospan.right b => c.ι ≫ I.fstPiMap ≫ Pi.π I.right b)
          X ≫
        I.multicospan.map f
state_after: case left.left.id
C : Type u
inst✝² : Category.{v, u} C
I : MulticospanIndex C
K : Multifork I
inst✝¹ : HasProduct I.left
inst✝ : HasProduct I.right
c : Fork I.fstPiMap I.sndPiMap
a✝ : I.L
⊢ ((Functor.const (WalkingMulticospan I.fstTo I.sndTo)).obj c.pt).map
        (WalkingMulticospan.Hom.id (WalkingMulticospan.left a✝)) ≫
      (fun x =>
          match x with
          | WalkingMulticospan.left a => c.ι ≫ Pi.π I.left a
          | WalkingMulticospan.right b => c.ι ≫ I.fstPiMap ≫ Pi.π I.right b)
        (WalkingMulticospan.left a✝) =
    (fun x =>
          match x with
          | WalkingMulticospan.left a => c.ι ≫ Pi.π I.left a
          | WalkingMulticospan.right b => c.ι ≫ I.fstPiMap ≫ Pi.π I.right b)
        (WalkingMulticospan.left a✝) ≫
      I.multicospan.map (WalkingMulticospan.Hom.id (WalkingMulticospan.left a✝))

case left.right.fst
C : Type u
inst✝² : Category.{v, u} C
I : MulticospanIndex C
K : Multifork I
inst✝¹ : HasProduct I.left
inst✝ : HasProduct I.right
c : Fork I.fstPiMap I.sndPiMap
a✝ : I.R
⊢ ((Functor.const (WalkingMulticospan I.fstTo I.sndTo)).obj c.pt).map (WalkingMulticospan.Hom.fst a✝) ≫
      (fun x =>
          match x with
          | WalkingMulticospan.left a => c.ι ≫ Pi.π I.left a
          | WalkingMulticospan.right b => c.ι ≫ I.fstPiMap ≫ Pi.π I.right b)
        (WalkingMulticospan.right a✝) =
    (fun x =>
          match x with
          | WalkingMulticospan.left a => c.ι ≫ Pi.π I.left a
          | WalkingMulticospan.right b => c.ι ≫ I.fstPiMap ≫ Pi.π I.right b)
        (WalkingMulticospan.left (I.fstTo a✝)) ≫
      I.multicospan.map (WalkingMulticospan.Hom.fst a✝)

case left.right.snd
C : Type u
inst✝² : Category.{v, u} C
I : MulticospanIndex C
K : Multifork I
inst✝¹ : HasProduct I.left
inst✝ : HasProduct I.right
c : Fork I.fstPiMap I.sndPiMap
a✝ : I.R
⊢ ((Functor.const (WalkingMulticospan I.fstTo I.sndTo)).obj c.pt).map (WalkingMulticospan.Hom.snd a✝) ≫
      (fun x =>
          match x with
          | WalkingMulticospan.left a => c.ι ≫ Pi.π I.left a
          | WalkingMulticospan.right b => c.ι ≫ I.fstPiMap ≫ Pi.π I.right b)
        (WalkingMulticospan.right a✝) =
    (fun x =>
          match x with
          | WalkingMulticospan.left a => c.ι ≫ Pi.π I.left a
          | WalkingMulticospan.right b => c.ι ≫ I.fstPiMap ≫ Pi.π I.right b)
        (WalkingMulticospan.left (I.sndTo a✝)) ≫
      I.multicospan.map (WalkingMulticospan.Hom.snd a✝)

case right.right.id
C : Type u
inst✝² : Category.{v, u} C
I : MulticospanIndex C
K : Multifork I
inst✝¹ : HasProduct I.left
inst✝ : HasProduct I.right
c : Fork I.fstPiMap I.sndPiMap
a✝ : I.R
⊢ ((Functor.const (WalkingMulticospan I.fstTo I.sndTo)).obj c.pt).map
        (WalkingMulticospan.Hom.id (WalkingMulticospan.right a✝)) ≫
      (fun x =>
          match x with
          | WalkingMulticospan.left a => c.ι ≫ Pi.π I.left a
          | WalkingMulticospan.right b => c.ι ≫ I.fstPiMap ≫ Pi.π I.right b)
        (WalkingMulticospan.right a✝) =
    (fun x =>
          match x with
          | WalkingMulticospan.left a => c.ι ≫ Pi.π I.left a
          | WalkingMulticospan.right b => c.ι ≫ I.fstPiMap ≫ Pi.π I.right b)
        (WalkingMulticospan.right a✝) ≫
      I.multicospan.map (WalkingMulticospan.Hom.id (WalkingMulticospan.right a✝))
tactic: rintro (_ | _) (_ | _) (_ | _ | _)