Theorem. If then preserves limits: for any diagram whose limit exists ( is continuous). Dually preserves colimits: ( is cocontinuous).
Sources: DaoFP §10.7 (“Properties of Adjunctions”); 7 Sketches Proposition 1.111 (Right Adjoints Preserve Meets), §7.2.1 (in a topos, preserves colimits); Kittenlab Lecture 9 (representables and colimits).
Proof (Yoneda argument, DaoFP). First, the Hom Functor preserves limits: a cone over in with apex is a family of arrows commuting with the diagram — a cone over with apex — so ; dually . Then, for every ,
naturally in , so by the Yoneda Lemma . The colimit statement is dual.
Applications. Distributivity in a Cartesian Closed Category: is a left adjoint, coproducts are colimits, so (DaoFP; the earlier long proof used the currying and sum adjunctions plus Yoneda four times). preserves both limits and colimits (it has both adjoints). Forgetful functors preserve limits (underlying set of a product of groups is the product of sets) but typically not colimits. Left adjoints have no generative effects. The converse direction — limit preservation implying adjointness — needs the Adjoint Functor Theorem.
#check CategoryTheory.Adjunction.rightAdjointPreservesLimits -- PreservesLimitsOfSize G
#check CategoryTheory.Adjunction.leftAdjointPreservesColimits
#check CategoryTheory.Limits.preservesLimitsOfNatIso-- (- , a) is a left adjoint, so it preserves sums: distributivity
distr :: (Either b c, a) -> Either (b, a) (c, a)
distr (Left b, a) = Left (b, a)
distr (Right c, a) = Right (c, a)
undistr :: Either (b, a) (c, a) -> (Either b c, a)
undistr (Left (b, a)) = (Left b, a)
undistr (Right (c, a)) = (Right c, a)