Posets inside of categories

A poset can be thought of as a category with the property that each hom-set is either empty or singleton (technically that’s a preorder, but I’ll skip that for now). There’s also a category of posets. In my work lately, I’ve actually wanted to point at an object in a category and say “this oneContinueContinue reading “Posets inside of categories”

Hawk-Dove game in Julia

Years ago, I would took a bunch of CS courses with C++ as the language of interest. One of the main projects I worked on completely outside of any course was an implementation of the Hawk-Dove game. I recently tried to find the files from this, and came up empty-handed. Instead of getting bummed thatContinueContinue reading “Hawk-Dove game in Julia”

Adjoint School 2023

Category theory has been “applied” in one sense or another since the beginning. Eilenberg himself studied automata theory. But the applied category theory community as it currently exists formally coalesced in 2018. All at once, we had the first instance of the Applied Category Theory conference, the accompanying Adjoint School, and the announcement of theContinueContinue reading “Adjoint School 2023”

Delooping, and internalization vs enrichment

Originally I was planning to write a post called something like “monoid facts everyone should know”, but I’m going easy on myself and giving you just one fact for now. If you ask someone for the definition of a monoid, there are two sorts of answers you’ll get: it’s a set equipped with an associativeContinueContinue reading “Delooping, and internalization vs enrichment”

Tube diagrams for monoidal monads

In this post, I’ll show you the diagrams I used while thinking about monoidal monads. this is building on the diagrams I show you in the first part. There, I showed you the tube-and-string diagrams for just ordinary monads, but I don’t think this is honestly better than other stringy presentations of monads. It’s probablyContinueContinue reading “Tube diagrams for monoidal monads”

A different string presentation of monads

My intention with this blog post is not to teach what a monad is, and it’s not to teach how string diagrams work. I just want to share some strings I drew to represent monoidal monads. This post is the first part of a series of posts where I present a diagrammatic language I usedContinueContinue reading “A different string presentation of monads”

Combinatorics, Lecture 5 (10 October 2019)

Thanks to Tim Hosgood for helping me type these notes up. Previous lecture here. Fibonacci and `tribonacci’ numbers Recall: there’s a species $latex G \colon \mathsf S \to \mathsf F$ with G(X) = {ways to totally order X and chop it into blocks of length 1 or 2} For example, We saw that $latex |G|(X)ContinueContinue reading “Combinatorics, Lecture 5 (10 October 2019)”

Combinatorics, Lecture 4 (8 Oct 2019)

Lecture 3 here. Using Generating Functions We defined two binary operations on species $latex \mathsf{S} \to \mathsf{Set}$: Addition. $latex (G+H)(X)=G(X)+H(X)$; Multiplication. $latex (GH)(X) = \{(Y,g,h) \mid Y \subseteq X, g \in G(Y), h \in H (X \setminus Y)\}$. These obey $latex |G+H| = |G|+|H|$ and $latex |GH|=|G||H|$. In total, we’ll talk about five binary operationsContinueContinue reading “Combinatorics, Lecture 4 (8 Oct 2019)”

Combinatorics, Lecture 3 (3 Oct 2019)

Lecture 2 here. Thanks again to Tim Hosgood for the beautiful pictures. The category of species Last time, we looked at the relationship between species and their generating functions, a formal power series associated to a species which lets you count structures described by the species. Now we’ll take a closer look at species themselves.ContinueContinue reading “Combinatorics, Lecture 3 (3 Oct 2019)”