added pointer to

- Mike Shulman,
*Comonadic modalities and cohesion*, talk at*Geometry in Modal Homotopy Type Theory*, 2019 (pdf slides, talk recording)

added full publication data for

- Mike Shulman,
*Brouwer’s fixed-point theorem in real-cohesive homotopy type theory*, Mathematical Structures in Computer Science Vol 28 (6) (2018): 856-941 (arXiv:1509.07584, doi:10.1017/S0960129517000147)

here and elsewhere

]]>I thought so when I wrote #25, but now I think maybe there is no problem. Of course a *small* set of morphisms can’t be stable under pullback or products, so my question wasn’t quite correctly phrased. The subtlety, IIRC, is that the “internal localization” at an arbitrary class $S$ is the “external localization” at the stabilization of $S$ under pullbacks or products, rather than $S$ itself. But if the external localization at a set $S$ is *known* to be an exponential ideal, then the class of morphisms that it inverts is necessarily stable under products; thus the internal localization agrees with the external one. Similarly, if the external localization is left exact, then the class of morphisms it inverts is pullback-stable. And I think we can play a similar game for subcategories with stable units, although in that case the class of *all* inverted morphisms may not be pullback-stable.

Thanks, I see.

So I suppose you are well aware of this proposition which states that an accessible reflective sub-$\infty$-category of an accessible $\infty$-category is given by localization at a small set of morphisms.

But I guess it may be nontrivial to combine this with pullback stability.

]]>So back here I argued that every exponential ideal is a localization at some class $S$ closed under finite products, and every reflective subcategory with stable units is a localization at some pullback-stable class $S$, but I ignored size issues. Is it true, if all the $\infty$-categories and functors involved are accessible, that these classes $S$ can be chosen to be small?

(By an “internal family of maps” I mean rather than a set or class $S$ of maps in the external sense, we have an object $S$ of the topos and a map $X\to Y$ in $\mathbf{H}/S$. This is what the HIT construction of localization actually uses. But I’m pretty sure that this is strictly more general than a small external family, since we can always take $S$ to be a coproduct of copies of 1.)

]]>All the modalities arising in topos models of cohesion are accessible, correct?

You may have to help me, do you mean that the underlying $\infty$-functors are accessible? In that case the answer is yes.

But you mention localization at an internal family of maps. This I don’t know about. Could you give me some pointer to more details?

]]>No, no weakly Tarski universes. I’m still hoping that we’ll find a way to model honest universes in all toposes. Plus I have faith that most anything we do with honest universes could be done more tediously with weakly Tarski ones, and the library is intended to be usable.

Right now I am wondering whether anything important would be lost by restricting attention to accessible modalities (those obtained by localization at some internal family of maps). All the modalities arising in topos models of cohesion are accessible, correct? The only inaccessible modality that I can think of is “double-negation in the absence of propositional resizing”, and accessible ones have a number of advantages both actual and technical. (In particular, right now I think the theorem that the type of modal types for a lex modality is itself modal only works in the accessible case; I was too sloppy with universes when I proved it before using type-in-type).

And no, I never heard any more from Gallozzi since June.

]]>@Urs is this thesis generally available? Googling Gallozzi’s name didn’t produce much of use.

]]>Interesting.

Do you also include aspects of weak Tarskian universes in the redesign?

I suppose you did see the final version of Cesare Gallozzi’s thesis recently? (I am asking because I only know that you were involved to some extent, but not how much exactly.)

]]>Nice!

I’m currently working on a bunch of redesigns of the HoTT/Coq library, part of my goal being to make it easier to redo the theory of modalities and cohesion therein. We already have some of it, but some is left to do, e.g. the theory of lex modalities. It’ll have to be mostly rewritten from scratch, but it’ll be better for that, and more usable in the future given all that we’ve learned in the current incarnation of the library.

]]>Alexander Berenbeim just started a blog on cohesive homotopy type theory

]]>I have updated the links to Mike’s code at *cohesive homotopy type theory*, alerted by this discussion

Ah, I see. Thanks.

]]>Done.

]]>Yes, the existence of Type, or more particularly its consequence that we can talk about “functions from types to types”, is what I referred to above as “parametric polymorphism”.

Ah, thanks, I never knew what that term meant. So “parametric” for “may vary/depend over the base/context” and “polymorphism” since there is more than one type? Is that just what it means?

Maybe we can put a note into *parametric polymorphism*.

Yes, the existence of $Type$, or more particularly its consequence that we can talk about “functions from types to types”, is what I referred to above as “parametric polymorphism”. Haskell doesn’t have a “type classifier” like Coq does, but we can still define a “function from types to types” by defining a “type that depends on a type variable” — this is how you do a monad. What I meant by “any strongly typed language has monads” was that even without such polymorphism, there still “exist” monads on the category of types, such as those one constructs in Haskell — it’s just that you won’t be able to define the monad as a single entity within the language syntax.

]]>Thanks! Great.

One last question for tonight (local time):

Any strongly typed language “has monads”

Hm, so in Coq, the way you coded it at least, the crucial bit is the Type classifier, the internal incarnation of the type universe, which allows to explicitly give the endomorphism of the monad

$\sharp : Type \to Type \,.$Not all these languages will have such a type of types, right?

]]>Yes, the reflections $\sharp$ and $\Pi$ are, in particular, monads on the type universe. They’re fancier than Haskell monads, of course, since the type system of Coq has dependent types — which was what caused all the issues with reflective subfibrations etc. But when you restrict them down to the non-dependent world, they look like Haskell monads (albeit of a very special kind, namely idempotent monads).

There’s an important contrast in that most Haskell monads are *defined* in terms of the preexisting type theory, rather than *axiomatized* as $\sharp$ is. That isn’t universally true, though, for instance the Haskell monad `IO`

is basically a part of the type system put in axiomatically. (I’ve also speculated that it might be useful for a programming-language-like type theory to have a $\sharp$-like monad playing the role of the codiscrete objects in the effective topos, as an alternative way to deal with the computability issues that people often recourse to setoids for, but I’ve never gotten around to figuring out to what extent that might be true.)

Additionally, a big part of the power of monads in Haskell is the language support for them. Any strongly typed language “has monads” in the sense that its type system admits some functors that are monads, like Haskell’s Reader and Writer and State. If it has parametric polymorphism, then you can define each of those monads as a parametrized type family. The additional thing that languages like Haskell, ML, and Coq add is an ability to abstract out the structure of a monad (the multiplication and unit maps, and in Coq’s case the axioms they satisfy) and describe it as part of the type. Haskell does it with type classes, ML with modules, while Coq has both type classes and modules (producing vast amounts of confusion for someone like me trying to figure out which one to use!). Haskell also has some special syntactic sugar for monads, which (with all due respect to Bob Harper) I personally think is kind of nice. And Coq’s very flexible mixfix-notation-definition facility can more or less mimic what Haskell has built in.

]]>Is the following roughly right:

Since cohesion is axiomatized in terms of the two monads $\sharp : \mathbf{H} \to \mathbf{H}$ and $\flat : \mathbf{H} \to \mathbf{H}$…

**Question**: once written in Coq, this is the same kind of monad construction that the Haskell community is all excited about. Right?

The notoriously advertized monads in Haskell are just monoids in endomorphisms on the ambient type universe, right?

To Bob Harper’s *Of course ML has monads!* we can add **Of Course Coq has $\infty$-monads!**, and it’s the same sense of “programming language has monads”-statement, right?

I mean, I am guessing the answer is: Yes of course. I just want a sanity check, because I have trouble reading the online texts on the Haskell monads. I am a reader in the blind spot: these texts typically spend two pages telling the reader that he will find the notion of monad hard to understand, only to then plunge into Haskell code without any explanation of what *that* means. For me it would have to be the other way around :-)

Well, I am getting there. But any helpful comment would be appreciated anyway.

]]>Okay, good idea. I did so and created *motivation for cohesive toposes*. Let’s move any further chat about this non-technical discussion to the corresponding thread.

Could this be material for one of your ’motivation’ pages? I think they’re a great idea, especially the motivation for sheaves….

]]>[ after posting I see that the following reply overlaps with David’s reply above ]

One does need to be familiar with adjoint functors and related concepts in order to get an accurate idea of the notion of cohesion, yes.

But of course intuitive approximations to basic ideas can be given in words. That will give an idea of the motivations and make plausible the nature of the applications, at least.

There is a bit of such a intuitive discussion in the Idea-section at *cohesive topos*. But maybe we should break that further down to make it useful for laymen.

I can add more to that Idea-section. Let me know if the following kind of text is helpful:

A notion of *cohesion* on a collection $\mathbf{H}$ of spaces is supposed to be a means to specify how points in any space $X \in \mathbf{H}$ “hang together” or “cohere”, analogous to how water molecuses in a droplet of whater are held together by cohesion. A basic example arises for topological spaces or manifolds: here the “droplet of water” is an open ball of points. Indeed, one of the central examples of cohesive spaces is that of smooth spaces and these are spaces that can be *probed* by smooth open balls, such that these smooth open balls are the elementary “cohesive droplets” out of which any smooth space is built.

That intuition should be evident enough. The question is which formal axioms capture this droplet-intuition accurately and efficiently. The crucial insight of Bill Lawvere is that a rather minmalistic set of axioms already does the job:

there has to be an assignment $\Pi : \mathbf{H} \to Set$ that sends every cohesive space $X$ to its

*set of cohesively connected components*. For instance a single open ball as above, an elementary droplet, is sent to the set $\{*\}$ with a single element.We should be entitled to regard every set $S \in Set$ trivially as a cohesive space in two ways:

either we regard every element in $S$ as an atomic cohesive droplet itself, cohesively disconnected to any other point. Call the resulting cohesive space $Disc(X)$. For smooth cohection $Disc(X)$ is simply the discrete manifold being the disjoint union of one point per element in $S$.

or, at the opposite extreme, we regard all the elements in $S$ as being cohesively connected, hence regard all of $S$ itself as one single big cohesive droplet. We write $coDisc(X)$ for $S$ regarded as a cohesive space this way, because in the context of topological cohesion this is the codiscrete space on the given set.

The collection of discrete and codiscrete cohesive spaces should sit nicely inside the collection of all cohesive spaces, essentially in just the obvious way that one intuitivey expects. For instance cohesive maps between two discretely cohesive spaces should be simply maps between the underlying sets, and so on.

And the notion of “discrete” exhibited by the collection of discrete objects has indeed to be compatible with the notion of “cohesive” as seen by that map $\Pi$ above. This is just the evident consistency condition which you are probably assuming anyway: for instance if $Disc(S)$ is a set regarded as a discrete cohesive space, then $\Pi(Disc(S))$, which is supposed to be its set of cohesively connected points, should be just $S$ itself, since no point in $Disc(S)$ is supposed to be cohesively connected to any other.

In particular $\Pi(Disc(*))$ should be the point again.

That’s essentially it, already. It sounds very simple (hopefully) and indeed it is very simple. Once you know the notion of an adjoint functor it is pretty straightforward to formalize the above text in terms of that notion.

The interesting observation is that simple as this idea is, it has very powerful consequences … once it is formalized not just with adjoint functors but with adjoint (infinity,1)-functors.

]]>It would fun to run an online seminar when people have time, with different levels of expertise.

Eric, working through a 4-term chain of adjoints provides a good way to understand adjoint functors. If $U: Top \to Set$ is the forgetful functor from locally connected topological spaces to sets, there is a chain

$(\pi_0, Dis, U, CoDis),$where $\pi_0$ sends a space to its set of components, $Dis$ sends a set to the space with those points and the discrete topology, and likewise $CoDis$ for the codiscrete topology.

So starting along the chain, there is an equivalence between

set functions from (set of components of space $X$) to (set $A$)

and

continuous functions from (space $X$) to (space $Dis A$).

Putting it crudely, because $Dis A$ is so broken up, it’s hard to find continuous maps to it. In fact you have to use maps which are locally constant, all points in the same component of $X$ are sent to a single element of $A$.

]]>I read the interview and was also inspired to read some nLab pages and it became clear I’m not qualified to understand it. I still haven’t mastered adjoint functors (!).

Does that completely disqualify me from ever being able to understand cohesion? Could it be described for finite sets using even lower tech?

]]>