/-- Vertical composition of oplax natural transformations. -/
@[simps]
def vcomp (η : OplaxNatTrans F G) (θ : OplaxNatTrans G H) : OplaxNatTrans F H where
  app a := η.app a ≫ θ.app a
  naturality {a b} f :=
    (α_ _ _ _).inv ≫
      η.naturality f ▷ θ.app b ≫ (α_ _ _ _).hom ≫ η.app a ◁ θ.naturality f ≫ (α_ _ _ _).inv
  naturality_comp {a b c} f g := by
    calc
      _ =
          ?_ ≫
            F.mapComp f g ▷ η.app c ▷ θ.app c ≫
              ?_ ≫
                F.map f ◁ η.naturality g ▷ θ.app c ≫
                  ?_ ≫
                    (F.map f ≫ η.app b) ◁ θ.naturality g ≫
                      η.naturality f ▷ (θ.app b ≫ H.map g) ≫
                        ?_ ≫ η.app a ◁ θ.naturality f ▷ H.map g ≫ ?_ :=
        ?_
      _ = _ := ?_
    exact (α_ _ _ _).inv
    exact (α_ _ _ _).hom ▷ _ ≫ (α_ _ _ _).hom
    exact _ ◁ (α_ _ _ _).hom ≫ (α_ _ _ _).inv
    exact (α_ _ _ _).hom ≫ _ ◁ (α_ _ _ _).inv
    exact _ ◁ (α_ _ _ _).hom ≫ (α_ _ _ _).inv
    · rw [whisker_exchange_assoc]
      -- Porting note: this used to be just `simp`
      simp only [comp_whiskerLeft, assoc, Iso.inv_hom_id_assoc, whiskerLeft_naturality_comp_assoc,
        whiskerRight_naturality_comp_assoc, pentagon_assoc, whiskerRight_comp,
        pentagon_hom_inv_inv_inv_inv_assoc]
    · 

Proof state:
case calc_7
B : Type u₁
inst✝¹ : Bicategory B
C : Type u₂
inst✝ : Bicategory C
F G H : OplaxFunctor B C
η✝ : OplaxNatTrans F G
θ✝ : OplaxNatTrans G H
η : OplaxNatTrans F G
θ : OplaxNatTrans G H
a b c : B
f : a ⟶ b
g : b ⟶ c
⊢ (α_ ((↑F.toPrelaxFunctor).map (f ≫ g)) (η.app c) (θ.app c)).inv ≫
      OplaxFunctor.mapComp F f g ▷ η.app c ▷ θ.app c ≫
        ((α_ ((↑F.toPrelaxFunctor).map f) ((↑F.toPrelaxFunctor).map g) (η.app c)).hom ▷ θ.app c ≫
            (α_ ((↑F.toPrelaxFunctor).map f) ((↑F.toPrelaxFunctor).map g ≫ η.app c) (θ.app c)).hom) ≫
          (↑F.toPrelaxFunctor).map f ◁ naturality η g ▷ θ.app c ≫
            ((↑F.toPrelaxFunctor).map f ◁ (α_ (η.app b) ((↑G.toPrelaxFunctor).map g) (θ.app c)).hom ≫
                (α_ ((↑F.toPrelaxFunctor).map f) (η.app b) ((↑G.toPrelaxFunctor).map g ≫ θ.app c)).inv) ≫
              ((↑F.toPrelaxFunctor).map f ≫ η.app b) ◁ naturality θ g ≫
                naturality η f ▷ (θ.app b ≫ (↑H.toPrelaxFunctor).map g) ≫
                  ((α_ (η.app a) ((↑G.toPrelaxFunctor).map f) (θ.app b ≫ (↑H.toPrelaxFunctor).map g)).hom ≫
                      η.app a ◁ (α_ ((↑G.toPrelaxFunctor).map f) (θ.app b) ((↑H.toPrelaxFunctor).map g)).inv) ≫
                    η.app a ◁ naturality θ f ▷ (↑H.toPrelaxFunctor).map g ≫
                      η.app a ◁ (α_ (θ.app a) ((↑H.toPrelaxFunctor).map f) ((↑H.toPrelaxFunctor).map g)).hom ≫
                        (α_ (η.app a) (θ.app a) ((↑H.toPrelaxFunctor).map f ≫ (↑H.toPrelaxFunctor).map g)).inv =
    OplaxFunctor.mapComp F f g ▷ (fun a => η.app a ≫ θ.app a) c ≫
      (α_ ((↑F.toPrelaxFunctor).map f) ((↑F.toPrelaxFunctor).map g) ((fun a => η.app a ≫ θ.app a) c)).hom ≫
        (↑F.toPrelaxFunctor).map f ◁
            (fun {a b} f =>
                (α_ ((↑F.toPrelaxFunctor).map f) (η.app b) (θ.app b)).inv ≫
                  naturality η f ▷ θ.app b ≫
                    (α_ (η.app a) ((↑G.toPrelaxFunctor).map f) (θ.app b)).hom ≫
                      η.app a ◁ naturality θ f ≫ (α_ (η.app a) (θ.app a) ((↑H.toPrelaxFunctor).map f)).inv)
              g ≫
          (α_ ((↑F.toPrelaxFunctor).map f) ((fun a => η.app a ≫ θ.app a) b) ((↑H.toPrelaxFunctor).map g)).inv ≫
            (fun {a b} f =>
                    (α_ ((↑F.toPrelaxFunctor).map f) (η.app b) (θ.app b)).inv ≫
                      naturality η f ▷ θ.app b ≫
                        (α_ (η.app a) ((↑G.toPrelaxFunctor).map f) (θ.app b)).hom ≫
                          η.app a ◁ naturality θ f ≫ (α_ (η.app a) (θ.app a) ((↑H.toPrelaxFunctor).map f)).inv)
                  f ▷
                (↑H.toPrelaxFunctor).map g ≫
              (α_ ((fun a => η.app a ≫ θ.app a) a) ((↑H.toPrelaxFunctor).map f) ((↑H.toPrelaxFunctor).map g)).hom

Next tactic:
simp