category_theory.monad.limitsMathlib.CategoryTheory.Monad.Limits

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2019 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison, Bhavik Mehta
 -/
-import Mathbin.CategoryTheory.Monad.Adjunction
-import Mathbin.CategoryTheory.Adjunction.Limits
-import Mathbin.CategoryTheory.Limits.Shapes.Terminal
+import CategoryTheory.Monad.Adjunction
+import CategoryTheory.Adjunction.Limits
+import CategoryTheory.Limits.Shapes.Terminal
 
 #align_import category_theory.monad.limits from "leanprover-community/mathlib"@"86d1873c01a723aba6788f0b9051ae3d23b4c1c3"
 
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2019 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison, Bhavik Mehta
-
-! This file was ported from Lean 3 source module category_theory.monad.limits
-! leanprover-community/mathlib commit 86d1873c01a723aba6788f0b9051ae3d23b4c1c3
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Monad.Adjunction
 import Mathbin.CategoryTheory.Adjunction.Limits
 import Mathbin.CategoryTheory.Limits.Shapes.Terminal
 
+#align_import category_theory.monad.limits from "leanprover-community/mathlib"@"86d1873c01a723aba6788f0b9051ae3d23b4c1c3"
+
 /-!
 # Limits and colimits in the category of algebras
 
Diff
@@ -185,6 +185,7 @@ def newCocone : Cocone ((D ⋙ forget T) ⋙ ↑T)
 
 variable [PreservesColimit (D ⋙ forget T) (T : C ⥤ C)]
 
+#print CategoryTheory.Monad.ForgetCreatesColimits.lambda /-
 /-- (Impl)
 Define the map `λ : TL ⟶ L`, which will serve as the structure of the coalgebra on `L`, and
 we will show is the colimiting object. We use the cocone constructed by `c` and the fact that
@@ -194,11 +195,14 @@ we will show is the colimiting object. We use the cocone constructed by `c` and
 def lambda : ((T : C ⥤ C).mapCocone c).pt ⟶ c.pt :=
   (isColimitOfPreserves _ t).desc (newCocone c)
 #align category_theory.monad.forget_creates_colimits.lambda CategoryTheory.Monad.ForgetCreatesColimits.lambda
+-/
 
+#print CategoryTheory.Monad.ForgetCreatesColimits.commuting /-
 /-- (Impl) The key property defining the map `λ : TL ⟶ L`. -/
 theorem commuting (j : J) : (T : C ⥤ C).map (c.ι.app j) ≫ lambda c t = (D.obj j).a ≫ c.ι.app j :=
   (isColimitOfPreserves _ t).fac (newCocone c) j
 #align category_theory.monad.forget_creates_colimits.commuting CategoryTheory.Monad.ForgetCreatesColimits.commuting
+-/
 
 variable [PreservesColimit ((D ⋙ forget T) ⋙ ↑T) (T : C ⥤ C)]
 
Diff
@@ -446,7 +446,7 @@ noncomputable def leftAdjointPreservesTerminalOfReflective (R : D ⥤ C) [Reflec
     apply is_limit_change_empty_cone D (limit.is_limit F)
     apply (as_iso ((adjunction.of_right_adjoint R).counit.app _)).symm.trans
     · apply (left_adjoint R).mapIso; letI := monadicCreatesLimits.{v, v} R
-      let this := (CategoryTheory.preservesLimitOfCreatesLimitAndHasLimit F R).preserves
+      let this.1 := (CategoryTheory.preservesLimitOfCreatesLimitAndHasLimit F R).preserves
       apply (this (limit.is_limit F)).conePointUniqueUpToIso h
     infer_instance
 #align category_theory.left_adjoint_preserves_terminal_of_reflective CategoryTheory.leftAdjointPreservesTerminalOfReflective
Diff
@@ -399,12 +399,12 @@ theorem hasLimitsOfShape_of_reflective [HasLimitsOfShape J C] (R : D ⥤ C) [Ref
 #align category_theory.has_limits_of_shape_of_reflective CategoryTheory.hasLimitsOfShape_of_reflective
 -/
 
-#print CategoryTheory.has_limits_of_reflective /-
+#print CategoryTheory.hasLimits_of_reflective /-
 /-- If `C` has limits then any reflective subcategory has limits. -/
-theorem has_limits_of_reflective (R : D ⥤ C) [HasLimitsOfSize.{v, u} C] [Reflective R] :
+theorem hasLimits_of_reflective (R : D ⥤ C) [HasLimitsOfSize.{v, u} C] [Reflective R] :
     HasLimitsOfSize.{v, u} D :=
   { HasLimitsOfShape := fun J 𝒥₁ => has_limits_of_shape_of_reflective R }
-#align category_theory.has_limits_of_reflective CategoryTheory.has_limits_of_reflective
+#align category_theory.has_limits_of_reflective CategoryTheory.hasLimits_of_reflective
 -/
 
 #print CategoryTheory.hasColimitsOfShape_of_reflective /-
@@ -424,12 +424,12 @@ theorem hasColimitsOfShape_of_reflective (R : D ⥤ C) [Reflective R] [HasColimi
 #align category_theory.has_colimits_of_shape_of_reflective CategoryTheory.hasColimitsOfShape_of_reflective
 -/
 
-#print CategoryTheory.has_colimits_of_reflective /-
+#print CategoryTheory.hasColimits_of_reflective /-
 /-- If `C` has colimits then any reflective subcategory has colimits. -/
-theorem has_colimits_of_reflective (R : D ⥤ C) [Reflective R] [HasColimitsOfSize.{v, u} C] :
+theorem hasColimits_of_reflective (R : D ⥤ C) [Reflective R] [HasColimitsOfSize.{v, u} C] :
     HasColimitsOfSize.{v, u} D :=
   { HasColimitsOfShape := fun J 𝒥 => has_colimits_of_shape_of_reflective R }
-#align category_theory.has_colimits_of_reflective CategoryTheory.has_colimits_of_reflective
+#align category_theory.has_colimits_of_reflective CategoryTheory.hasColimits_of_reflective
 -/
 
 #print CategoryTheory.leftAdjointPreservesTerminalOfReflective /-
Diff
@@ -185,12 +185,6 @@ def newCocone : Cocone ((D ⋙ forget T) ⋙ ↑T)
 
 variable [PreservesColimit (D ⋙ forget T) (T : C ⥤ C)]
 
-/- warning: category_theory.monad.forget_creates_colimits.lambda -> CategoryTheory.Monad.ForgetCreatesColimits.lambda is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {T : CategoryTheory.Monad.{u3, u4} C _inst_1} {J : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} J] {D : CategoryTheory.Functor.{u1, u3, u2, max u4 u3} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T)} (c : CategoryTheory.Limits.Cocone.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T))), (CategoryTheory.Limits.IsColimit.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) -> (forall [_inst_3 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u3, u4, u4} C _inst_1 C _inst_1 J _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) ((fun (a : Sort.{max (succ u4) (succ u3)}) (b : Type.{max u3 u4}) [self : HasLiftT.{max (succ u4) (succ u3), succ (max u3 u4)} a b] => self.0) (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (HasLiftT.mk.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CoeTCₓ.coe.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (coeBase.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CategoryTheory.coeMonad.{u3, u4} C _inst_1)))) T)], Quiver.Hom.{succ u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, u4, u4} J _inst_2 C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) ((fun (a : Sort.{max (succ u4) (succ u3)}) (b : Type.{max u3 u4}) [self : HasLiftT.{max (succ u4) (succ u3), succ (max u3 u4)} a b] => self.0) (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (HasLiftT.mk.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CoeTCₓ.coe.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (coeBase.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CategoryTheory.coeMonad.{u3, u4} C _inst_1)))) T)) (CategoryTheory.Functor.mapCocone.{u1, u3, u3, u2, u4, u4} J _inst_2 C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) ((fun (a : Sort.{max (succ u4) (succ u3)}) (b : Type.{max u3 u4}) [self : HasLiftT.{max (succ u4) (succ u3), succ (max u3 u4)} a b] => self.0) (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (HasLiftT.mk.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CoeTCₓ.coe.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (coeBase.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CategoryTheory.coeMonad.{u3, u4} C _inst_1)))) T) c)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c))
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {T : CategoryTheory.Monad.{u3, u4} C _inst_1} {J : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} J] {D : CategoryTheory.Functor.{u1, u3, u2, max u4 u3} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T)} (c : CategoryTheory.Limits.Cocone.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T))), (CategoryTheory.Limits.IsColimit.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) -> (forall [_inst_3 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u3, u4, u4} C _inst_1 C _inst_1 J _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) (CategoryTheory.Monad.toFunctor.{u3, u4} C _inst_1 T)], Quiver.Hom.{succ u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, u4, u4} J _inst_2 C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) (CategoryTheory.Monad.toFunctor.{u3, u4} C _inst_1 T)) (CategoryTheory.Functor.mapCocone.{u1, u3, u3, u2, u4, u4} J _inst_2 C _inst_1 C _inst_1 (CategoryTheory.Monad.toFunctor.{u3, u4} C _inst_1 T) (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c))
-Case conversion may be inaccurate. Consider using '#align category_theory.monad.forget_creates_colimits.lambda CategoryTheory.Monad.ForgetCreatesColimits.lambdaₓ'. -/
 /-- (Impl)
 Define the map `λ : TL ⟶ L`, which will serve as the structure of the coalgebra on `L`, and
 we will show is the colimiting object. We use the cocone constructed by `c` and the fact that
@@ -201,9 +195,6 @@ def lambda : ((T : C ⥤ C).mapCocone c).pt ⟶ c.pt :=
   (isColimitOfPreserves _ t).desc (newCocone c)
 #align category_theory.monad.forget_creates_colimits.lambda CategoryTheory.Monad.ForgetCreatesColimits.lambda
 
-/- warning: category_theory.monad.forget_creates_colimits.commuting -> CategoryTheory.Monad.ForgetCreatesColimits.commuting is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.monad.forget_creates_colimits.commuting CategoryTheory.Monad.ForgetCreatesColimits.commutingₓ'. -/
 /-- (Impl) The key property defining the map `λ : TL ⟶ L`. -/
 theorem commuting (j : J) : (T : C ⥤ C).map (c.ι.app j) ≫ lambda c t = (D.obj j).a ≫ c.ι.app j :=
   (isColimitOfPreserves _ t).fac (newCocone c) j
Diff
@@ -97,11 +97,7 @@ def liftedCone : Cone D where
   pt := conePoint D c t
   π :=
     { app := fun j => { f := c.π.app j }
-      naturality' := fun X Y f => by
-        ext1
-        dsimp
-        erw [c.w f]
-        simp }
+      naturality' := fun X Y f => by ext1; dsimp; erw [c.w f]; simp }
 #align category_theory.monad.forget_creates_limits.lifted_cone CategoryTheory.Monad.ForgetCreatesLimits.liftedCone
 -/
 
@@ -252,11 +248,7 @@ def liftedCocone : Cocone D where
     { app := fun j =>
         { f := c.ι.app j
           h' := commuting _ _ _ }
-      naturality' := fun A B f => by
-        ext1
-        dsimp
-        rw [comp_id]
-        apply c.w }
+      naturality' := fun A B f => by ext1; dsimp; rw [comp_id]; apply c.w }
 #align category_theory.monad.forget_creates_colimits.lifted_cocone CategoryTheory.Monad.ForgetCreatesColimits.liftedCocone
 -/
 
@@ -273,11 +265,7 @@ def liftedCoconeIsColimit : IsColimit (liftedCocone c t)
           dsimp
           rw [← functor.map_comp_assoc, ← category.assoc, t.fac, commuting, category.assoc, t.fac]
           apply algebra.hom.h }
-  uniq s m J := by
-    ext1
-    apply t.hom_ext
-    intro j
-    simpa using congr_arg algebra.hom.f (J j)
+  uniq s m J := by ext1; apply t.hom_ext; intro j; simpa using congr_arg algebra.hom.f (J j)
 #align category_theory.monad.forget_creates_colimits.lifted_cocone_is_colimit CategoryTheory.Monad.ForgetCreatesColimits.liftedCoconeIsColimit
 -/
 
@@ -300,10 +288,7 @@ noncomputable instance forgetCreatesColimit (D : J ⥤ Algebra T)
             { app := fun j =>
                 { f := c.ι.app j
                   h' := commuting _ _ _ }
-              naturality' := fun A B f => by
-                ext1
-                dsimp
-                erw [comp_id, c.w] } }
+              naturality' := fun A B f => by ext1; dsimp; erw [comp_id, c.w] } }
       validLift := Cocones.ext (Iso.refl _) (by tidy)
       makesColimit := liftedCoconeIsColimit _ _ }
 #align category_theory.monad.forget_creates_colimit CategoryTheory.Monad.forgetCreatesColimit
@@ -469,8 +454,7 @@ noncomputable def leftAdjointPreservesTerminalOfReflective (R : D ⥤ C) [Reflec
     haveI : has_limit F := has_limit_of_reflective F R
     apply is_limit_change_empty_cone D (limit.is_limit F)
     apply (as_iso ((adjunction.of_right_adjoint R).counit.app _)).symm.trans
-    · apply (left_adjoint R).mapIso
-      letI := monadicCreatesLimits.{v, v} R
+    · apply (left_adjoint R).mapIso; letI := monadicCreatesLimits.{v, v} R
       let this := (CategoryTheory.preservesLimitOfCreatesLimitAndHasLimit F R).preserves
       apply (this (limit.is_limit F)).conePointUniqueUpToIso h
     infer_instance
Diff
@@ -206,10 +206,7 @@ def lambda : ((T : C ⥤ C).mapCocone c).pt ⟶ c.pt :=
 #align category_theory.monad.forget_creates_colimits.lambda CategoryTheory.Monad.ForgetCreatesColimits.lambda
 
 /- warning: category_theory.monad.forget_creates_colimits.commuting -> CategoryTheory.Monad.ForgetCreatesColimits.commuting is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {T : CategoryTheory.Monad.{u3, u4} C _inst_1} {J : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} J] {D : CategoryTheory.Functor.{u1, u3, u2, max u4 u3} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T)} (c : CategoryTheory.Limits.Cocone.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T))) (t : CategoryTheory.Limits.IsColimit.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) [_inst_3 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u3, u4, u4} C _inst_1 C _inst_1 J _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) ((fun (a : Sort.{max (succ u4) (succ u3)}) (b : Type.{max u3 u4}) [self : HasLiftT.{max (succ u4) (succ u3), succ (max u3 u4)} a b] => self.0) (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (HasLiftT.mk.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CoeTCₓ.coe.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (coeBase.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CategoryTheory.coeMonad.{u3, u4} C _inst_1)))) T)] (j : J), Eq.{succ u3} (Quiver.Hom.{succ u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.obj.{u3, u3, u4, u4} C _inst_1 C _inst_1 ((fun (a : Sort.{max (succ u4) (succ u3)}) (b : Type.{max u3 u4}) [self : HasLiftT.{max (succ u4) (succ u3), succ (max u3 u4)} a b] => self.0) (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (HasLiftT.mk.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CoeTCₓ.coe.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (coeBase.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CategoryTheory.coeMonad.{u3, u4} C _inst_1)))) T) (CategoryTheory.Functor.obj.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) j)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c)) (CategoryTheory.CategoryStruct.comp.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1) (CategoryTheory.Functor.obj.{u3, u3, u4, u4} C _inst_1 C _inst_1 ((fun (a : Sort.{max (succ u4) (succ u3)}) (b : Type.{max u3 u4}) [self : HasLiftT.{max (succ u4) (succ u3), succ (max u3 u4)} a b] => self.0) (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (HasLiftT.mk.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CoeTCₓ.coe.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (coeBase.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CategoryTheory.coeMonad.{u3, u4} C _inst_1)))) T) (CategoryTheory.Functor.obj.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) j)) (CategoryTheory.Functor.obj.{u3, u3, u4, u4} C _inst_1 C _inst_1 ((fun (a : Sort.{max (succ u4) (succ u3)}) (b : Type.{max u3 u4}) [self : HasLiftT.{max (succ u4) (succ u3), succ (max u3 u4)} a b] => self.0) (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (HasLiftT.mk.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CoeTCₓ.coe.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (coeBase.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CategoryTheory.coeMonad.{u3, u4} C _inst_1)))) T) (CategoryTheory.Functor.obj.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.obj.{u3, max u2 u3, u4, max u1 u3 u2 u4} C _inst_1 (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.const.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c)) j)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) (CategoryTheory.Functor.map.{u3, u3, u4, u4} C _inst_1 C _inst_1 ((fun (a : Sort.{max (succ u4) (succ u3)}) (b : Type.{max u3 u4}) [self : HasLiftT.{max (succ u4) (succ u3), succ (max u3 u4)} a b] => self.0) (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (HasLiftT.mk.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CoeTCₓ.coe.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (coeBase.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CategoryTheory.coeMonad.{u3, u4} C _inst_1)))) T) (CategoryTheory.Functor.obj.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) j) (CategoryTheory.Functor.obj.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.obj.{u3, max u2 u3, u4, max u1 u3 u2 u4} C _inst_1 (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.const.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c)) j) (CategoryTheory.NatTrans.app.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) (CategoryTheory.Functor.obj.{u3, max u2 u3, u4, max u1 u3 u2 u4} C _inst_1 (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.const.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c)) (CategoryTheory.Limits.Cocone.ι.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) j)) (CategoryTheory.Monad.ForgetCreatesColimits.lambda.{u1, u2, u3, u4} C _inst_1 T J _inst_2 D c t _inst_3)) (CategoryTheory.CategoryStruct.comp.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1) (CategoryTheory.Functor.obj.{u3, u3, u4, u4} C _inst_1 C _inst_1 ((fun (a : Sort.{max (succ u4) (succ u3)}) (b : Type.{max u3 u4}) [self : HasLiftT.{max (succ u4) (succ u3), succ (max u3 u4)} a b] => self.0) (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (HasLiftT.mk.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CoeTCₓ.coe.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (coeBase.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CategoryTheory.coeMonad.{u3, u4} C _inst_1)))) T) (CategoryTheory.Functor.obj.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) j)) (CategoryTheory.Monad.Algebra.A.{u3, u4} C _inst_1 T (CategoryTheory.Functor.obj.{u1, u3, u2, max u4 u3} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) D j)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) (CategoryTheory.Monad.Algebra.a.{u3, u4} C _inst_1 T (CategoryTheory.Functor.obj.{u1, u3, u2, max u4 u3} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) D j)) (CategoryTheory.NatTrans.app.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) (CategoryTheory.Functor.obj.{u3, max u2 u3, u4, max u1 u3 u2 u4} C _inst_1 (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.const.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c)) (CategoryTheory.Limits.Cocone.ι.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) j))
-but is expected to have type
-  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {T : CategoryTheory.Monad.{u3, u4} C _inst_1} {J : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} J] {D : CategoryTheory.Functor.{u1, u3, u2, max u4 u3} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T)} (c : CategoryTheory.Limits.Cocone.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T))) (t : CategoryTheory.Limits.IsColimit.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) [_inst_3 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u3, u4, u4} C _inst_1 C _inst_1 J _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) (CategoryTheory.Monad.toFunctor.{u3, u4} C _inst_1 T)] (j : J), Eq.{succ u3} (Quiver.Hom.{succ u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (Prefunctor.obj.{succ u3, succ u3, u4, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, u4} C _inst_1 C _inst_1 (CategoryTheory.Monad.toFunctor.{u3, u4} C _inst_1 T)) (Prefunctor.obj.{succ u1, succ u3, u2, u4} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T))) j)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c)) (CategoryTheory.CategoryStruct.comp.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1) (Prefunctor.obj.{succ u3, succ u3, u4, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, u4} C _inst_1 C _inst_1 (CategoryTheory.Monad.toFunctor.{u3, u4} C _inst_1 T)) (Prefunctor.obj.{succ u1, succ u3, u2, u4} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T))) j)) (Prefunctor.obj.{succ u3, succ u3, u4, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, u4} C _inst_1 C _inst_1 (CategoryTheory.Monad.toFunctor.{u3, u4} C _inst_1 T)) (Prefunctor.obj.{succ u1, succ u3, u2, u4} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u4} J _inst_2 C _inst_1 (Prefunctor.obj.{succ u3, max (succ u2) (succ u3), u4, max (max (max u2 u1) u3) u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u3, max u2 u3, u4, max (max (max u2 u1) u4) u3} C _inst_1 (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.const.{u1, u3, u2, u4} J _inst_2 C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c))) j)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) (Prefunctor.map.{succ u3, succ u3, u4, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, u4} C _inst_1 C _inst_1 (CategoryTheory.Monad.toFunctor.{u3, u4} C _inst_1 T)) (Prefunctor.obj.{succ u1, succ u3, u2, u4} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T))) j) (Prefunctor.obj.{succ u1, succ u3, u2, u4} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u4} J _inst_2 C _inst_1 (Prefunctor.obj.{succ u3, max (succ u2) (succ u3), u4, max (max (max u2 u1) u3) u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u3, max u2 u3, u4, max (max (max u2 u1) u4) u3} C _inst_1 (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.const.{u1, u3, u2, u4} J _inst_2 C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c))) j) (CategoryTheory.NatTrans.app.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) (Prefunctor.obj.{succ u3, max (succ u2) (succ u3), u4, max (max (max u2 u1) u3) u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u3, max u2 u3, u4, max (max (max u2 u1) u4) u3} C _inst_1 (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.const.{u1, u3, u2, u4} J _inst_2 C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c)) (CategoryTheory.Limits.Cocone.ι.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) j)) (CategoryTheory.Monad.ForgetCreatesColimits.lambda.{u1, u2, u3, u4} C _inst_1 T J _inst_2 D c t _inst_3)) (CategoryTheory.CategoryStruct.comp.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1) (Prefunctor.obj.{succ u3, succ u3, u4, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, u4} C _inst_1 C _inst_1 (CategoryTheory.Monad.toFunctor.{u3, u4} C _inst_1 T)) (CategoryTheory.Monad.Algebra.A.{u3, u4} C _inst_1 T (Prefunctor.obj.{succ u1, succ u3, u2, max u4 u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_2)) (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T))) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, max u4 u3} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) D) j))) (CategoryTheory.Monad.Algebra.A.{u3, u4} C _inst_1 T (Prefunctor.obj.{succ u1, succ u3, u2, max u4 u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_2)) (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T))) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, max u4 u3} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) D) j)) (Prefunctor.obj.{succ u1, succ u3, u2, u4} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u4} J _inst_2 C _inst_1 (Prefunctor.obj.{succ u3, max (succ u2) (succ u3), u4, max (max (max u2 u1) u3) u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u3, max u2 u3, u4, max (max (max u2 u1) u4) u3} C _inst_1 (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.const.{u1, u3, u2, u4} J _inst_2 C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c))) j) (CategoryTheory.Monad.Algebra.a.{u3, u4} C _inst_1 T (Prefunctor.obj.{succ u1, succ u3, u2, max u4 u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_2)) (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T))) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, max u4 u3} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) D) j)) (CategoryTheory.NatTrans.app.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) (Prefunctor.obj.{succ u3, max (succ u2) (succ u3), u4, max (max (max u2 u1) u3) u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u3, max u2 u3, u4, max (max (max u2 u1) u4) u3} C _inst_1 (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.const.{u1, u3, u2, u4} J _inst_2 C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c)) (CategoryTheory.Limits.Cocone.ι.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) j))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.monad.forget_creates_colimits.commuting CategoryTheory.Monad.ForgetCreatesColimits.commutingₓ'. -/
 /-- (Impl) The key property defining the map `λ : TL ⟶ L`. -/
 theorem commuting (j : J) : (T : C ⥤ C).map (c.ι.app j) ≫ lambda c t = (D.obj j).a ≫ c.ι.app j :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison, Bhavik Mehta
 
 ! This file was ported from Lean 3 source module category_theory.monad.limits
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
+! leanprover-community/mathlib commit 86d1873c01a723aba6788f0b9051ae3d23b4c1c3
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -15,6 +15,9 @@ import Mathbin.CategoryTheory.Limits.Shapes.Terminal
 /-!
 # Limits and colimits in the category of algebras
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file shows that the forgetful functor `forget T : algebra T ⥤ C` for a monad `T : C ⥤ C`
 creates limits and creates any colimits which `T` preserves.
 This is used to show that `algebra T` has any limits which `C` has, and any colimits which `C` has
Diff
@@ -48,18 +48,23 @@ namespace ForgetCreatesLimits
 
 variable (D : J ⥤ Algebra T) (c : Cone (D ⋙ T.forget)) (t : IsLimit c)
 
+#print CategoryTheory.Monad.ForgetCreatesLimits.γ /-
 /-- (Impl) The natural transformation used to define the new cone -/
 @[simps]
 def γ : D ⋙ T.forget ⋙ ↑T ⟶ D ⋙ T.forget where app j := (D.obj j).a
 #align category_theory.monad.forget_creates_limits.γ CategoryTheory.Monad.ForgetCreatesLimits.γ
+-/
 
+#print CategoryTheory.Monad.ForgetCreatesLimits.newCone /-
 /-- (Impl) This new cone is used to construct the algebra structure -/
 @[simps π_app]
 def newCone : Cone (D ⋙ forget T) where
   pt := T.obj c.pt
   π := (Functor.constComp _ _ ↑T).inv ≫ whiskerRight c.π T ≫ γ D
 #align category_theory.monad.forget_creates_limits.new_cone CategoryTheory.Monad.ForgetCreatesLimits.newCone
+-/
 
+#print CategoryTheory.Monad.ForgetCreatesLimits.conePoint /-
 /-- The algebra structure which will be the apex of the new limit cone for `D`. -/
 @[simps]
 def conePoint : Algebra T where
@@ -80,7 +85,9 @@ def conePoint : Algebra T where
         (D.obj j).and_assoc, functor.map_comp, category.assoc]
       rfl
 #align category_theory.monad.forget_creates_limits.cone_point CategoryTheory.Monad.ForgetCreatesLimits.conePoint
+-/
 
+#print CategoryTheory.Monad.ForgetCreatesLimits.liftedCone /-
 /-- (Impl) Construct the lifted cone in `algebra T` which will be limiting. -/
 @[simps]
 def liftedCone : Cone D where
@@ -93,7 +100,9 @@ def liftedCone : Cone D where
         erw [c.w f]
         simp }
 #align category_theory.monad.forget_creates_limits.lifted_cone CategoryTheory.Monad.ForgetCreatesLimits.liftedCone
+-/
 
+#print CategoryTheory.Monad.ForgetCreatesLimits.liftedConeIsLimit /-
 /-- (Impl) Prove that the lifted cone is limiting. -/
 @[simps]
 def liftedConeIsLimit : IsLimit (liftedCone D c t)
@@ -112,9 +121,11 @@ def liftedConeIsLimit : IsLimit (liftedCone D c t)
     intro j
     simpa [t.fac ((forget T).mapCone s) j] using congr_arg algebra.hom.f (J j)
 #align category_theory.monad.forget_creates_limits.lifted_cone_is_limit CategoryTheory.Monad.ForgetCreatesLimits.liftedConeIsLimit
+-/
 
 end ForgetCreatesLimits
 
+#print CategoryTheory.Monad.forgetCreatesLimits /-
 -- Theorem 5.6.5 from [Riehl][riehl2017]
 /-- The forgetful functor from the Eilenberg-Moore category creates limits. -/
 noncomputable instance forgetCreatesLimits : CreatesLimitsOfSize (forget T)
@@ -126,18 +137,22 @@ noncomputable instance forgetCreatesLimits : CreatesLimitsOfSize (forget T)
             validLift := cones.ext (iso.refl _) fun j => (id_comp _).symm
             makesLimit := forget_creates_limits.lifted_cone_is_limit _ _ _ } }
 #align category_theory.monad.forget_creates_limits CategoryTheory.Monad.forgetCreatesLimits
+-/
 
+#print CategoryTheory.Monad.hasLimit_of_comp_forget_hasLimit /-
 /-- `D ⋙ forget T` has a limit, then `D` has a limit. -/
 theorem hasLimit_of_comp_forget_hasLimit (D : J ⥤ Algebra T) [HasLimit (D ⋙ forget T)] :
     HasLimit D :=
   hasLimit_of_created D (forget T)
 #align category_theory.monad.has_limit_of_comp_forget_has_limit CategoryTheory.Monad.hasLimit_of_comp_forget_hasLimit
+-/
 
 namespace ForgetCreatesColimits
 
 -- Let's hide the implementation details in a namespace
 variable {D : J ⥤ Algebra T} (c : Cocone (D ⋙ forget T)) (t : IsColimit c)
 
+#print CategoryTheory.Monad.ForgetCreatesColimits.γ /-
 -- We have a diagram D of shape J in the category of algebras, and we assume that we are given a
 -- colimit for its image D ⋙ forget T under the forgetful functor, say its apex is L.
 -- We'll construct a colimiting coalgebra for D, whose carrier will also be L.
@@ -154,7 +169,9 @@ apex `colimit (D ⋙ forget T)`.
 @[simps]
 def γ : (D ⋙ forget T) ⋙ ↑T ⟶ D ⋙ forget T where app j := (D.obj j).a
 #align category_theory.monad.forget_creates_colimits.γ CategoryTheory.Monad.ForgetCreatesColimits.γ
+-/
 
+#print CategoryTheory.Monad.ForgetCreatesColimits.newCocone /-
 /-- (Impl)
 A cocone for the diagram `(D ⋙ forget T) ⋙ T` found by composing the natural transformation `γ`
 with the colimiting cocone for `D ⋙ forget T`.
@@ -165,9 +182,16 @@ def newCocone : Cocone ((D ⋙ forget T) ⋙ ↑T)
   pt := c.pt
   ι := γ ≫ c.ι
 #align category_theory.monad.forget_creates_colimits.new_cocone CategoryTheory.Monad.ForgetCreatesColimits.newCocone
+-/
 
 variable [PreservesColimit (D ⋙ forget T) (T : C ⥤ C)]
 
+/- warning: category_theory.monad.forget_creates_colimits.lambda -> CategoryTheory.Monad.ForgetCreatesColimits.lambda is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {T : CategoryTheory.Monad.{u3, u4} C _inst_1} {J : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} J] {D : CategoryTheory.Functor.{u1, u3, u2, max u4 u3} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T)} (c : CategoryTheory.Limits.Cocone.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T))), (CategoryTheory.Limits.IsColimit.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) -> (forall [_inst_3 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u3, u4, u4} C _inst_1 C _inst_1 J _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) ((fun (a : Sort.{max (succ u4) (succ u3)}) (b : Type.{max u3 u4}) [self : HasLiftT.{max (succ u4) (succ u3), succ (max u3 u4)} a b] => self.0) (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (HasLiftT.mk.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CoeTCₓ.coe.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (coeBase.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CategoryTheory.coeMonad.{u3, u4} C _inst_1)))) T)], Quiver.Hom.{succ u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, u4, u4} J _inst_2 C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) ((fun (a : Sort.{max (succ u4) (succ u3)}) (b : Type.{max u3 u4}) [self : HasLiftT.{max (succ u4) (succ u3), succ (max u3 u4)} a b] => self.0) (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (HasLiftT.mk.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CoeTCₓ.coe.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (coeBase.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CategoryTheory.coeMonad.{u3, u4} C _inst_1)))) T)) (CategoryTheory.Functor.mapCocone.{u1, u3, u3, u2, u4, u4} J _inst_2 C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) ((fun (a : Sort.{max (succ u4) (succ u3)}) (b : Type.{max u3 u4}) [self : HasLiftT.{max (succ u4) (succ u3), succ (max u3 u4)} a b] => self.0) (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (HasLiftT.mk.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CoeTCₓ.coe.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (coeBase.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CategoryTheory.coeMonad.{u3, u4} C _inst_1)))) T) c)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c))
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {T : CategoryTheory.Monad.{u3, u4} C _inst_1} {J : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} J] {D : CategoryTheory.Functor.{u1, u3, u2, max u4 u3} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T)} (c : CategoryTheory.Limits.Cocone.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T))), (CategoryTheory.Limits.IsColimit.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) -> (forall [_inst_3 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u3, u4, u4} C _inst_1 C _inst_1 J _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) (CategoryTheory.Monad.toFunctor.{u3, u4} C _inst_1 T)], Quiver.Hom.{succ u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, u4, u4} J _inst_2 C _inst_1 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) (CategoryTheory.Monad.toFunctor.{u3, u4} C _inst_1 T)) (CategoryTheory.Functor.mapCocone.{u1, u3, u3, u2, u4, u4} J _inst_2 C _inst_1 C _inst_1 (CategoryTheory.Monad.toFunctor.{u3, u4} C _inst_1 T) (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c))
+Case conversion may be inaccurate. Consider using '#align category_theory.monad.forget_creates_colimits.lambda CategoryTheory.Monad.ForgetCreatesColimits.lambdaₓ'. -/
 /-- (Impl)
 Define the map `λ : TL ⟶ L`, which will serve as the structure of the coalgebra on `L`, and
 we will show is the colimiting object. We use the cocone constructed by `c` and the fact that
@@ -178,6 +202,12 @@ def lambda : ((T : C ⥤ C).mapCocone c).pt ⟶ c.pt :=
   (isColimitOfPreserves _ t).desc (newCocone c)
 #align category_theory.monad.forget_creates_colimits.lambda CategoryTheory.Monad.ForgetCreatesColimits.lambda
 
+/- warning: category_theory.monad.forget_creates_colimits.commuting -> CategoryTheory.Monad.ForgetCreatesColimits.commuting is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {T : CategoryTheory.Monad.{u3, u4} C _inst_1} {J : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} J] {D : CategoryTheory.Functor.{u1, u3, u2, max u4 u3} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T)} (c : CategoryTheory.Limits.Cocone.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T))) (t : CategoryTheory.Limits.IsColimit.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) [_inst_3 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u3, u4, u4} C _inst_1 C _inst_1 J _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) ((fun (a : Sort.{max (succ u4) (succ u3)}) (b : Type.{max u3 u4}) [self : HasLiftT.{max (succ u4) (succ u3), succ (max u3 u4)} a b] => self.0) (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (HasLiftT.mk.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CoeTCₓ.coe.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (coeBase.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CategoryTheory.coeMonad.{u3, u4} C _inst_1)))) T)] (j : J), Eq.{succ u3} (Quiver.Hom.{succ u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.obj.{u3, u3, u4, u4} C _inst_1 C _inst_1 ((fun (a : Sort.{max (succ u4) (succ u3)}) (b : Type.{max u3 u4}) [self : HasLiftT.{max (succ u4) (succ u3), succ (max u3 u4)} a b] => self.0) (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (HasLiftT.mk.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CoeTCₓ.coe.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (coeBase.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CategoryTheory.coeMonad.{u3, u4} C _inst_1)))) T) (CategoryTheory.Functor.obj.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) j)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c)) (CategoryTheory.CategoryStruct.comp.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1) (CategoryTheory.Functor.obj.{u3, u3, u4, u4} C _inst_1 C _inst_1 ((fun (a : Sort.{max (succ u4) (succ u3)}) (b : Type.{max u3 u4}) [self : HasLiftT.{max (succ u4) (succ u3), succ (max u3 u4)} a b] => self.0) (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (HasLiftT.mk.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CoeTCₓ.coe.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (coeBase.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CategoryTheory.coeMonad.{u3, u4} C _inst_1)))) T) (CategoryTheory.Functor.obj.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) j)) (CategoryTheory.Functor.obj.{u3, u3, u4, u4} C _inst_1 C _inst_1 ((fun (a : Sort.{max (succ u4) (succ u3)}) (b : Type.{max u3 u4}) [self : HasLiftT.{max (succ u4) (succ u3), succ (max u3 u4)} a b] => self.0) (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (HasLiftT.mk.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CoeTCₓ.coe.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (coeBase.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CategoryTheory.coeMonad.{u3, u4} C _inst_1)))) T) (CategoryTheory.Functor.obj.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.obj.{u3, max u2 u3, u4, max u1 u3 u2 u4} C _inst_1 (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.const.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c)) j)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) (CategoryTheory.Functor.map.{u3, u3, u4, u4} C _inst_1 C _inst_1 ((fun (a : Sort.{max (succ u4) (succ u3)}) (b : Type.{max u3 u4}) [self : HasLiftT.{max (succ u4) (succ u3), succ (max u3 u4)} a b] => self.0) (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (HasLiftT.mk.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CoeTCₓ.coe.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (coeBase.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CategoryTheory.coeMonad.{u3, u4} C _inst_1)))) T) (CategoryTheory.Functor.obj.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) j) (CategoryTheory.Functor.obj.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.obj.{u3, max u2 u3, u4, max u1 u3 u2 u4} C _inst_1 (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.const.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c)) j) (CategoryTheory.NatTrans.app.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) (CategoryTheory.Functor.obj.{u3, max u2 u3, u4, max u1 u3 u2 u4} C _inst_1 (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.const.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c)) (CategoryTheory.Limits.Cocone.ι.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) j)) (CategoryTheory.Monad.ForgetCreatesColimits.lambda.{u1, u2, u3, u4} C _inst_1 T J _inst_2 D c t _inst_3)) (CategoryTheory.CategoryStruct.comp.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1) (CategoryTheory.Functor.obj.{u3, u3, u4, u4} C _inst_1 C _inst_1 ((fun (a : Sort.{max (succ u4) (succ u3)}) (b : Type.{max u3 u4}) [self : HasLiftT.{max (succ u4) (succ u3), succ (max u3 u4)} a b] => self.0) (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (HasLiftT.mk.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CoeTCₓ.coe.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (coeBase.{max (succ u4) (succ u3), succ (max u3 u4)} (CategoryTheory.Monad.{u3, u4} C _inst_1) (CategoryTheory.Functor.{u3, u3, u4, u4} C _inst_1 C _inst_1) (CategoryTheory.coeMonad.{u3, u4} C _inst_1)))) T) (CategoryTheory.Functor.obj.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) j)) (CategoryTheory.Monad.Algebra.A.{u3, u4} C _inst_1 T (CategoryTheory.Functor.obj.{u1, u3, u2, max u4 u3} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) D j)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) (CategoryTheory.Monad.Algebra.a.{u3, u4} C _inst_1 T (CategoryTheory.Functor.obj.{u1, u3, u2, max u4 u3} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) D j)) (CategoryTheory.NatTrans.app.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) (CategoryTheory.Functor.obj.{u3, max u2 u3, u4, max u1 u3 u2 u4} C _inst_1 (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.const.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c)) (CategoryTheory.Limits.Cocone.ι.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) j))
+but is expected to have type
+  forall {C : Type.{u4}} [_inst_1 : CategoryTheory.Category.{u3, u4} C] {T : CategoryTheory.Monad.{u3, u4} C _inst_1} {J : Type.{u2}} [_inst_2 : CategoryTheory.Category.{u1, u2} J] {D : CategoryTheory.Functor.{u1, u3, u2, max u4 u3} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T)} (c : CategoryTheory.Limits.Cocone.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T))) (t : CategoryTheory.Limits.IsColimit.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) [_inst_3 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u3, u4, u4} C _inst_1 C _inst_1 J _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) (CategoryTheory.Monad.toFunctor.{u3, u4} C _inst_1 T)] (j : J), Eq.{succ u3} (Quiver.Hom.{succ u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (Prefunctor.obj.{succ u3, succ u3, u4, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, u4} C _inst_1 C _inst_1 (CategoryTheory.Monad.toFunctor.{u3, u4} C _inst_1 T)) (Prefunctor.obj.{succ u1, succ u3, u2, u4} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T))) j)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c)) (CategoryTheory.CategoryStruct.comp.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1) (Prefunctor.obj.{succ u3, succ u3, u4, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, u4} C _inst_1 C _inst_1 (CategoryTheory.Monad.toFunctor.{u3, u4} C _inst_1 T)) (Prefunctor.obj.{succ u1, succ u3, u2, u4} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T))) j)) (Prefunctor.obj.{succ u3, succ u3, u4, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, u4} C _inst_1 C _inst_1 (CategoryTheory.Monad.toFunctor.{u3, u4} C _inst_1 T)) (Prefunctor.obj.{succ u1, succ u3, u2, u4} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u4} J _inst_2 C _inst_1 (Prefunctor.obj.{succ u3, max (succ u2) (succ u3), u4, max (max (max u2 u1) u3) u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u3, max u2 u3, u4, max (max (max u2 u1) u4) u3} C _inst_1 (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.const.{u1, u3, u2, u4} J _inst_2 C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c))) j)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) (Prefunctor.map.{succ u3, succ u3, u4, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, u4} C _inst_1 C _inst_1 (CategoryTheory.Monad.toFunctor.{u3, u4} C _inst_1 T)) (Prefunctor.obj.{succ u1, succ u3, u2, u4} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T))) j) (Prefunctor.obj.{succ u1, succ u3, u2, u4} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u4} J _inst_2 C _inst_1 (Prefunctor.obj.{succ u3, max (succ u2) (succ u3), u4, max (max (max u2 u1) u3) u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u3, max u2 u3, u4, max (max (max u2 u1) u4) u3} C _inst_1 (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.const.{u1, u3, u2, u4} J _inst_2 C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c))) j) (CategoryTheory.NatTrans.app.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) (Prefunctor.obj.{succ u3, max (succ u2) (succ u3), u4, max (max (max u2 u1) u3) u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u3, max u2 u3, u4, max (max (max u2 u1) u4) u3} C _inst_1 (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.const.{u1, u3, u2, u4} J _inst_2 C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c)) (CategoryTheory.Limits.Cocone.ι.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) j)) (CategoryTheory.Monad.ForgetCreatesColimits.lambda.{u1, u2, u3, u4} C _inst_1 T J _inst_2 D c t _inst_3)) (CategoryTheory.CategoryStruct.comp.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1) (Prefunctor.obj.{succ u3, succ u3, u4, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u3, u3, u4, u4} C _inst_1 C _inst_1 (CategoryTheory.Monad.toFunctor.{u3, u4} C _inst_1 T)) (CategoryTheory.Monad.Algebra.A.{u3, u4} C _inst_1 T (Prefunctor.obj.{succ u1, succ u3, u2, max u4 u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_2)) (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T))) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, max u4 u3} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) D) j))) (CategoryTheory.Monad.Algebra.A.{u3, u4} C _inst_1 T (Prefunctor.obj.{succ u1, succ u3, u2, max u4 u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_2)) (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T))) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, max u4 u3} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) D) j)) (Prefunctor.obj.{succ u1, succ u3, u2, u4} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_2)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u4} J _inst_2 C _inst_1 (Prefunctor.obj.{succ u3, max (succ u2) (succ u3), u4, max (max (max u2 u1) u3) u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u3, max u2 u3, u4, max (max (max u2 u1) u4) u3} C _inst_1 (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.const.{u1, u3, u2, u4} J _inst_2 C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c))) j) (CategoryTheory.Monad.Algebra.a.{u3, u4} C _inst_1 T (Prefunctor.obj.{succ u1, succ u3, u2, max u4 u3} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_2)) (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.CategoryStruct.toQuiver.{u3, max u4 u3} (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Category.toCategoryStruct.{u3, max u4 u3} (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T))) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, max u4 u3} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) D) j)) (CategoryTheory.NatTrans.app.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) (Prefunctor.obj.{succ u3, max (succ u2) (succ u3), u4, max (max (max u2 u1) u3) u4} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u4} C (CategoryTheory.Category.toCategoryStruct.{u3, u4} C _inst_1)) (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Category.toCategoryStruct.{max u2 u3, max (max (max u2 u1) u4) u3} (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1))) (CategoryTheory.Functor.toPrefunctor.{u3, max u2 u3, u4, max (max (max u2 u1) u4) u3} C _inst_1 (CategoryTheory.Functor.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u4} J _inst_2 C _inst_1) (CategoryTheory.Functor.const.{u1, u3, u2, u4} J _inst_2 C _inst_1)) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c)) (CategoryTheory.Limits.Cocone.ι.{u1, u3, u2, u4} J _inst_2 C _inst_1 (CategoryTheory.Functor.comp.{u1, u3, u3, u2, max u4 u3, u4} J _inst_2 (CategoryTheory.Monad.Algebra.{u3, u4} C _inst_1 T) (CategoryTheory.Monad.Algebra.eilenbergMoore.{u3, u4} C _inst_1 T) C _inst_1 D (CategoryTheory.Monad.forget.{u3, u4} C _inst_1 T)) c) j))
+Case conversion may be inaccurate. Consider using '#align category_theory.monad.forget_creates_colimits.commuting CategoryTheory.Monad.ForgetCreatesColimits.commutingₓ'. -/
 /-- (Impl) The key property defining the map `λ : TL ⟶ L`. -/
 theorem commuting (j : J) : (T : C ⥤ C).map (c.ι.app j) ≫ lambda c t = (D.obj j).a ≫ c.ι.app j :=
   (isColimitOfPreserves _ t).fac (newCocone c) j
@@ -185,6 +215,7 @@ theorem commuting (j : J) : (T : C ⥤ C).map (c.ι.app j) ≫ lambda c t = (D.o
 
 variable [PreservesColimit ((D ⋙ forget T) ⋙ ↑T) (T : C ⥤ C)]
 
+#print CategoryTheory.Monad.ForgetCreatesColimits.coconePoint /-
 /-- (Impl)
 Construct the colimiting algebra from the map `λ : TL ⟶ L` given by `lambda`. We are required to
 show it satisfies the two algebra laws, which follow from the algebra laws for the image of `D` and
@@ -210,7 +241,9 @@ def coconePoint : Algebra T where
       functor.map_comp_assoc, commuting, functor.map_comp, category.assoc, commuting]
     apply (D.obj j).assoc_assoc _
 #align category_theory.monad.forget_creates_colimits.cocone_point CategoryTheory.Monad.ForgetCreatesColimits.coconePoint
+-/
 
+#print CategoryTheory.Monad.ForgetCreatesColimits.liftedCocone /-
 /-- (Impl) Construct the lifted cocone in `algebra T` which will be colimiting. -/
 @[simps]
 def liftedCocone : Cocone D where
@@ -225,7 +258,9 @@ def liftedCocone : Cocone D where
         rw [comp_id]
         apply c.w }
 #align category_theory.monad.forget_creates_colimits.lifted_cocone CategoryTheory.Monad.ForgetCreatesColimits.liftedCocone
+-/
 
+#print CategoryTheory.Monad.ForgetCreatesColimits.liftedCoconeIsColimit /-
 /-- (Impl) Prove that the lifted cocone is colimiting. -/
 @[simps]
 def liftedCoconeIsColimit : IsColimit (liftedCocone c t)
@@ -244,11 +279,13 @@ def liftedCoconeIsColimit : IsColimit (liftedCocone c t)
     intro j
     simpa using congr_arg algebra.hom.f (J j)
 #align category_theory.monad.forget_creates_colimits.lifted_cocone_is_colimit CategoryTheory.Monad.ForgetCreatesColimits.liftedCoconeIsColimit
+-/
 
 end ForgetCreatesColimits
 
 open ForgetCreatesColimits
 
+#print CategoryTheory.Monad.forgetCreatesColimit /-
 -- TODO: the converse of this is true as well
 /-- The forgetful functor from the Eilenberg-Moore category for a monad creates any colimit
 which the monad itself preserves.
@@ -270,15 +307,21 @@ noncomputable instance forgetCreatesColimit (D : J ⥤ Algebra T)
       validLift := Cocones.ext (Iso.refl _) (by tidy)
       makesColimit := liftedCoconeIsColimit _ _ }
 #align category_theory.monad.forget_creates_colimit CategoryTheory.Monad.forgetCreatesColimit
+-/
 
+#print CategoryTheory.Monad.forgetCreatesColimitsOfShape /-
 noncomputable instance forgetCreatesColimitsOfShape [PreservesColimitsOfShape J (T : C ⥤ C)] :
     CreatesColimitsOfShape J (forget T) where CreatesColimit K := by infer_instance
 #align category_theory.monad.forget_creates_colimits_of_shape CategoryTheory.Monad.forgetCreatesColimitsOfShape
+-/
 
+#print CategoryTheory.Monad.forgetCreatesColimits /-
 noncomputable instance forgetCreatesColimits [PreservesColimitsOfSize.{v, u} (T : C ⥤ C)] :
     CreatesColimitsOfSize.{v, u} (forget T) where CreatesColimitsOfShape J 𝒥₁ := by infer_instance
 #align category_theory.monad.forget_creates_colimits CategoryTheory.Monad.forgetCreatesColimits
+-/
 
+#print CategoryTheory.Monad.forget_creates_colimits_of_monad_preserves /-
 /-- For `D : J ⥤ algebra T`, `D ⋙ forget T` has a colimit, then `D` has a colimit provided colimits
 of shape `J` are preserved by `T`.
 -/
@@ -286,6 +329,7 @@ theorem forget_creates_colimits_of_monad_preserves [PreservesColimitsOfShape J (
     (D : J ⥤ Algebra T) [HasColimit (D ⋙ forget T)] : HasColimit D :=
   hasColimit_of_created D (forget T)
 #align category_theory.monad.forget_creates_colimits_of_monad_preserves CategoryTheory.Monad.forget_creates_colimits_of_monad_preserves
+-/
 
 end Monad
 
@@ -293,24 +337,31 @@ variable {C : Type u₁} [Category.{v₁} C] {D : Type u₂} [Category.{v₂} D]
 
 variable {J : Type u} [Category.{v} J]
 
+#print CategoryTheory.comp_comparison_forget_hasLimit /-
 instance comp_comparison_forget_hasLimit (F : J ⥤ D) (R : D ⥤ C) [MonadicRightAdjoint R]
     [HasLimit (F ⋙ R)] :
     HasLimit ((F ⋙ Monad.comparison (Adjunction.ofRightAdjoint R)) ⋙ Monad.forget _) :=
   @hasLimitOfIso _ _ _ _ (F ⋙ R) _ _
     (isoWhiskerLeft F (Monad.comparisonForget (Adjunction.ofRightAdjoint R)).symm)
 #align category_theory.comp_comparison_forget_has_limit CategoryTheory.comp_comparison_forget_hasLimit
+-/
 
+#print CategoryTheory.comp_comparison_hasLimit /-
 instance comp_comparison_hasLimit (F : J ⥤ D) (R : D ⥤ C) [MonadicRightAdjoint R]
     [HasLimit (F ⋙ R)] : HasLimit (F ⋙ Monad.comparison (Adjunction.ofRightAdjoint R)) :=
   Monad.hasLimit_of_comp_forget_hasLimit (F ⋙ Monad.comparison (Adjunction.ofRightAdjoint R))
 #align category_theory.comp_comparison_has_limit CategoryTheory.comp_comparison_hasLimit
+-/
 
+#print CategoryTheory.monadicCreatesLimits /-
 /-- Any monadic functor creates limits. -/
 noncomputable def monadicCreatesLimits (R : D ⥤ C) [MonadicRightAdjoint R] :
     CreatesLimitsOfSize.{v, u} R :=
   createsLimitsOfNatIso (Monad.comparisonForget (Adjunction.ofRightAdjoint R))
 #align category_theory.monadic_creates_limits CategoryTheory.monadicCreatesLimits
+-/
 
+#print CategoryTheory.monadicCreatesColimitOfPreservesColimit /-
 /-- The forgetful functor from the Eilenberg-Moore category for a monad creates any colimit
 which the monad itself preserves.
 -/
@@ -330,7 +381,9 @@ noncomputable def monadicCreatesColimitOfPreservesColimit (R : D ⥤ C) (K : J 
   · dsimp
     refine' preserves_colimit_of_iso_diagram _ (iso_whisker_right i (left_adjoint R ⋙ R)).symm
 #align category_theory.monadic_creates_colimit_of_preserves_colimit CategoryTheory.monadicCreatesColimitOfPreservesColimit
+-/
 
+#print CategoryTheory.monadicCreatesColimitsOfShapeOfPreservesColimitsOfShape /-
 /-- A monadic functor creates any colimits of shapes it preserves. -/
 noncomputable def monadicCreatesColimitsOfShapeOfPreservesColimitsOfShape (R : D ⥤ C)
     [MonadicRightAdjoint R] [PreservesColimitsOfShape J R] : CreatesColimitsOfShape J R :=
@@ -341,34 +394,44 @@ noncomputable def monadicCreatesColimitsOfShapeOfPreservesColimitsOfShape (R : D
     infer_instance
   ⟨fun K => monadic_creates_colimit_of_preserves_colimit _ _⟩
 #align category_theory.monadic_creates_colimits_of_shape_of_preserves_colimits_of_shape CategoryTheory.monadicCreatesColimitsOfShapeOfPreservesColimitsOfShape
+-/
 
+#print CategoryTheory.monadicCreatesColimitsOfPreservesColimits /-
 /-- A monadic functor creates colimits if it preserves colimits. -/
 noncomputable def monadicCreatesColimitsOfPreservesColimits (R : D ⥤ C) [MonadicRightAdjoint R]
     [PreservesColimitsOfSize.{v, u} R] : CreatesColimitsOfSize.{v, u} R
     where CreatesColimitsOfShape J 𝒥₁ :=
     monadic_creates_colimits_of_shape_of_preserves_colimits_of_shape _
 #align category_theory.monadic_creates_colimits_of_preserves_colimits CategoryTheory.monadicCreatesColimitsOfPreservesColimits
+-/
 
 section
 
+#print CategoryTheory.hasLimit_of_reflective /-
 theorem hasLimit_of_reflective (F : J ⥤ D) (R : D ⥤ C) [HasLimit (F ⋙ R)] [Reflective R] :
     HasLimit F :=
   haveI := monadicCreatesLimits.{v, u} R
   has_limit_of_created F R
 #align category_theory.has_limit_of_reflective CategoryTheory.hasLimit_of_reflective
+-/
 
+#print CategoryTheory.hasLimitsOfShape_of_reflective /-
 /-- If `C` has limits of shape `J` then any reflective subcategory has limits of shape `J`. -/
 theorem hasLimitsOfShape_of_reflective [HasLimitsOfShape J C] (R : D ⥤ C) [Reflective R] :
     HasLimitsOfShape J D :=
   { HasLimit := fun F => hasLimit_of_reflective F R }
 #align category_theory.has_limits_of_shape_of_reflective CategoryTheory.hasLimitsOfShape_of_reflective
+-/
 
+#print CategoryTheory.has_limits_of_reflective /-
 /-- If `C` has limits then any reflective subcategory has limits. -/
 theorem has_limits_of_reflective (R : D ⥤ C) [HasLimitsOfSize.{v, u} C] [Reflective R] :
     HasLimitsOfSize.{v, u} D :=
   { HasLimitsOfShape := fun J 𝒥₁ => has_limits_of_shape_of_reflective R }
 #align category_theory.has_limits_of_reflective CategoryTheory.has_limits_of_reflective
+-/
 
+#print CategoryTheory.hasColimitsOfShape_of_reflective /-
 /-- If `C` has colimits of shape `J` then any reflective subcategory has colimits of shape `J`. -/
 theorem hasColimitsOfShape_of_reflective (R : D ⥤ C) [Reflective R] [HasColimitsOfShape J C] :
     HasColimitsOfShape J D :=
@@ -383,13 +446,17 @@ theorem hasColimitsOfShape_of_reflective (R : D ⥤ C) [Reflective R] [HasColimi
       apply
         (iso_whisker_left F (as_iso (adjunction.of_right_adjoint R).counit) : _) ≪≫ F.right_unitor }
 #align category_theory.has_colimits_of_shape_of_reflective CategoryTheory.hasColimitsOfShape_of_reflective
+-/
 
+#print CategoryTheory.has_colimits_of_reflective /-
 /-- If `C` has colimits then any reflective subcategory has colimits. -/
 theorem has_colimits_of_reflective (R : D ⥤ C) [Reflective R] [HasColimitsOfSize.{v, u} C] :
     HasColimitsOfSize.{v, u} D :=
   { HasColimitsOfShape := fun J 𝒥 => has_colimits_of_shape_of_reflective R }
 #align category_theory.has_colimits_of_reflective CategoryTheory.has_colimits_of_reflective
+-/
 
+#print CategoryTheory.leftAdjointPreservesTerminalOfReflective /-
 /-- The reflector always preserves terminal objects. Note this in general doesn't apply to any other
 limit.
 -/
@@ -408,6 +475,7 @@ noncomputable def leftAdjointPreservesTerminalOfReflective (R : D ⥤ C) [Reflec
       apply (this (limit.is_limit F)).conePointUniqueUpToIso h
     infer_instance
 #align category_theory.left_adjoint_preserves_terminal_of_reflective CategoryTheory.leftAdjointPreservesTerminalOfReflective
+-/
 
 end
 
Diff
@@ -63,7 +63,7 @@ def newCone : Cone (D ⋙ forget T) where
 /-- The algebra structure which will be the apex of the new limit cone for `D`. -/
 @[simps]
 def conePoint : Algebra T where
-  a := c.pt
+  A := c.pt
   a := t.lift (newCone D c)
   unit' :=
     t.hom_ext fun j =>
@@ -192,12 +192,12 @@ our `commuting` lemma.
 -/
 @[simps]
 def coconePoint : Algebra T where
-  a := c.pt
+  A := c.pt
   a := lambda c t
   unit' := by
     apply t.hom_ext
     intro j
-    rw [show c.ι.app j ≫ T.η.app c.X ≫ _ = T.η.app (D.obj j).a ≫ _ ≫ _ from
+    rw [show c.ι.app j ≫ T.η.app c.X ≫ _ = T.η.app (D.obj j).A ≫ _ ≫ _ from
         T.η.naturality_assoc _ _,
       commuting, algebra.unit_assoc (D.obj j)]
     dsimp; simp
Diff
@@ -56,14 +56,14 @@ def γ : D ⋙ T.forget ⋙ ↑T ⟶ D ⋙ T.forget where app j := (D.obj j).a
 /-- (Impl) This new cone is used to construct the algebra structure -/
 @[simps π_app]
 def newCone : Cone (D ⋙ forget T) where
-  x := T.obj c.x
+  pt := T.obj c.pt
   π := (Functor.constComp _ _ ↑T).inv ≫ whiskerRight c.π T ≫ γ D
 #align category_theory.monad.forget_creates_limits.new_cone CategoryTheory.Monad.ForgetCreatesLimits.newCone
 
 /-- The algebra structure which will be the apex of the new limit cone for `D`. -/
 @[simps]
 def conePoint : Algebra T where
-  a := c.x
+  a := c.pt
   a := t.lift (newCone D c)
   unit' :=
     t.hom_ext fun j =>
@@ -84,7 +84,7 @@ def conePoint : Algebra T where
 /-- (Impl) Construct the lifted cone in `algebra T` which will be limiting. -/
 @[simps]
 def liftedCone : Cone D where
-  x := conePoint D c t
+  pt := conePoint D c t
   π :=
     { app := fun j => { f := c.π.app j }
       naturality' := fun X Y f => by
@@ -162,7 +162,7 @@ with the colimiting cocone for `D ⋙ forget T`.
 @[simps]
 def newCocone : Cocone ((D ⋙ forget T) ⋙ ↑T)
     where
-  x := c.x
+  pt := c.pt
   ι := γ ≫ c.ι
 #align category_theory.monad.forget_creates_colimits.new_cocone CategoryTheory.Monad.ForgetCreatesColimits.newCocone
 
@@ -174,7 +174,7 @@ we will show is the colimiting object. We use the cocone constructed by `c` and
 `T` preserves colimits to produce this morphism.
 -/
 @[reducible]
-def lambda : ((T : C ⥤ C).mapCocone c).x ⟶ c.x :=
+def lambda : ((T : C ⥤ C).mapCocone c).pt ⟶ c.pt :=
   (isColimitOfPreserves _ t).desc (newCocone c)
 #align category_theory.monad.forget_creates_colimits.lambda CategoryTheory.Monad.ForgetCreatesColimits.lambda
 
@@ -192,7 +192,7 @@ our `commuting` lemma.
 -/
 @[simps]
 def coconePoint : Algebra T where
-  a := c.x
+  a := c.pt
   a := lambda c t
   unit' := by
     apply t.hom_ext
@@ -214,7 +214,7 @@ def coconePoint : Algebra T where
 /-- (Impl) Construct the lifted cocone in `algebra T` which will be colimiting. -/
 @[simps]
 def liftedCocone : Cocone D where
-  x := coconePoint c t
+  pt := coconePoint c t
   ι :=
     { app := fun j =>
         { f := c.ι.app j
@@ -258,7 +258,7 @@ noncomputable instance forgetCreatesColimit (D : J ⥤ Algebra T)
     [PreservesColimit ((D ⋙ forget T) ⋙ ↑T) (T : C ⥤ C)] : CreatesColimit D (forget T) :=
   createsColimitOfReflectsIso fun c t =>
     { liftedCocone :=
-        { x := coconePoint c t
+        { pt := coconePoint c t
           ι :=
             { app := fun j =>
                 { f := c.ι.app j
@@ -296,7 +296,7 @@ variable {J : Type u} [Category.{v} J]
 instance comp_comparison_forget_hasLimit (F : J ⥤ D) (R : D ⥤ C) [MonadicRightAdjoint R]
     [HasLimit (F ⋙ R)] :
     HasLimit ((F ⋙ Monad.comparison (Adjunction.ofRightAdjoint R)) ⋙ Monad.forget _) :=
-  @hasLimit_of_iso _ _ _ _ (F ⋙ R) _ _
+  @hasLimitOfIso _ _ _ _ (F ⋙ R) _ _
     (isoWhiskerLeft F (Monad.comparisonForget (Adjunction.ofRightAdjoint R)).symm)
 #align category_theory.comp_comparison_forget_has_limit CategoryTheory.comp_comparison_forget_hasLimit
 
Diff
@@ -106,7 +106,7 @@ def liftedConeIsLimit : IsLimit (liftedCone D c t)
           rw [category.assoc, category.assoc, t.fac, new_cone_π_app, ← functor.map_comp_assoc,
             t.fac, functor.map_cone_π_app]
           apply (s.π.app j).h }
-  uniq' s m J := by
+  uniq s m J := by
     ext1
     apply t.hom_ext
     intro j
@@ -128,9 +128,10 @@ noncomputable instance forgetCreatesLimits : CreatesLimitsOfSize (forget T)
 #align category_theory.monad.forget_creates_limits CategoryTheory.Monad.forgetCreatesLimits
 
 /-- `D ⋙ forget T` has a limit, then `D` has a limit. -/
-theorem hasLimitOfCompForgetHasLimit (D : J ⥤ Algebra T) [HasLimit (D ⋙ forget T)] : HasLimit D :=
-  hasLimitOfCreated D (forget T)
-#align category_theory.monad.has_limit_of_comp_forget_has_limit CategoryTheory.Monad.hasLimitOfCompForgetHasLimit
+theorem hasLimit_of_comp_forget_hasLimit (D : J ⥤ Algebra T) [HasLimit (D ⋙ forget T)] :
+    HasLimit D :=
+  hasLimit_of_created D (forget T)
+#align category_theory.monad.has_limit_of_comp_forget_has_limit CategoryTheory.Monad.hasLimit_of_comp_forget_hasLimit
 
 namespace ForgetCreatesColimits
 
@@ -237,7 +238,7 @@ def liftedCoconeIsColimit : IsColimit (liftedCocone c t)
           dsimp
           rw [← functor.map_comp_assoc, ← category.assoc, t.fac, commuting, category.assoc, t.fac]
           apply algebra.hom.h }
-  uniq' s m J := by
+  uniq s m J := by
     ext1
     apply t.hom_ext
     intro j
@@ -281,10 +282,10 @@ noncomputable instance forgetCreatesColimits [PreservesColimitsOfSize.{v, u} (T
 /-- For `D : J ⥤ algebra T`, `D ⋙ forget T` has a colimit, then `D` has a colimit provided colimits
 of shape `J` are preserved by `T`.
 -/
-theorem forgetCreatesColimitsOfMonadPreserves [PreservesColimitsOfShape J (T : C ⥤ C)]
+theorem forget_creates_colimits_of_monad_preserves [PreservesColimitsOfShape J (T : C ⥤ C)]
     (D : J ⥤ Algebra T) [HasColimit (D ⋙ forget T)] : HasColimit D :=
-  hasColimitOfCreated D (forget T)
-#align category_theory.monad.forget_creates_colimits_of_monad_preserves CategoryTheory.Monad.forgetCreatesColimitsOfMonadPreserves
+  hasColimit_of_created D (forget T)
+#align category_theory.monad.forget_creates_colimits_of_monad_preserves CategoryTheory.Monad.forget_creates_colimits_of_monad_preserves
 
 end Monad
 
@@ -292,17 +293,17 @@ variable {C : Type u₁} [Category.{v₁} C] {D : Type u₂} [Category.{v₂} D]
 
 variable {J : Type u} [Category.{v} J]
 
-instance compComparisonForgetHasLimit (F : J ⥤ D) (R : D ⥤ C) [MonadicRightAdjoint R]
+instance comp_comparison_forget_hasLimit (F : J ⥤ D) (R : D ⥤ C) [MonadicRightAdjoint R]
     [HasLimit (F ⋙ R)] :
     HasLimit ((F ⋙ Monad.comparison (Adjunction.ofRightAdjoint R)) ⋙ Monad.forget _) :=
-  @hasLimitOfIso _ _ _ _ (F ⋙ R) _ _
+  @hasLimit_of_iso _ _ _ _ (F ⋙ R) _ _
     (isoWhiskerLeft F (Monad.comparisonForget (Adjunction.ofRightAdjoint R)).symm)
-#align category_theory.comp_comparison_forget_has_limit CategoryTheory.compComparisonForgetHasLimit
+#align category_theory.comp_comparison_forget_has_limit CategoryTheory.comp_comparison_forget_hasLimit
 
-instance compComparisonHasLimit (F : J ⥤ D) (R : D ⥤ C) [MonadicRightAdjoint R] [HasLimit (F ⋙ R)] :
-    HasLimit (F ⋙ Monad.comparison (Adjunction.ofRightAdjoint R)) :=
-  Monad.hasLimitOfCompForgetHasLimit (F ⋙ Monad.comparison (Adjunction.ofRightAdjoint R))
-#align category_theory.comp_comparison_has_limit CategoryTheory.compComparisonHasLimit
+instance comp_comparison_hasLimit (F : J ⥤ D) (R : D ⥤ C) [MonadicRightAdjoint R]
+    [HasLimit (F ⋙ R)] : HasLimit (F ⋙ Monad.comparison (Adjunction.ofRightAdjoint R)) :=
+  Monad.hasLimit_of_comp_forget_hasLimit (F ⋙ Monad.comparison (Adjunction.ofRightAdjoint R))
+#align category_theory.comp_comparison_has_limit CategoryTheory.comp_comparison_hasLimit
 
 /-- Any monadic functor creates limits. -/
 noncomputable def monadicCreatesLimits (R : D ⥤ C) [MonadicRightAdjoint R] :
@@ -350,26 +351,26 @@ noncomputable def monadicCreatesColimitsOfPreservesColimits (R : D ⥤ C) [Monad
 
 section
 
-theorem hasLimitOfReflective (F : J ⥤ D) (R : D ⥤ C) [HasLimit (F ⋙ R)] [Reflective R] :
+theorem hasLimit_of_reflective (F : J ⥤ D) (R : D ⥤ C) [HasLimit (F ⋙ R)] [Reflective R] :
     HasLimit F :=
   haveI := monadicCreatesLimits.{v, u} R
   has_limit_of_created F R
-#align category_theory.has_limit_of_reflective CategoryTheory.hasLimitOfReflective
+#align category_theory.has_limit_of_reflective CategoryTheory.hasLimit_of_reflective
 
 /-- If `C` has limits of shape `J` then any reflective subcategory has limits of shape `J`. -/
-theorem hasLimitsOfShapeOfReflective [HasLimitsOfShape J C] (R : D ⥤ C) [Reflective R] :
+theorem hasLimitsOfShape_of_reflective [HasLimitsOfShape J C] (R : D ⥤ C) [Reflective R] :
     HasLimitsOfShape J D :=
-  { HasLimit := fun F => hasLimitOfReflective F R }
-#align category_theory.has_limits_of_shape_of_reflective CategoryTheory.hasLimitsOfShapeOfReflective
+  { HasLimit := fun F => hasLimit_of_reflective F R }
+#align category_theory.has_limits_of_shape_of_reflective CategoryTheory.hasLimitsOfShape_of_reflective
 
 /-- If `C` has limits then any reflective subcategory has limits. -/
-theorem hasLimitsOfReflective (R : D ⥤ C) [HasLimitsOfSize.{v, u} C] [Reflective R] :
+theorem has_limits_of_reflective (R : D ⥤ C) [HasLimitsOfSize.{v, u} C] [Reflective R] :
     HasLimitsOfSize.{v, u} D :=
   { HasLimitsOfShape := fun J 𝒥₁ => has_limits_of_shape_of_reflective R }
-#align category_theory.has_limits_of_reflective CategoryTheory.hasLimitsOfReflective
+#align category_theory.has_limits_of_reflective CategoryTheory.has_limits_of_reflective
 
 /-- If `C` has colimits of shape `J` then any reflective subcategory has colimits of shape `J`. -/
-theorem hasColimitsOfShapeOfReflective (R : D ⥤ C) [Reflective R] [HasColimitsOfShape J C] :
+theorem hasColimitsOfShape_of_reflective (R : D ⥤ C) [Reflective R] [HasColimitsOfShape J C] :
     HasColimitsOfShape J D :=
   {
     HasColimit := fun F =>
@@ -381,13 +382,13 @@ theorem hasColimitsOfShapeOfReflective (R : D ⥤ C) [Reflective R] [HasColimits
       apply has_colimit.mk ⟨_, (is_colimit.precompose_inv_equiv _ _).symm t⟩
       apply
         (iso_whisker_left F (as_iso (adjunction.of_right_adjoint R).counit) : _) ≪≫ F.right_unitor }
-#align category_theory.has_colimits_of_shape_of_reflective CategoryTheory.hasColimitsOfShapeOfReflective
+#align category_theory.has_colimits_of_shape_of_reflective CategoryTheory.hasColimitsOfShape_of_reflective
 
 /-- If `C` has colimits then any reflective subcategory has colimits. -/
-theorem hasColimitsOfReflective (R : D ⥤ C) [Reflective R] [HasColimitsOfSize.{v, u} C] :
+theorem has_colimits_of_reflective (R : D ⥤ C) [Reflective R] [HasColimitsOfSize.{v, u} C] :
     HasColimitsOfSize.{v, u} D :=
   { HasColimitsOfShape := fun J 𝒥 => has_colimits_of_shape_of_reflective R }
-#align category_theory.has_colimits_of_reflective CategoryTheory.hasColimitsOfReflective
+#align category_theory.has_colimits_of_reflective CategoryTheory.has_colimits_of_reflective
 
 /-- The reflector always preserves terminal objects. Note this in general doesn't apply to any other
 limit.

Changes in mathlib4

mathlib3
mathlib4
chore: superfluous parentheses part 2 (#12131)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -324,7 +324,7 @@ noncomputable def monadicCreatesColimitOfPreservesColimit (R : D ⥤ C) (K : J 
     exact preservesColimitOfIsoDiagram _ (isoWhiskerRight i (leftAdjoint R ⋙ R)).symm
   letI : CreatesColimit (K ⋙ A) B := CategoryTheory.Monad.forgetCreatesColimit _
   letI : CreatesColimit K (A ⋙ B) := CategoryTheory.compCreatesColimit _ _
-  let e := (Monad.comparisonForget (Adjunction.ofRightAdjoint R))
+  let e := Monad.comparisonForget (Adjunction.ofRightAdjoint R)
   apply createsColimitOfNatIso e
 #align category_theory.monadic_creates_colimit_of_preserves_colimit CategoryTheory.monadicCreatesColimitOfPreservesColimit
 
@@ -400,7 +400,7 @@ noncomputable def leftAdjointPreservesTerminalOfReflective (R : D ⥤ C) [Reflec
       apply (asIso ((Adjunction.ofRightAdjoint R).counit.app _)).symm.trans
       apply (leftAdjoint R).mapIso
       letI := monadicCreatesLimits.{v, v} R
-      let A := (CategoryTheory.preservesLimitOfCreatesLimitAndHasLimit F R)
+      let A := CategoryTheory.preservesLimitOfCreatesLimitAndHasLimit F R
       apply (A.preserves (limit.isLimit F)).conePointUniqueUpToIso h
     apply preservesLimitOfIsoDiagram _ (Functor.emptyExt (F ⋙ R) _)
 #align category_theory.left_adjoint_preserves_terminal_of_reflective CategoryTheory.leftAdjointPreservesTerminalOfReflective
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
  for filename in files:
    if filename.endswith('.lean'):
      file_path = os.path.join(dir_path, filename)

      # Open the file and read its contents
      with open(file_path, 'r') as file:
        content = file.read()

      # Use a regular expression to replace sequences of "variable" lines separated by empty lines
      # with sequences without empty lines
      modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -36,9 +36,7 @@ universe v u v₁ v₂ u₁ u₂
 namespace Monad
 
 variable {C : Type u₁} [Category.{v₁} C]
-
 variable {T : Monad C}
-
 variable {J : Type u} [Category.{v} J]
 
 namespace ForgetCreatesLimits
@@ -279,7 +277,6 @@ theorem forget_creates_colimits_of_monad_preserves [PreservesColimitsOfShape J (
 end Monad
 
 variable {C : Type u₁} [Category.{v₁} C] {D : Type u₂} [Category.{v₂} D]
-
 variable {J : Type u} [Category.{v} J]
 
 instance comp_comparison_forget_hasLimit (F : J ⥤ D) (R : D ⥤ C) [MonadicRightAdjoint R]
chore: remove terminal, terminal refines (#10762)

I replaced a few "terminal" refine/refine's with exact.

The strategy was very simple-minded: essentially any refine whose following line had smaller indentation got replaced by exact and then I cleaned up the mess.

This PR certainly leaves some further terminal refines, but maybe the current change is beneficial.

Diff
@@ -318,13 +318,13 @@ noncomputable def monadicCreatesColimitOfPreservesColimit (R : D ⥤ C) (K : J 
     (Adjunction.toMonad (Adjunction.ofRightAdjoint R)))
       (Adjunction.toMonad (Adjunction.ofRightAdjoint R)).toFunctor := by
     dsimp
-    refine' preservesColimitOfIsoDiagram _ i.symm
+    exact preservesColimitOfIsoDiagram _ i.symm
   letI : PreservesColimit
     (((K ⋙ A) ⋙ Monad.forget (Adjunction.toMonad (Adjunction.ofRightAdjoint R))) ⋙
       (Adjunction.toMonad (Adjunction.ofRightAdjoint R)).toFunctor)
       (Adjunction.toMonad (Adjunction.ofRightAdjoint R)).toFunctor := by
     dsimp
-    refine' preservesColimitOfIsoDiagram _ (isoWhiskerRight i (leftAdjoint R ⋙ R)).symm
+    exact preservesColimitOfIsoDiagram _ (isoWhiskerRight i (leftAdjoint R ⋙ R)).symm
   letI : CreatesColimit (K ⋙ A) B := CategoryTheory.Monad.forgetCreatesColimit _
   letI : CreatesColimit K (A ⋙ B) := CategoryTheory.compCreatesColimit _ _
   let e := (Monad.comparisonForget (Adjunction.ofRightAdjoint R))
style: fix wrapping of where (#7149)
Diff
@@ -343,8 +343,8 @@ noncomputable def monadicCreatesColimitsOfShapeOfPreservesColimitsOfShape (R : D
 
 /-- A monadic functor creates colimits if it preserves colimits. -/
 noncomputable def monadicCreatesColimitsOfPreservesColimits (R : D ⥤ C) [MonadicRightAdjoint R]
-    [PreservesColimitsOfSize.{v, u} R] : CreatesColimitsOfSize.{v, u} R
-    where CreatesColimitsOfShape :=
+    [PreservesColimitsOfSize.{v, u} R] : CreatesColimitsOfSize.{v, u} R where
+  CreatesColimitsOfShape :=
     monadicCreatesColimitsOfShapeOfPreservesColimitsOfShape _
 #align category_theory.monadic_creates_colimits_of_preserves_colimits CategoryTheory.monadicCreatesColimitsOfPreservesColimits
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2019 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison, Bhavik Mehta
-
-! This file was ported from Lean 3 source module category_theory.monad.limits
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Monad.Adjunction
 import Mathlib.CategoryTheory.Adjunction.Limits
 import Mathlib.CategoryTheory.Limits.Shapes.Terminal
 
+#align_import category_theory.monad.limits from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
+
 /-!
 # Limits and colimits in the category of algebras
 
chore: review of automation in category theory (#4793)

Clean up of automation in the category theory library. Leaving out unnecessary proof steps, or fields done by aesop_cat, and making more use of available autoparameters.

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au>

Diff
@@ -259,7 +259,7 @@ noncomputable instance forgetCreatesColimit (D : J ⥤ Algebra T)
                 ext1
                 dsimp
                 erw [comp_id, c.w] } }
-      validLift := Cocones.ext (Iso.refl _) (by aesop_cat)
+      validLift := Cocones.ext (Iso.refl _)
       makesColimit := liftedCoconeIsColimit _ _ }
 #align category_theory.monad.forget_creates_colimit CategoryTheory.Monad.forgetCreatesColimit
 
refactor: fixes to material on sheaves and stalks (#4571)

Mostly this is installing the Opposite.rec' induction principle as the default @[eliminator], but also many other fixes and removing unnecessary steps from proofs.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -366,10 +366,10 @@ theorem hasLimitsOfShape_of_reflective [HasLimitsOfShape J C] (R : D ⥤ C) [Ref
 #align category_theory.has_limits_of_shape_of_reflective CategoryTheory.hasLimitsOfShape_of_reflective
 
 /-- If `C` has limits then any reflective subcategory has limits. -/
-theorem has_limits_of_reflective (R : D ⥤ C) [HasLimitsOfSize.{v, u} C] [Reflective R] :
+theorem hasLimits_of_reflective (R : D ⥤ C) [HasLimitsOfSize.{v, u} C] [Reflective R] :
     HasLimitsOfSize.{v, u} D :=
   ⟨fun _ => hasLimitsOfShape_of_reflective R⟩
-#align category_theory.has_limits_of_reflective CategoryTheory.has_limits_of_reflective
+#align category_theory.has_limits_of_reflective CategoryTheory.hasLimits_of_reflective
 
 /-- If `C` has colimits of shape `J` then any reflective subcategory has colimits of shape `J`. -/
 theorem hasColimitsOfShape_of_reflective (R : D ⥤ C) [Reflective R] [HasColimitsOfShape J C] :
@@ -385,10 +385,10 @@ theorem hasColimitsOfShape_of_reflective (R : D ⥤ C) [Reflective R] [HasColimi
 #align category_theory.has_colimits_of_shape_of_reflective CategoryTheory.hasColimitsOfShape_of_reflective
 
 /-- If `C` has colimits then any reflective subcategory has colimits. -/
-theorem has_colimits_of_reflective (R : D ⥤ C) [Reflective R] [HasColimitsOfSize.{v, u} C] :
+theorem hasColimits_of_reflective (R : D ⥤ C) [Reflective R] [HasColimitsOfSize.{v, u} C] :
     HasColimitsOfSize.{v, u} D :=
   ⟨fun _ => hasColimitsOfShape_of_reflective R⟩
-#align category_theory.has_colimits_of_reflective CategoryTheory.has_colimits_of_reflective
+#align category_theory.has_colimits_of_reflective CategoryTheory.hasColimits_of_reflective
 
 /-- The reflector always preserves terminal objects. Note this in general doesn't apply to any other
 limit.
chore: fix upper/lowercase in comments (#4360)
  • Run a non-interactive version of fix-comments.py on all files.
  • Go through the diff and manually add/discard/edit chunks.
Diff
@@ -271,7 +271,7 @@ noncomputable instance forgetCreatesColimits [PreservesColimitsOfSize.{v, u} (T
     CreatesColimitsOfSize.{v, u} (forget T) where CreatesColimitsOfShape := by infer_instance
 #align category_theory.monad.forget_creates_colimits CategoryTheory.Monad.forgetCreatesColimits
 
-/-- For `D : J ⥤ algebra T`, `D ⋙ forget T` has a colimit, then `D` has a colimit provided colimits
+/-- For `D : J ⥤ Algebra T`, `D ⋙ forget T` has a colimit, then `D` has a colimit provided colimits
 of shape `J` are preserved by `T`.
 -/
 theorem forget_creates_colimits_of_monad_preserves [PreservesColimitsOfShape J (T : C ⥤ C)]
feat: Port CategoryTheory.Monad.Limits (#3533)

Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com>

Dependencies 109

110 files ported (100.0%)
39754 lines ported (100.0%)

All dependencies are ported!