theorem compatibility_N₂_N₁_karoubi :
    N₂ ⋙ (karoubiChainComplexEquivalence C ℕ).functor =
      karoubiFunctorCategoryEmbedding SimplexCategoryᵒᵖ C ⋙
        N₁ ⋙ (karoubiChainComplexEquivalence (Karoubi C) ℕ).functor ⋙
            Functor.mapHomologicalComplex (KaroubiKaroubi.equivalence C).inverse _ := by
  refine' CategoryTheory.Functor.ext (fun P => _) fun P Q f => _
  · refine' HomologicalComplex.ext _ _
    · ext n
      · rfl
      · dsimp
        simp only [karoubi_PInfty_f, comp_id, PInfty_f_naturality, id_comp, eqToHom_refl]
    · rintro _ n (rfl : n + 1 = _)
      ext
      have h := (AlternatingFaceMapComplex.map P.p).comm (n + 1) n
      dsimp [N₂, karoubiChainComplexEquivalence,
        KaroubiHomologicalComplexEquivalence.Functor.obj] at h ⊢
      

Proof state:
case refine'_1.refine'_2.h
C : Type u_1
inst✝¹ : Category.{u_2, u_1} C
inst✝ : Preadditive C
P : Karoubi (SimplicialObject C)
n : ℕ
h :
  P.p.app (op [n + 1]) ≫ HomologicalComplex.d (AlternatingFaceMapComplex.obj P.X) (n + 1) n =
    HomologicalComplex.d (AlternatingFaceMapComplex.obj P.X) (n + 1) n ≫ P.p.app (op [n])
⊢ ((HomologicalComplex.Hom.f PInfty (n + 1) ≫ P.p.app (op [n + 1])) ≫
        HomologicalComplex.d (AlternatingFaceMapComplex.obj P.X) (n + 1) n) ≫
      (eqToHom
          (_ :
            Karoubi.mk (P.X.obj (op [n])) (HomologicalComplex.Hom.f PInfty n ≫ P.p.app (op [n])) =
              HomologicalComplex.X
                ((Functor.mapHomologicalComplex (KaroubiKaroubi.inverse C) (ComplexShape.down ℕ)).obj
                  (HomologicalComplex.mk
                    (fun n =>
                      Karoubi.mk ((KaroubiFunctorCategoryEmbedding.obj P).obj (op [n]))
                        (HomologicalComplex.Hom.f PInfty n))
                    fun i j =>
                    Karoubi.Hom.mk
                      (HomologicalComplex.Hom.f PInfty i ≫
                        HomologicalComplex.d (AlternatingFaceMapComplex.obj (KaroubiFunctorCategoryEmbedding.obj P)) i
                          j)))
                n)).f =
    (eqToHom
          (_ :
            Karoubi.mk (P.X.obj (op [n + 1])) (HomologicalComplex.Hom.f PInfty (n + 1) ≫ P.p.app (op [n + 1])) =
              HomologicalComplex.X
                ((Functor.mapHomologicalComplex (KaroubiKaroubi.inverse C) (ComplexShape.down ℕ)).obj
                  (HomologicalComplex.mk
                    (fun n =>
                      Karoubi.mk ((KaroubiFunctorCategoryEmbedding.obj P).obj (op [n]))
                        (HomologicalComplex.Hom.f PInfty n))
                    fun i j =>
                    Karoubi.Hom.mk
                      (HomologicalComplex.Hom.f PInfty i ≫
                        HomologicalComplex.d (AlternatingFaceMapComplex.obj (KaroubiFunctorCategoryEmbedding.obj P)) i
                          j)))
                (n + 1))).f ≫
      (HomologicalComplex.Hom.f PInfty (n + 1)).f ≫
        (HomologicalComplex.d (AlternatingFaceMapComplex.obj (KaroubiFunctorCategoryEmbedding.obj P)) (n + 1) n).f

Next tactic:
simp only [assoc, Karoubi.eqToHom_f, eqToHom_refl, comp_id,
        karoubi_alternatingFaceMapComplex_d, karoubi_PInfty_f,
        ← HomologicalComplex.Hom.comm_assoc, ← h, app_idem_assoc]