*Dialectical materialism*, far from being merely the definitive theory of political and historical movement, also serves as the guiding light for the progressive mathematician in its manifestation as the science of adjoint functors in category theory.

As Lawvere stated in his influential note *Quantifiers and Sheaves*, the essential move in mathematics is to identify the principal contradictions of a theory in the form of pairs of adjoint functors, and to “weaponize” them as slogans to drive the further development (and generalization) of the thing. In this note, I would like to make a few remarks about the pervasiveness of dialectical phenomena, both in the mathematics itself as well as in the practical engagement in mathematical activity.

### Adjointness and dialectical contradiction

First, I will summarize the definition of adjunction of functors. Fix two categories, \(\mathbb{C}\) and \(\mathbb{D}\). Then, fix a pair of functors \({{{\color{MidnightBlue}{\mathbf{L}}}}:{{\color{MidnightBlue}{{\left[\mathbb{C},\mathbb{D}\right]}}}}}\) and \({{{\color{MidnightBlue}{\mathbf{R}}}}:{{\color{MidnightBlue}{{\left[\mathbb{D},\mathbb{C}\right]}}}}}\); \(\mathbf{L}\) is left adjoint to \(\mathbf{R}\) (written \({{{\color{MidnightBlue}{\mathbf{L}}}}\dashv{{\color{MidnightBlue}{\mathbf{R}}}}}\)) when we have an equivalence \({{{\color{MidnightBlue}{{\mathbb{D}\left[\mathbf{L} C,D\right]}}}}\cong{{\color{MidnightBlue}{{\mathbb{C}\left[C,\mathbf{R} D\right]}}}}}\), natural in \({{{\color{MidnightBlue}{D}}}:{{\color{MidnightBlue}{\mathbb{D}}}}}, {{{\color{MidnightBlue}{C}}}:{{\color{MidnightBlue}{\mathbb{C}}}}}\).

There is also an alternative definition which simply requires two natural transformations subject to some conditions; specifically we require a *counit* \({{{\color{MidnightBlue}{\epsilon}}}:{{\color{MidnightBlue}{{\left[\mathbf{L}\mathbf{R},{1_{\mathbb{D}}}\right]}}}}}\) and a *unit* \({{{\color{MidnightBlue}{\eta}}}:{{\color{MidnightBlue}{{\left[{1_{\mathbb{C}}},\mathbf{R}\mathbf{L}\right]}}}}}\) such that \({{{\color{MidnightBlue}{{1_{}}}}} = {{\color{MidnightBlue}{\epsilon \mathbf{L} \circ \mathbf{L} \eta}}}}\) and \({{{\color{MidnightBlue}{{1_{}}}}} = {{\color{MidnightBlue}{\mathbf{R}\epsilon\circ\eta\mathbf{R}}}}}\).

Lambek observed^{1} that there are (at least) two ways to view an adjunction in a dialectical sense. The first interpretation is that an adjunction \({{{\color{MidnightBlue}{\mathbf{L}}}}\dashv{{\color{MidnightBlue}{\mathbf{R}}}}}\) establishes a contradiction between \(\mathbb{C}\) and \(\mathbb{D}\). The second way to view the adjunction \({{{\color{MidnightBlue}{\mathbf{L}}}}\dashv{{\color{MidnightBlue}{\mathbf{R}}}}}\) is to say that \(\mathbf{L}\) is the *thesis* and its right adjoint \(\mathbf{R}\) is the *antithesis*; then, the adjunction itself constitutes the synthesis.

### The Abstract-Concrete Dialectic

*Spaces and Locales.* We can establish a contradiction between two formulations of a topological space. First, let us recall the category of classical topological spaces \({\mathbf{Top}}\); a space \({{{\color{MidnightBlue}{T}}}:{{\color{MidnightBlue}{{\mathbf{Top}}}}}}\) is a set \(X\) together with a collection of subsets \({{{\color{MidnightBlue}{\Omega}}} \subseteq {{\color{MidnightBlue}{{\wp(X)}}}}}\) satisfying the usual axioms of a topology: \[
{\frac{}{
{{{\color{MidnightBlue}{{\varnothing}}}}\in{{\color{MidnightBlue}{\Omega}}}}
}}
\qquad
{\frac{}{
{{{\color{MidnightBlue}{X}}}\in{{\color{MidnightBlue}{\Omega}}}}
}}
\qquad
{\frac{
{\vert_{{{\color{MidnightBlue}{i}}}}\;{{{{\color{MidnightBlue}{U_i}}}\in{{\color{MidnightBlue}{\Omega}}}}\ \ ({{{\color{MidnightBlue}{i}}}\in{{\color{MidnightBlue}{I}}}})}}
}{
{{{\color{MidnightBlue}{
\bigcup_{i\in I} U_i
}}}\in{{\color{MidnightBlue}{\Omega}}}}
}}
\qquad
{\frac{
{{{\color{MidnightBlue}{U}}}\in{{\color{MidnightBlue}{\Omega}}}}
\quad
{{{\color{MidnightBlue}{V}}}\in{{\color{MidnightBlue}{\Omega}}}}
}{
{{{\color{MidnightBlue}{U\cap V}}}\in{{\color{MidnightBlue}{\Omega}}}}
}}
\]

Spaces are also characterized by the category of *locales*, \({{{\color{MidnightBlue}{{\mathbf{Loc}}}}}\triangleq{{\color{Maroon}{{{{\mathbf{Frame}}}^\mathsf{op}}}}}}\), where \({\mathbf{Frame}}\) is the category of *frames of opens* and frame homomorphisms; a frame \({{{\color{MidnightBlue}{\mathcal{O}}}}:{{\color{MidnightBlue}{{\mathbf{Frame}}}}}}\) is a distributive lattice with (small) infinitary joins. Classical spaces represent the *concrete* view, where we consider the points directly; locales give us a more abstract view of things, where the “points” arise as prime filters of opens.

Now, we have a functor \({{{\color{MidnightBlue}{\mathbf{L}}}}:{{\color{MidnightBlue}{{\left[{\mathbf{Top}},{\mathbf{Loc}}\right]}}}}}\) which regards a topological space as a locale by considering its lattice of open sets. Likewise, we have a functor \({{{\color{MidnightBlue}{\mathbf{T}}}}:{{\color{MidnightBlue}{{\left[{\mathbf{Loc}},{\mathbf{Top}}\right]}}}}}\) by which we may regard a locale \(L\) as a topological space, taking its points to be the continuous maps out of the terminal locale, \({{{\color{MidnightBlue}{\alpha}}}:{{\color{MidnightBlue}{{{\mathbf{Loc}}\left[1,L\right]}}}}}\).

As expected, we have an adjunction \({{{\color{MidnightBlue}{\mathbf{L}}}}\dashv{{\color{MidnightBlue}{\mathbf{T}}}}}\) (see Mac Lane and Moerdijk’s *Sheaves in Geometry and Logic*, Section IX.3 for the proof). From the dialectical perspective, “localicization” is the thesis, and “topologicization” is the antithesis—and the synthesis lies in recognizing their unity under the equivalence of “sober spaces” \(\{{{{\color{MidnightBlue}{T}}}:{{\color{MidnightBlue}{{\mathbf{Top}}}}}} \mid {{{\color{MidnightBlue}{T}}}\cong{{\color{MidnightBlue}{\mathbf{T}{\mathbf{L} T}}}}} \}\) with the “spatial locales” \(\{{{{\color{MidnightBlue}{L}}}:{{\color{MidnightBlue}{{\mathbf{Loc}}}}}}\mid{{{\color{MidnightBlue}{L}}}\cong{{\color{MidnightBlue}{\mathbf{L}\mathbf{T} L}}}}\}\); in Brouwerian terms, these are the spaces for which (a principle analogous to) the Bar Principle holds.

### The Local-Global Dialectic

The development of temporal consciousness in mathematical activity begins from the purely momentary acts, which we classify using families of sets fibered over “stages”; an example of such an act is the recognition that it is “currently raining”. A purely momentary act is not yet an act of *knowledge*, because it is not persistent (for it may cease to rain!); temporal consciousness is first developed by the passage toward knowledge acts (judgments), which are classified by *presheaves*. It is here, at the notion of judgment, that the old clauses from Kripke semantics find their proper application.

The most advanced stage of development of temporal consciousness consists in the passage from mere judgment (persistent acts) to *local judgment* (truth!). Truth differs from other forms of judgment only in that it is stable with respect to small perturbations: if the recognition of truth is inevitable from a stage, then it already obtains at that stage—in other words, the verification conditions vary continuously over stages. Propositions, then, are the specifications of local forms of judgment which we call truth.

Here we may observe a few dialectical relations along the struggle between the local and the global.

*Development of Monotone Character.* First, we can regard any presheaf \({{{\color{MidnightBlue}{\mathcal{X}}}}:{{\color{MidnightBlue}{\widehat{\mathbb{C}}}}}}\) as a family of sets \({{{\color{MidnightBlue}{{{\left\vert \mathcal{X}\right\vert}}}}}:{{\color{MidnightBlue}{{\widehat{{\left\vert \mathbb{C}\right\vert}}}}}}}\) by simply forgetting its action on \(\mathbb{C}\)-morphisms. Likewise, a family of sets \({{{\color{MidnightBlue}{X}}}:{{\color{MidnightBlue}{{\widehat{{\left\vert \mathbb{C}\right\vert}}}}}}}\) gives rise to a presheaf \(\mathbf{m}X\) which is defined in the following way: \[
{{{\color{MidnightBlue}{C\Vdash\mathbf{m}X}}}\triangleq{{\color{Maroon}{
\int_{f:{\mathbb{C}\left[D,C\right]}} X_D
}}}}
\]

The “presheafification” that we define here immediately forces an act to be persistent. It is easy to see that this is a presheaf, with the action on morphisms given by composition. Moreover, we can see that \(\mathbf{m}\) is right adjoint to the discretization of presheaves, i.e. \({{{\color{MidnightBlue}{{{\left\vert -\right\vert}}}}}\dashv{{\color{MidnightBlue}{\mathbf{m}}}}}\). It is worthwhile to consider what has happened: the essential parts of \(X\) have been *sublated* into the judgmental order as \(\mathbf{m}X\), acquiring the monotone character of temporal consciousness.

*Development of Local Character.* We also may observe dialectical progress from presheaves to sheaves in the acquisition of local character through sheafification, assuming a Grothendieck topology \(J\) on \(\mathbb{C}\). For a presheaf \({{{\color{MidnightBlue}{\mathcal{X}}}}:{{\color{MidnightBlue}{\widehat{\mathbb{C}}}}}}\), let us first recapitulate Grothendieck’s *plus construction* \(\mathcal{X}^+\): \[
{{{\color{MidnightBlue}{
C\Vdash\mathcal{X}^+
}}}\triangleq{{\color{Maroon}{
\int^{S \in J(C)} {\widehat{\mathbb{C}}\left[S,\mathcal{X}\right]}
}}}}
\] (In my preferred formulation of sheaf theory, we consider sieves on \(C\) as subfunctors of the Yoneda embedding \(\mathbf{y}(C)\) and define matching families for a sieve \(S\) as natural transformations from \(S\) to \(\mathcal{X}\).)

Finally, *sheafification* is defined as the twice-iterated application of the plus construction: \[
{{{\color{MidnightBlue}{C\Vdash\mathbf{a}\mathcal{X}}}}\triangleq{{\color{Maroon}{C\Vdash\mathcal{X}^{++}}}}}
\]

Of course, we can regard a sheaf \({{{\color{MidnightBlue}{\mathcal{Y}}}}:{{\color{MidnightBlue}{{\mathsf{Sh}_{J}(\mathbb{C})}}}}}\) immediately as a presheaf \({{{\color{MidnightBlue}{{\iota_\mathsf{Sh}}\mathcal{Y}}}}:{{\color{MidnightBlue}{\widehat{\mathbb{C}}}}}}\). We have the expected adjunction too, \({{{\color{MidnightBlue}{\mathbf{a}}}}\dashv{{\color{MidnightBlue}{{\iota_\mathsf{Sh}}}}}}\).

#### The Local-Global Dialectic in Programming Languages

A practical case of the local-global dialectic manifests in the notorious tension between *modules* and *(coherent) type classes* in programming languages like ML and Haskell. The antagonism at play here, between modularity and convenience, is not only present in the inner character of these features, but also in the character of their human proponents—this I can say from experience, having participated in the (failed) struggle against the coherence-roader opportunist elements of the Haskell clique!

The opposition is clear: global coherence constraints are convenient, but anti-modular (local reasoning is prohibited!). The *dialectic chiasm*, however, lies in the disturbing and paradoxical recognition that **modularity is not itself modular**!

A modular property is one which can be established on the grounds of an assertion which is persistent under the acquisition of new knowledge; to put it more simply, a modular property is established by a judgment act. However, the *modularity of a system* is not monotone in this sense, because it is not stable under the addition of anti-modular features!

Just as much as modularity is defined in terms of persistent observations, we must also take the opposing definition of modularity (*global* lack of anti-modular principles) as definitive. We see that neither characterization of modularity can be more primitive than the other: rather, each definition generates the other.

I will leave off my observations for now and perhaps develop them further in the future. You may also find the nLab page on Hegel’s Science of Logic very interesting; thanks to Urs Schreiber for pointing it out to me!

J. Lambek,

*The Influence of Heraclitus on Modern Mathematics*.↩