Lean4
/-- A refinement morphism `E ⟶ F` induces a morphism on associated multiequalizers. -/
def mapMultiforkOfIsLimit (f : E.Hom F) (P : Cᵒᵖ ⥤ A) {c : Multifork (E.multicospanIndex P)} (hc : IsLimit c)
(d : Multifork (F.multicospanIndex P)) : d.pt ⟶ c.pt :=
Multifork.IsLimit.lift hc (fun a ↦ d.ι (f.s₀ a) ≫ P.map (f.h₀ a).op) <|
by
intro (k : E.I₁')
simp only [multicospanIndex_right, multicospanShape_fst, multicospanIndex_left, multicospanIndex_fst, assoc,
multicospanShape_snd, multicospanIndex_snd]
have heq := d.condition (f.s₁' k)
simp only [Hom.s₁', multicospanIndex_right, multicospanShape_fst, multicospanIndex_left, multicospanIndex_fst,
multicospanShape_snd, multicospanIndex_snd] at heq
rw [← Functor.map_comp, ← op_comp, ← Hom.w₁₁, ← Functor.map_comp, ← op_comp, ← Hom.w₁₂]
rw [op_comp, Functor.map_comp, reassoc_of% heq, op_comp, Functor.map_comp]