\documentclass[12pt,titlepage]{article} \usepackage{amsmath} \usepackage{mathrsfs} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsthm} \usepackage{mathtools} \usepackage{graphicx} \usepackage{color} \usepackage{ucs} \usepackage[utf8x]{inputenc} \usepackage{xparse} \usepackage{hyperref} %----Macros---------- % % Unresolved issues: % % \righttoleftarrow % \lefttorightarrow % % \color{} with HTML colorspec % \bgcolor % \array with options (without options, it's equivalent to the matrix environment) % Of the standard HTML named colors, white, black, red, green, blue and yellow % are predefined in the color package. Here are the rest. \definecolor{aqua}{rgb}{0, 1.0, 1.0} \definecolor{fuschia}{rgb}{1.0, 0, 1.0} \definecolor{gray}{rgb}{0.502, 0.502, 0.502} \definecolor{lime}{rgb}{0, 1.0, 0} \definecolor{maroon}{rgb}{0.502, 0, 0} \definecolor{navy}{rgb}{0, 0, 0.502} \definecolor{olive}{rgb}{0.502, 0.502, 0} \definecolor{purple}{rgb}{0.502, 0, 0.502} \definecolor{silver}{rgb}{0.753, 0.753, 0.753} \definecolor{teal}{rgb}{0, 0.502, 0.502} % Because of conflicts, \space and \mathop are converted to % \itexspace and \operatorname during preprocessing. % itex: \space{ht}{dp}{wd} % % Height and baseline depth measurements are in units of tenths of an ex while % the width is measured in tenths of an em. \makeatletter \newdimen\itex@wd% \newdimen\itex@dp% \newdimen\itex@thd% \def\itexspace#1#2#3{\itex@wd=#3em% \itex@wd=0.1\itex@wd% \itex@dp=#2ex% \itex@dp=0.1\itex@dp% \itex@thd=#1ex% \itex@thd=0.1\itex@thd% \advance\itex@thd\the\itex@dp% \makebox[\the\itex@wd]{\rule[-\the\itex@dp]{0cm}{\the\itex@thd}}} \makeatother % \tensor and \multiscript \makeatletter \newif\if@sup \newtoks\@sups \def\append@sup#1{\edef\act{\noexpand\@sups={\the\@sups #1}}\act}% \def\reset@sup{\@supfalse\@sups={}}% \def\mk@scripts#1#2{\if #2/ \if@sup ^{\the\@sups}\fi \else% \ifx #1_ \if@sup ^{\the\@sups}\reset@sup \fi {}_{#2}% \else \append@sup#2 \@suptrue \fi% \expandafter\mk@scripts\fi} \def\tensor#1#2{\reset@sup#1\mk@scripts#2_/} \def\multiscripts#1#2#3{\reset@sup{}\mk@scripts#1_/#2% \reset@sup\mk@scripts#3_/} \makeatother % \slash \makeatletter \newbox\slashbox \setbox\slashbox=\hbox{$/$} \def\itex@pslash#1{\setbox\@tempboxa=\hbox{$#1$} \@tempdima=0.5\wd\slashbox \advance\@tempdima 0.5\wd\@tempboxa \copy\slashbox \kern-\@tempdima \box\@tempboxa} \def\slash{\protect\itex@pslash} \makeatother % math-mode versions of \rlap, etc % from Alexander Perlis, "A complement to \smash, \llap, and lap" % http://math.arizona.edu/~aprl/publications/mathclap/ \def\clap#1{\hbox to 0pt{\hss#1\hss}} \def\mathllap{\mathpalette\mathllapinternal} \def\mathrlap{\mathpalette\mathrlapinternal} \def\mathclap{\mathpalette\mathclapinternal} \def\mathllapinternal#1#2{\llap{$\mathsurround=0pt#1{#2}$}} \def\mathrlapinternal#1#2{\rlap{$\mathsurround=0pt#1{#2}$}} \def\mathclapinternal#1#2{\clap{$\mathsurround=0pt#1{#2}$}} % Renames \sqrt as \oldsqrt and redefine root to result in \sqrt[#1]{#2} \let\oldroot\root \def\root#1#2{\oldroot #1 \of{#2}} \renewcommand{\sqrt}[2][]{\oldroot #1 \of{#2}} % Manually declare the txfonts symbolsC font \DeclareSymbolFont{symbolsC}{U}{txsyc}{m}{n} \SetSymbolFont{symbolsC}{bold}{U}{txsyc}{bx}{n} \DeclareFontSubstitution{U}{txsyc}{m}{n} % Manually declare the stmaryrd font \DeclareSymbolFont{stmry}{U}{stmry}{m}{n} \SetSymbolFont{stmry}{bold}{U}{stmry}{b}{n} % Manually declare the MnSymbolE font \DeclareFontFamily{OMX}{MnSymbolE}{} \DeclareSymbolFont{mnomx}{OMX}{MnSymbolE}{m}{n} \SetSymbolFont{mnomx}{bold}{OMX}{MnSymbolE}{b}{n} \DeclareFontShape{OMX}{MnSymbolE}{m}{n}{ <-6> MnSymbolE5 <6-7> MnSymbolE6 <7-8> MnSymbolE7 <8-9> MnSymbolE8 <9-10> MnSymbolE9 <10-12> MnSymbolE10 <12-> MnSymbolE12}{} % Declare specific arrows from txfonts without loading the full package \makeatletter \def\re@DeclareMathSymbol#1#2#3#4{% \let#1=\undefined \DeclareMathSymbol{#1}{#2}{#3}{#4}} \re@DeclareMathSymbol{\neArrow}{\mathrel}{symbolsC}{116} \re@DeclareMathSymbol{\neArr}{\mathrel}{symbolsC}{116} \re@DeclareMathSymbol{\seArrow}{\mathrel}{symbolsC}{117} \re@DeclareMathSymbol{\seArr}{\mathrel}{symbolsC}{117} \re@DeclareMathSymbol{\nwArrow}{\mathrel}{symbolsC}{118} \re@DeclareMathSymbol{\nwArr}{\mathrel}{symbolsC}{118} \re@DeclareMathSymbol{\swArrow}{\mathrel}{symbolsC}{119} \re@DeclareMathSymbol{\swArr}{\mathrel}{symbolsC}{119} \re@DeclareMathSymbol{\nequiv}{\mathrel}{symbolsC}{46} \re@DeclareMathSymbol{\Perp}{\mathrel}{symbolsC}{121} \re@DeclareMathSymbol{\Vbar}{\mathrel}{symbolsC}{121} \re@DeclareMathSymbol{\sslash}{\mathrel}{stmry}{12} \re@DeclareMathSymbol{\bigsqcap}{\mathop}{stmry}{"64} \re@DeclareMathSymbol{\biginterleave}{\mathop}{stmry}{"6} \re@DeclareMathSymbol{\invamp}{\mathrel}{symbolsC}{77} \re@DeclareMathSymbol{\parr}{\mathrel}{symbolsC}{77} \makeatother % \llangle, \rrangle, \lmoustache and \rmoustache from MnSymbolE \makeatletter \def\Decl@Mn@Delim#1#2#3#4{% \if\relax\noexpand#1% \let#1\undefined \fi \DeclareMathDelimiter{#1}{#2}{#3}{#4}{#3}{#4}} \def\Decl@Mn@Open#1#2#3{\Decl@Mn@Delim{#1}{\mathopen}{#2}{#3}} \def\Decl@Mn@Close#1#2#3{\Decl@Mn@Delim{#1}{\mathclose}{#2}{#3}} \Decl@Mn@Open{\llangle}{mnomx}{'164} \Decl@Mn@Close{\rrangle}{mnomx}{'171} \Decl@Mn@Open{\lmoustache}{mnomx}{'245} \Decl@Mn@Close{\rmoustache}{mnomx}{'244} \makeatother % Widecheck \makeatletter \DeclareRobustCommand\widecheck[1]{{\mathpalette\@widecheck{#1}}} \def\@widecheck#1#2{% \setbox\z@\hbox{\m@th$#1#2$}% \setbox\tw@\hbox{\m@th$#1% \widehat{% \vrule\@width\z@\@height\ht\z@ \vrule\@height\z@\@width\wd\z@}$}% \dp\tw@-\ht\z@ \@tempdima\ht\z@ \advance\@tempdima2\ht\tw@ \divide\@tempdima\thr@@ \setbox\tw@\hbox{% \raise\@tempdima\hbox{\scalebox{1}[-1]{\lower\@tempdima\box \tw@}}}% {\ooalign{\box\tw@ \cr \box\z@}}} \makeatother % \mathraisebox{voffset}[height][depth]{something} \makeatletter \NewDocumentCommand\mathraisebox{moom}{% \IfNoValueTF{#2}{\def\@temp##1##2{\raisebox{#1}{$\m@th##1##2$}}}{% \IfNoValueTF{#3}{\def\@temp##1##2{\raisebox{#1}[#2]{$\m@th##1##2$}}% }{\def\@temp##1##2{\raisebox{#1}[#2][#3]{$\m@th##1##2$}}}}% \mathpalette\@temp{#4}} \makeatletter % udots (taken from yhmath) \makeatletter \def\udots{\mathinner{\mkern2mu\raise\p@\hbox{.} \mkern2mu\raise4\p@\hbox{.}\mkern1mu \raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern1mu}} \makeatother %% Fix array \newcommand{\itexarray}[1]{\begin{matrix}#1\end{matrix}} %% \itexnum is a noop \newcommand{\itexnum}[1]{#1} %% Renaming existing commands \newcommand{\underoverset}[3]{\underset{#1}{\overset{#2}{#3}}} \newcommand{\widevec}{\overrightarrow} \newcommand{\darr}{\downarrow} \newcommand{\nearr}{\nearrow} \newcommand{\nwarr}{\nwarrow} \newcommand{\searr}{\searrow} \newcommand{\swarr}{\swarrow} \newcommand{\curvearrowbotright}{\curvearrowright} \newcommand{\uparr}{\uparrow} \newcommand{\downuparrow}{\updownarrow} \newcommand{\duparr}{\updownarrow} \newcommand{\updarr}{\updownarrow} \newcommand{\gt}{>} \newcommand{\lt}{<} \newcommand{\map}{\mapsto} \newcommand{\embedsin}{\hookrightarrow} \newcommand{\Alpha}{A} \newcommand{\Beta}{B} \newcommand{\Zeta}{Z} \newcommand{\Eta}{H} \newcommand{\Iota}{I} \newcommand{\Kappa}{K} \newcommand{\Mu}{M} \newcommand{\Nu}{N} \newcommand{\Rho}{P} \newcommand{\Tau}{T} \newcommand{\Upsi}{\Upsilon} \newcommand{\omicron}{o} \newcommand{\lang}{\langle} \newcommand{\rang}{\rangle} \newcommand{\Union}{\bigcup} \newcommand{\Intersection}{\bigcap} \newcommand{\Oplus}{\bigoplus} \newcommand{\Otimes}{\bigotimes} \newcommand{\Wedge}{\bigwedge} \newcommand{\Vee}{\bigvee} \newcommand{\coproduct}{\coprod} \newcommand{\product}{\prod} \newcommand{\closure}{\overline} \newcommand{\integral}{\int} \newcommand{\doubleintegral}{\iint} \newcommand{\tripleintegral}{\iiint} \newcommand{\quadrupleintegral}{\iiiint} \newcommand{\conint}{\oint} \newcommand{\contourintegral}{\oint} \newcommand{\infinity}{\infty} \newcommand{\bottom}{\bot} \newcommand{\minusb}{\boxminus} \newcommand{\plusb}{\boxplus} \newcommand{\timesb}{\boxtimes} \newcommand{\intersection}{\cap} \newcommand{\union}{\cup} \newcommand{\Del}{\nabla} \newcommand{\odash}{\circleddash} \newcommand{\negspace}{\!} \newcommand{\widebar}{\overline} \newcommand{\textsize}{\normalsize} \renewcommand{\scriptsize}{\scriptstyle} \newcommand{\scriptscriptsize}{\scriptscriptstyle} \newcommand{\mathfr}{\mathfrak} \newcommand{\statusline}[2]{#2} \newcommand{\tooltip}[2]{#2} \newcommand{\toggle}[2]{#2} % Theorem Environments \theoremstyle{plain} \newtheorem{theorem}{Theorem} \newtheorem{lemma}{Lemma} \newtheorem{prop}{Proposition} \newtheorem{cor}{Corollary} \newtheorem*{utheorem}{Theorem} \newtheorem*{ulemma}{Lemma} \newtheorem*{uprop}{Proposition} \newtheorem*{ucor}{Corollary} \theoremstyle{definition} \newtheorem{defn}{Definition} \newtheorem{example}{Example} \newtheorem*{udefn}{Definition} \newtheorem*{uexample}{Example} \theoremstyle{remark} \newtheorem{remark}{Remark} \newtheorem{note}{Note} \newtheorem*{uremark}{Remark} \newtheorem*{unote}{Note} %------------------------------------------------------------------- \begin{document} %------------------------------------------------------------------- \section*{flat functor} \hypertarget{context}{}\subsubsection*{{Context}}\label{context} \hypertarget{category_theory}{}\paragraph*{{Category theory}}\label{category_theory} [[!include category theory - contents]] \hypertarget{contents}{}\section*{{Contents}}\label{contents} \noindent\hyperlink{idea}{Idea}\dotfill \pageref*{idea} \linebreak \noindent\hyperlink{definitions}{Definitions}\dotfill \pageref*{definitions} \linebreak \noindent\hyperlink{valued_functors}{$Set$-valued functors}\dotfill \pageref*{valued_functors} \linebreak \noindent\hyperlink{representable_flatness}{Representable flatness}\dotfill \pageref*{representable_flatness} \linebreak \noindent\hyperlink{ToposValuedFlatFunctors}{Topos-valued functors}\dotfill \pageref*{ToposValuedFlatFunctors} \linebreak \noindent\hyperlink{SiteValuedFunctors}{Site-valued functors}\dotfill \pageref*{SiteValuedFunctors} \linebreak \noindent\hyperlink{properties}{Properties}\dotfill \pageref*{properties} \linebreak \noindent\hyperlink{yoneda_extensions}{Yoneda extensions}\dotfill \pageref*{yoneda_extensions} \linebreak \noindent\hyperlink{CategoryOfFlatFunctors}{Category of flat functors}\dotfill \pageref*{CategoryOfFlatFunctors} \linebreak \noindent\hyperlink{DiaconescuTheorem}{Classifying toposes and Diaconescu's theorem}\dotfill \pageref*{DiaconescuTheorem} \linebreak \noindent\hyperlink{examples}{Examples}\dotfill \pageref*{examples} \linebreak \noindent\hyperlink{related_concepts}{Related concepts}\dotfill \pageref*{related_concepts} \linebreak \noindent\hyperlink{references}{References}\dotfill \pageref*{references} \linebreak \hypertarget{idea}{}\subsection*{{Idea}}\label{idea} If $C$ is a [[finitely complete category]] (a category with all finite limits), then it is interesting to consider a left [[exact functor]] on $C$ (a functor that preserves all [[finite limit]]s). Even if $C$ lacks some finite limits, then this concept still makes sense, but it may not be the correct one. Instead we use the stronger concept of a \emph{flat functor}, which may be thought of as a functor that preserves all finite limits ---even the ones that don't exist yet! \hypertarget{definitions}{}\subsection*{{Definitions}}\label{definitions} It turns out that the most appropriate generality in which to speak of a flat functor $C \to D$ is when $D$ is a [[site]]. We build up to this definition in stages through several more classical notions, remarking at each stage on some basic properties and equivalences. Proofs will be given in the following section. \hypertarget{valued_functors}{}\subsubsection*{{$Set$-valued functors}}\label{valued_functors} The most classical notion is the following. \begin{defn} \label{SetValuedFlat}\hypertarget{SetValuedFlat}{} A functor $C\to Set$ is \textbf{flat} if the opposite of its [[category of elements]], $el(C)^{op}$, is a [[filtered category]]. \end{defn} For disambiguation with the later notions, we may refer to such a functor as being \textbf{$Set$-valued flat}. \begin{remark} \label{}\hypertarget{}{} Spelled out explicitly, this means that $E : C \to Set$ is flat precisely if the following three conditions hold. \begin{enumerate}% \item (non-emptiness) There is at least one [[object]] $c \in C$ such that $E(c)$ is an [[inhabited set]]. \item (transitivity) For objects $c,d \in C$ and elements $y \in E(c)$, $z \in E(d)$, there exists an object $b \in C$, [[morphisms]] $\alpha : b \to c$, $\beta : b \to d$ and an element $w \in E(b)$ such that $E(\alpha) : w \mapsto y$ and $E(\beta) :w \mapsto z$. \item (freeness) For two parallel morphisms $\alpha, \beta : c \to d$ and $y \in E(c)$ such that $E(\alpha)(y) = E(\beta)(y)$, there exists a morphism $\gamma : b \to c$ and an element $z \in E(b)$ such that $\alpha \circ \gamma = \beta \circ \gamma$ and $E(\gamma) : z \mapsto y$. \end{enumerate} \end{remark} \begin{prop} \label{}\hypertarget{}{} When $C$ is [[small category|small]], a functor $F\colon C\to Set$ is $Set$-valued flat if and only if its [[Yoneda extension]] $[C^{op},Set] \to Set$ preserves finite limits. \end{prop} This partially explains the terminology ``flat'', since the Yoneda extension is a sort of [[tensor product of functors|tensoring with]] $F$, and a [[flat module]] is one such that tensoring with it preserves finite limits. \begin{cor} \label{}\hypertarget{}{} If $F\colon C\to Set$ is flat, then it preserves all finite limits that exist in $C$. Conversely, if $C$ has finite limits and $F$ preserves them, then it is flat. \end{cor} \hypertarget{representable_flatness}{}\subsubsection*{{Representable flatness}}\label{representable_flatness} \begin{defn} \label{RepresentablyFlat}\hypertarget{RepresentablyFlat}{} A functor $F\colon C \rightarrow E$ is \textbf{flat} if for each [[object]] $e \in E$, the [[opposite category|opposite]] [[comma category]] $(e / F)^{op}$ is a [[filtered category]]. \end{defn} Since $(e/F)$ is equivalent to the category of elements of the composite $C \xrightarrow{F} E \xrightarrow{E(e,-)} Set$, this is equivalent to saying that $E(e,F-)\colon C\to Set$ is Set-valued flat for every $e\in E$. Hence, this notion of flatness may be called \textbf{representably flat}. Spelled out explicitly as we did above for flat set-valued functors, this means that for every $e\in E$, we have: \begin{enumerate}% \item There is an object $c\in C$ and a morphism $e\to F(c)$. \item For any $c,d\in C$ and morphisms $y:e\to F(c)$ and $z:e\to F(d)$, there exists an object $b\in C$, morphisms $\alpha : b \to c$, $\beta : b \to d$ in $C$, and a morphism $w: e\to F(b)$ such that $F(\alpha)\circ w = y$ and $F(\beta)\circ w = z$. \item For two parallel morphisms $\alpha, \beta : c \to d$ in $C$, and a morphism $y : e \to F(c)$ such that $F(\alpha)\circ y = F(\beta)\circ y$, there exists a morphism $\gamma : b \to c$ in $C$ and a morphism $z : e \to F(b)$ such that $\alpha \circ \gamma = \beta \circ \gamma$ and $F(\gamma) \circ z = y$. \end{enumerate} Representably flat functors are sometimes referred to simply as ``[[exact functor|left exact functors]]''. On the $n$Lab we try to generally reserve the latter terminology for the case when $C$ has [[finite limits]]. \begin{prop} \label{}\hypertarget{}{} A functor $F \colon C \to E$ between small categories is representably flat if and only if the operation $Lan_F\colon [C^{op}, Set] \to [E^{op},Set]$ of [[left Kan extension]] preserves finite limits. \end{prop} A proof of this is given below as prop. \ref{FlatnessIfYonedaExtensionPreservesFiniteLimits}. \begin{cor} \label{}\hypertarget{}{} If $F\colon C\to E$ is representably flat, then it preserves all finite limits that exist in $C$. Conversely, if $C$ has finite limits and $F$ preserves them, then it is representably flat. \end{cor} \begin{cor} \label{}\hypertarget{}{} If $C$ has finite limits, then a functor $C\to Set$ is representably flat if and only if it is Set-valued flat, if and only if it preserves finite limits. \end{cor} However, if $C$ lacks finite limits, then representable flatness of $C\to Set$ can be stronger than Set-valued flatness. \hypertarget{ToposValuedFlatFunctors}{}\subsubsection*{{Topos-valued functors}}\label{ToposValuedFlatFunctors} \begin{defn} \label{InternallyFlat}\hypertarget{InternallyFlat}{} Let $E$ be a [[cocomplete category|cocomplete]] [[topos]] (for instance a [[Grothendieck topos]]). A functor $F\colon C\to E$ is \textbf{flat} if the statement ``$F$ is $Set$-valued flat, def. \ref{SetValuedFlat}.'' is true in the [[internal logic]] of $E$. Explicitly, this means that for any finite diagram $D\colon I\to C$, the family of factorizations through $\lim (F\circ D)$ of the $F$-images of all [[cones]] over $D$ in $C$ is [[epimorphism|epimorphic]] in $E$. \end{defn} For disambiguation, this notion of flatness may be called \textbf{internally flat} since it refers to the internal logic of $E$. Internally flat functors have multiple other names: \begin{itemize}% \item In \hyperlink{Johnstone}{Johnstone, C2.3.7 and B3.2.3} they are called ``torsors''. \item In \hyperlink{MLM}{Mac Lane-Moerdijk, VII.8} they are called ``filtering functors''. \item In \hyperlink{Moerdijk}{Moerdijk, II.2} they are called ``principal functors''. \end{itemize} \begin{remark} \label{}\hypertarget{}{} Since the internal logic of $Set$ is just ordinary logic, a functor $C\to Set$ is internally flat just when it is $Set$-valued flat, def. \ref{SetValuedFlat}. \end{remark} More generally: \begin{example} \label{}\hypertarget{}{} If $E$ has [[point of a topos|enough points]], then $F$ is internally flat precisely if for all [[stalks]] $x^* : E \to Set$ the composite $x^* \circ F$ is $Set$-valued flat. \end{example} \begin{proof} In a topos $E$ with enough points, a morphism $f : X \to Y$ is an [[epimorphism]] precisely if $x^* f$ is an epimorphism in $Set$. By definition, the [[stalks]] $x^* : E \to Set$ commute with [[finite limits]]. \end{proof} \begin{prop} \label{}\hypertarget{}{} When $C$ is [[small category|small]], a functor $F\colon C\to E$ is internally flat if and only if its [[Yoneda extension]] $[C^{op},Set] \to E$ preserves finite limits. \end{prop} \begin{cor} \label{}\hypertarget{}{} If $F\colon C\to E$ is internally flat, then it preserves all finite limits that exist in $C$. Conversely, if $C$ has finite limits and $F$ preserves them, then it is internally flat. \end{cor} \hypertarget{SiteValuedFunctors}{}\subsubsection*{{Site-valued functors}}\label{SiteValuedFunctors} Finally, we can give the most general definition, due to \hyperlink{Karazeris}{Karazeris} \begin{defn} \label{CoveringFlat}\hypertarget{CoveringFlat}{} Let $E$ be any [[site]]. A functor $F\colon C\to E$ is \textbf{flat} if for any finite diagram $D\colon I\to C$ and any [[cone]] $T$ over $F\circ D$ in $E$ with vertex $u$, the [[sieve]] \begin{displaymath} \{ h\colon v\to u | T h \;\text{ factors through the }\; F\text{-image of some cone over }\; D \} \end{displaymath} is a covering sieve of $u$ in $E$. \end{defn} For disambiguation, we may refer to this notion as being \textbf{covering-flat}. This subsumes the other three definitions as follows: \begin{itemize}% \item If $E=Set$ with its [[canonical topology]], then covering-flatness reduces to Set-valued flatness, def. \ref{SetValuedFlat}. \item More generally, if $E$ is a cocomplete [[topos]] with its [[canonical topology]], then covering-flatness reduces to internal flatness, def. \ref{InternallyFlat}. \item On the other hand, if $E$ has a [[trivial topology]], then covering-flatness reduces to representable flatness, def. \ref{RepresentablyFlat}. \end{itemize} \begin{prop} \label{}\hypertarget{}{} If $C$ is a small category and $E$ is a [[small-generated site]], then a functor $F \colon C \to E$ is covering-flat if and only if its extension $[C^{op}, Set] \to Sh(E)$ preserves finite limits. \end{prop} \begin{cor} \label{}\hypertarget{}{} If $F\colon C\to E$ is covering-flat, where $E$ has finite limits and all covering families in $E$ are [[extremal epimorphism|extremal-epic]], then $F$ preserves all finite limits that exist in $C$. Conversely, if $C$ has finite limits and $F$ preserves them, then it is covering-flat. \end{cor} \hypertarget{properties}{}\subsection*{{Properties}}\label{properties} \hypertarget{yoneda_extensions}{}\subsubsection*{{Yoneda extensions}}\label{yoneda_extensions} We now prove the asserted propositions about the equivalence of flatness with finite-limit-preserving extensions to presheaf categories. \begin{prop} \label{}\hypertarget{}{} When $C$ is [[small category|small]], a functor $F\colon C\to Set$ is Set-valued flat if and only if its [[Yoneda extension]] $[C^{op},Set] \to Set$ preserves finite limits. \end{prop} \begin{proof} This is prop. 6.1.3 in (\hyperlink{Borceux}{Borceux}). \end{proof} \begin{prop} \label{FlatnessIfYonedaExtensionPreservesFiniteLimits}\hypertarget{FlatnessIfYonedaExtensionPreservesFiniteLimits}{} When $C$ and $E$ are [[small category|small]], a functor $F \colon C \to E$ is representably flat if and only if its [[Yoneda extension]] $Lan_F\colon [C^{op}, Set] \to [E^{op},Set]$ preserves finite limits. \end{prop} \begin{proof} Since [[presheaf topos]]es have all [[colimit]]s, $F_! = Lan_F$ is computed on any object $e \in E$ (as discussed at [[Kan extension]]) by the [[colimit]] \begin{displaymath} (F_! X(e) = \lim_{\to} \left( (e/F)^{op} \to C^{op} \stackrel{F}{\to} Set \right) \end{displaymath} where $(e/F)$ is the corresponding [[comma category]] and $(e/F)^{op} \to C^{op}$ is the canonical projection. Now, by definition $F$ being representably-flat means that $(e/F)^{op}$ is a [[filtered category]]. So this is a [[filtered colimit]]. By the discussion there, it is precisely the filtered colimits that commute with finite limits. \end{proof} \begin{prop} \label{}\hypertarget{}{} When $C$ is [[small category|small]] and $E$ is a cocomplete topos, a functor $F\colon C\to E$ is internally flat if and only if its [[Yoneda extension]] $[C^{op},Set] \to E$ preserves finite limits. \end{prop} \begin{proof} This is VII.9.1 in \hyperlink{MLM}{Mac Lane-Moerdijk}. \end{proof} If $C$ is a [[site]], $E$ is a sheaf topos, and $F\colon C\to E$ is internally flat, then the restriction of $[C^{op},Set] \to E$ to $Sh(C)$ still preserves finite limits, and it is cocontinuous just when $F$ preserves covering families. Since cocontinuous left-exact functors between sheaf toposes are precisely the [[inverse image]] parts of [[geometric morphisms]], we conclude that cover-preserving internally-flat functors out of a site $C$ characterise geometric morphisms into $Sh(C)$. In other words, $Sh(C)$ is the [[classifying topos]] for such functors. This can be very useful when a [[Grothendieck topos]] has a presentation by a particularly simple site. \hypertarget{CategoryOfFlatFunctors}{}\subsubsection*{{Category of flat functors}}\label{CategoryOfFlatFunctors} For $A$ a [[category]] the [[full subcategory]] \begin{displaymath} FlatFunc(A^{op}, Set) \subset Func(A^{op}, Set) \end{displaymath} of the [[category of presheaves]] on $A$ (which is the [[free cocompletion]] of $A$) on the flat functors is the free cocompletion under [[filtered colimits]]. When regarded in this way, flat functors are also known as [[ind-objects]]. \begin{prop} \label{}\hypertarget{}{} $FlatFunc(A^{op},Set)$ has [[finite limits]] precisely if for every finite [[diagram]] $D$ in $A$, the category of [[cones]] on $D$ is [[filtered category|filtered]]. \end{prop} This is due to (\hyperlink{KarazerisVelebil}{KarazerisVelebil}). \hypertarget{DiaconescuTheorem}{}\subsubsection*{{Classifying toposes and Diaconescu's theorem}}\label{DiaconescuTheorem} The following statement is known as \emph{[[Diaconescu's theorem]]}, see there for more details. It says that the internally flat functors, def. \ref{InternallyFlat} $F \colon C \to \mathcal{E}$ are precisely the [[inverse images]] of [[geometric morphisms]] from $E$ into the [[presheaf topos]] over $C$. \begin{theorem} \label{}\hypertarget{}{} \textbf{(Diaconescu's theorem)} There is an [[equivalence of categories]] \begin{displaymath} Topos(\mathcal{E}, PSh(C)) \simeq FlatFunc(C, \mathcal{E}) \end{displaymath} between the category of [[geometric morphisms]] $f : \mathcal{E} \to PSh(C)$ and the category of [[internally flat functors]] $C \to \mathcal{E}$. This equivalence takes $f$ to the composite \begin{displaymath} C \stackrel{j}{\to} PSh(C) \stackrel{f^*}{\to} \mathcal{E} \,, \end{displaymath} where $j$ is the [[Yoneda embedding]] and $f^*$ is the [[inverse image]] of $f$. \end{theorem} One says that $PSh(C)$ is the \emph{[[classifying topos]]} for internally flat functors out of $C$. \hypertarget{examples}{}\subsection*{{Examples}}\label{examples} \begin{itemize}% \item [[morphism of sites|Morphisms of sites]] are flat functors which additionally preserve covering families. \item [[tensor product of modules]] with a [[flat module]] \end{itemize} \hypertarget{related_concepts}{}\subsection*{{Related concepts}}\label{related_concepts} \begin{itemize}% \item [[exact (∞,1)-functor]] \item [[ind-object]] \end{itemize} \hypertarget{references}{}\subsection*{{References}}\label{references} \begin{itemize}% \item [[Francis Borceux]], \emph{Handbook of categorical algebra} , volume I, \emph{Basic category theory}. Representable flatness is discussed in chapter 6. \end{itemize} In \begin{itemize}% \item [[Peter Johnstone]], \emph{[[Sketches of an Elephant]]} . \end{itemize} internally flat functors (``torsors'') are discussed around B3.2, and representably flat functors around C2.3.7. In \begin{itemize}% \item [[Saunders Mac Lane]] and [[Ieke Moerdijk]], \emph{[[Sheaves in Geometry and Logic]]} . \end{itemize} $Set$-valued flat functors are discussed in VII.6, and internally flat functors in VII.8 (both called ``filtering functors''). In section 2 of \begin{itemize}% \item [[Ieke Moerdijk]], \emph{Classifying spaces and classifying topoi}, Lecture Notes in Mathematics \textbf{1616}, Springer 1995. vi+94 pp. ISBN: 3-540-60319-0 \end{itemize} internally flat functors with values in a topos with enough points are discussed. For the relationship between the various notions of flatness, and the notion of covering-flatness, see \begin{itemize}% \item [[Panagis Karazeris]], \emph{Notions of flatness relative to a Grothendieck topology}, Theory and Applications of Categories, 12 (2004), 225-236 (\href{http://www.tac.mta.ca/tac/volumes/12/5/12-05abs.html}{TAC}) \end{itemize} \begin{itemize}% \item [[Mike Shulman]], \emph{\href{http://golem.ph.utexas.edu/category/2011/06/flat_functors_and_morphisms_of.html}{Flat Functors and Morphisms of Sites}} \end{itemize} Limits in the category of flat functors are discussed in \begin{itemize}% \item [[Panagis Karazeris]], Ji\'i{} Velebil, \emph{Representability relative to a doctrine} , Cahiers de Topologie et G\'e{}ometrie Diff\'e{}rentielle Cat\'e{}goriques 50 (2009), 3--22. \end{itemize} Discussion of [[left exact functors]] or flat functors in the context of [[(∞,1)-category theory]] is in \begin{itemize}% \item [[Jacob Lurie]], def. 5.3.2.1 in \emph{[[Higher Topos Theory]]} \end{itemize} A notion of ``flat 2-functor'' is discussed, with an eye towards applications with [[2-topos]]es, in the article \begin{itemize}% \item M.E. Descotte, E.J. Dubuc, M. Szyld, \emph{On the notion of flat 2-functors}, arXiv:\href{https://arxiv.org/abs/1610.09429}{1610.09429} \end{itemize} [[!redirects flat functor]] [[!redirects flat functors]] [[!redirects representably flat functor]] [[!redirects representably flat functors]] [[!redirects internally flat functor]] [[!redirects internally flat functors]] [[!redirects covering-flat functor]] [[!redirects covering-flat functors]] \end{document}