theorem eqvGen_of_π_eq
    -- Porting note: was `{x y : ∐ D.U} (h : 𝖣.π x = 𝖣.π y)`
    {x y : sigmaObj (β := D.toGlueData.J) (C := TopCat) D.toGlueData.U}
    (h : 𝖣.π x = 𝖣.π y) :
    EqvGen
      -- Porting note: was (Types.CoequalizerRel 𝖣.diagram.fstSigmaMap 𝖣.diagram.sndSigmaMap)
      (Types.CoequalizerRel
        (X := sigmaObj (β := D.toGlueData.diagram.L) (C := TopCat) (D.toGlueData.diagram).left)
        (Y := sigmaObj (β := D.toGlueData.diagram.R) (C := TopCat) (D.toGlueData.diagram).right)
        𝖣.diagram.fstSigmaMap 𝖣.diagram.sndSigmaMap)
      x y := by
  delta GlueData.π Multicoequalizer.sigmaπ at h
  -- Porting note: inlined `inferInstance` instead of leaving as a side goal.
  replace h := (TopCat.mono_iff_injective (Multicoequalizer.isoCoequalizer 𝖣.diagram).inv).mp
    inferInstance h
  let diagram := parallelPair 𝖣.diagram.fstSigmaMap 𝖣.diagram.sndSigmaMap ⋙ forget _
  have : colimit.ι diagram one x = colimit.ι diagram one y := by
    dsimp only [coequalizer.π, ContinuousMap.toFun_eq_coe] at h
    -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
    erw [← ι_preservesColimitsIso_hom, forget_map_eq_coe, types_comp_apply, h]
    simp
    rfl
  have :
    (colimit.ι diagram _ ≫ colim.map _ ≫ (colimit.isoColimitCocone _).hom) _ =
      (colimit.ι diagram _ ≫ colim.map _ ≫ (colimit.isoColimitCocone _).hom) _ :=
    (congr_arg
        (colim.map (diagramIsoParallelPair diagram).hom ≫
          (colimit.isoColimitCocone (Types.coequalizerColimit _ _)).hom)
        this :
      _)
  -- Porting note: was
  -- simp only [eqToHom_refl, types_comp_apply, colimit.ι_map_assoc,
  --   diagramIsoParallelPair_hom_app, colimit.isoColimitCocone_ι_hom, types_id_apply] at this
  -- See https://github.com/leanprover-community/mathlib4/issues/5026
  

Proof state:
D : GlueData
x y : ↑(∐ D.U)
h :
  (coequalizer.π (MultispanIndex.fstSigmaMap (GlueData.diagram D.toGlueData))
          (MultispanIndex.sndSigmaMap (GlueData.diagram D.toGlueData))).1
      x =
    (coequalizer.π (MultispanIndex.fstSigmaMap (GlueData.diagram D.toGlueData))
          (MultispanIndex.sndSigmaMap (GlueData.diagram D.toGlueData))).1
      y
diagram : WalkingParallelPair ⥤ Type u :=
  parallelPair (MultispanIndex.fstSigmaMap (GlueData.diagram D.toGlueData))
      (MultispanIndex.sndSigmaMap (GlueData.diagram D.toGlueData)) ⋙
    forget TopCat
this✝ : colimit.ι diagram one x = colimit.ι diagram one y
this :
  (colimit.ι diagram one ≫
        colim.map (diagramIsoParallelPair diagram).hom ≫
          (colimit.isoColimitCocone
              (Types.coequalizerColimit (diagram.map WalkingParallelPairHom.left)
                (diagram.map WalkingParallelPairHom.right))).hom)
      x =
    (colimit.ι diagram one ≫
        colim.map (diagramIsoParallelPair diagram).hom ≫
          (colimit.isoColimitCocone
              (Types.coequalizerColimit (diagram.map WalkingParallelPairHom.left)
                (diagram.map WalkingParallelPairHom.right))).hom)
      y
⊢ EqvGen
    (Types.CoequalizerRel ⇑(MultispanIndex.fstSigmaMap (GlueData.diagram D.toGlueData))
      ⇑(MultispanIndex.sndSigmaMap (GlueData.diagram D.toGlueData)))
    x y

Next tactic:
rw [colimit.ι_map_assoc, diagramIsoParallelPair_hom_app, eqToHom_refl,
    colimit.isoColimitCocone_ι_hom, types_comp_apply, types_id_apply, types_comp_apply,
    types_id_apply] at this