Lean4
/-- Auxiliary construction for showing that the free monoidal category is a groupoid. Do not use
this, use `IsIso.inv` instead. -/
def inverseAux : ∀ {X Y : F C}, (X ⟶ᵐ Y) → (Y ⟶ᵐ X)
| _, _, Hom.id X => id X
| _, _, α_hom _ _ _ => α_inv _ _ _
| _, _, α_inv _ _ _ => α_hom _ _ _
| _, _, ρ_hom _ => ρ_inv _
| _, _, ρ_inv _ => ρ_hom _
| _, _, l_hom _ => l_inv _
| _, _, l_inv _ => l_hom _
| _, _, Hom.comp f g => (inverseAux g).comp (inverseAux f)
| _, _, Hom.whiskerLeft X f => (inverseAux f).whiskerLeft X
| _, _, Hom.whiskerRight f X => (inverseAux f).whiskerRight X
| _, _, Hom.tensor f g => (inverseAux f).tensor (inverseAux g)