Generalising Monoids The word 'monad' is derived from the word 'monoid'. The explanation usually given is that there is an analogy between monoids and monads. On the surface, this seems a bit unlikely. The join operation in a monad is supposed to correspond to the binary operator in the monoid, but join is a completely different kind of thing, certainly not a binary operator in any usual sense. I'm going to make this analogy precise so that it's clear that both monoids and monads are examples of the same construction. In fact, I'm going to write some Haskell code to define monoids and monads in almost exactly the same way. I was surprised to find I could do this because instances of Haskell's Monoid and Monad aren't even the same kind of thing (where I'm using 'kind' in its technical sense). But it can be done.
Suppose that we wanted to construct a mathematical universe where all objects were computable in some sense. How would we do it? Well, we could certainly allow the set \mathbb{N} into our universe: natural numbers are the most basic computational objects there are. (Notation: I’ll use N to refer to \mathbb{N} when we’re considering it as part of the universe we’ll building, and just \mathbb{N} when we’re talking about the set of natural numbers in the “real” world.) What should we take as our set of functions N^N from N to N? Since we want to admit only computable things, we should let N^N be the set of computable functions from \mathbb{N} to \mathbb{N}, which we can represent non-uniquely by their indices (i.e., by the programs which compute them).
An introduction to 2-categories is given by illustrating how the structure of typed lambda calculus may naturally be viewed as a 2-category. In this vein. the structure of computations or conversions gives rise to notions of lax 2':"adjointness.
MA 1114 - Conceptual Mathematics - Fall Semester 2006, Polytechnic University. Jonathan Bain * Syllabus * Lectures o 01. The Branches of Mathematics o 02. Paradoxes o 03. Greeks & Aristotle o 04. Calculus o 05. Proofs o 06. Naive Set Theory o 07. Ordinals and Cardinals o 08. Formal Set Theory o 09. Problems: The Skolem Paradox o 10. Problems: Godel's Incompleteness Theorems o 11. Category Theory: Intro o 12. Isomorphisms, Sections, Retractions o 13. More Categories o 14. Generalized Elements o 15. Terminal Objects & Initial Objects o 16. Products o 17. Sums
popl2008 ** 1. GADTs are syntactic sugar. The real structures at work are existentially quantified types and the equality GADT. 2. Indexing by a set, rather than a category, as GADTs do means that really this is dependently typed programming faked in Haskell by using kind level proxies for types 3. As a result, Haskell ends up with a curious "logic programming" feel to its type level computation and functional programming feel to its term-level computation. PJohann and NGhani ** his main point (which worked with me) is that we should pay more attention Kan extensions. We already know and love (strong) functors, (co)monads, adjunctions and the Yoneda lemma.
John Baez Algebraic Topological Methods in Computer Science 2008, University of Paris Diderot (Paris 7) July 7, 2008 Computation and the Periodic Table By now there is an extensive network of interlocking analogies between physics, topology, logic and computer science, which can be seen most easily by comparing the roles that symmetric monoidal closed categories play in each subject. However, symmetric monoidal categories are just the n = 1, k = 3 entry of a hypothesized "periodic table" of k-tuply monoidal n-categories. This raises the question of how these analogies extend. We present some thoughts on this question, focusing on how symmetric monoidal closed 2-categories might let us understand the lambda calculus more deeply. This is based on work in progress with Mike Stay. Click on this to see the transparencies of the talk: