You're reading the public-facing archive of the Category Theory Zulip server.
To join the server you need an invite. Anybody can get an invite by contacting Matteo Capucci at name dot surname at gmail dot com.
For all things related to this archive refer to the same person.
CT was obviously developed in the context of algebraic topology. When did people start to realize that it could be used to think about computation?
I don't have a definitive answer, but the relationship between computation and topology goes pretty far back. Like, Scott's "Continuous Lattices" is already talking about topological models of the lambda calculus in 1972, it seems.
I would guess the topological connection leads to the categorical one.
I quite liked this recent survey paper https://arxiv.org/abs/2001.05778
It doesn't include absolutely everything, but then nothing can.
Chad Nester said:
I quite liked this recent survey paper https://arxiv.org/abs/2001.05778
That's a nice history. I'm not sure why I didn't think of Lambek, who made the connection between logic and category theory in three volumes of Deductive Systems and Categories, starting from 1968.
The idea, according to Hofstra and Scott, was to use proof theory to reformulate the problem solved by the coherence theorems in category theory, and then apply cut-elimination.
Oh yeah, I suppose it could have been via logic, too. The correspondence between programming and logic goes back way further.
Essentially to the beginning of the notions we use for talking about computing; they grew out of logic.
Or it could have been topos theory, which came out of Grothendieck's application of category theory to reformulate algebraic geometry. :shrug:
It might be hard to tell, if people were talking about categories and logic in 1968. It sounds like it was all happening around the same time.
According to Wadler's 1992 paper on The Essence of Functional Programming, John Reynolds was "the first to apply category theory to language design", with his 1980 paper on using category theory for "implicit conversion" (aka type coercion). :scream:
Who knew CT could be used for evil?
Dan Doel said:
It might be hard to tell, if people were talking about categories and logic in 1968.
Does 1969 count?
This is where he showed that quantifiers were adjoints to substitution.
Thanks, Max New, my first thumbs down... :rolling_on_the_floor_laughing:
Joseph Goguen was a big early proponent of category theory applications to programming languages, he wrote "A Categorical Manifesto" in 1991. This paper that he collaborated on is the one that's probably most famous: https://dl.acm.org/doi/10.1145/321992.321997
It's a ridiculous assertion that 1980 was the first time that category theory was applied to programming language design
Max New said:
It's a ridiculous assertion that 1980 was the first time that category theory was applied to programming language design
Take it up with Philip Wadler. I'm quoting his paper. Clearly he didn't seem to be aware of Goguen's work.
@John Baez I mean it might be hard to say whether the logic connection or the topology connection had more influence on applying categories to computer science, since the dates when people would be thinking about them are so close.
If you read Dana Scott's semantics work from the 70s, he explicitly says he was communicating with Lawvere and by 1980 he wrote a paper that fully embraces the categorical approach
"Relating Theories of the Lambda-calculus"
It looks like it's fair to say that Categories for the Working Mathematician seemed to have really kicked things off when it came out in 1971, although I'm wondering now how much influence universal algebra might have had on computation.
If you read that Goguen-Thatcher-Wagner-Wright 1977 paper I linked above they go over some CS history and it looks like universal algebra was definitely somewhat popular/influential
Here's a link to that paper by Scott I found it in the library a few years ago and scanned it: http://maxsnew.com/docs/scott80.pdf
Also relevant, Lambek's work on coherence theorems for categories. He reduced it to proof theory, and so uncovered the relationship between the two. In the 70s he realized the close connection between lambda calculi and CCC. The rest is history.
Btw I think he was the first on this path. Here's the first paper of his on this theme:
(This is explored in length in "Aspects of categorical recursion theory", by Hofstra and Scott)
The Deductive Systems and Categories papers are hugely important in my opinion. I would prefer to say, instead of reducing coherence theorems to proof theory, that he adapted and expanded proof theory to the proof-relevant context of closed categories. At any rate, I found his account much more intuitive and easier to understand than Kelly and Mac Lane's Coherence in Closed Categories (which may have been written partly to explain what Lambek was up to).
A nice little historical perspective on the development of coalgebras (or CT in general) in CS can be found in page 4 of Jacobs' "Introduction to Coalgebra", which is available online. @Max New Goguen indeed looks like he played an instrumental role in initial developments. Aczel's non-well founded sets was also seminal, although it probably can't be considered CT. And a question for people who know better: can Dana Scott's work on domain theory be considered categorical?
Close to the ADJ group, there was Calvin Elgot, who wrote on algebraic theories and program schemes, including a IBM report in 1970. He also wrote a book on "recursiveness" with Eilenberg.
Scott's work was not originally explicitly category theoretic but domain theory eventually became tied very explicitly to category theory with Wand's paper Fixed point solutions in order enriched categories and the more famous follow-up Smyrh-Plotkin's "category theoretic solutions of recursive domain equations"
Smyth*
Exequiel Rivas said:
Close to the ADJ group, there was Calvin Elgot, who wrote on algebraic theories and program schemes, including a IBM report in 1970. He also wrote a book on "recursiveness" with Eilenberg.
I stumbled upon the Eilenberg-Elgot book and Michael Arbib's review. Maybe I've only just skimmed it, but he came across as not being a fan of the book. Here's how he conclude the review:
"The motivation that might allow the computer theorist to see better how to make the transition back and forth between programs and algebraic theory is completely lacking. But the algebra is
elegant and polished, and one hopes that one day Eilenberg and Elgot will give us the book promised in their preface."
Was it really that bad?
Stelios Tsampas said:
A nice little historical perspective on the development of coalgebras (or CT in general) in CS can be found in page 4 of Jacobs' "Introduction to Coalgebra", which is available online.
Thanks for the pointer.
Goguen indeed looks like he played an instrumental role in initial developments.
So did Arbib, which makes that review of Eilenberg-Elgot very interesting.
Aczel's non-well founded sets was also seminal, although it probably can't be considered CT.
Hmm...:
"Aczel formed a next crucial step with his special set theory that allows infinitely descending ∈-chains, because it used coalgebraic terminology right from the beginning. The development of this theory was motivated by the desire to provide meaning to concurrent processes with potentially infinite behaviour in Milner’s calculus of communicating systems (CCS)."
Joe Moeller said:
CT was obviously developed in the context of algebraic topology. When did people start to realize that it could be used to think about computation?
I'll have to find the source, perhaps Maclane's bio, but he saw connections to computation pretty much right away.
We shouldn't forget that Eilenberg quit working on algebraic topology and wrote his enormous 451-page book Automata, Languages and Machines using category theory. It came out in 1974. From what I hear, everyone thought he was nuts for quitting algebraic topology.
Exequiel Rivas said:
Close to the ADJ group, there was Calvin Elgot, who wrote on algebraic theories and program schemes, including a IBM report in 1970. He also wrote a book on "recursiveness" with Eilenberg.
Eilenberg and Elgot wrote Recursiveness in 1970. Michael Arbib reviewed it and concluded:
"The motivation that might allow the computer theorist to see better how to make the transition back and forth between programs and algebraic theory is completely lacking. But the algebra is elegant and polished, and one hopes that one day Eilenberg and Elgot will give us the book promised in their preface."
He didn't sound all that impressed, but he built on their work.
"Motivation that might allow computer scientists to see better..." - sounds like he was hoping for Eilenberg and Elgot to write a book for people, rather than for god. :upside_down:
John Baez said:
"Motivation that might allow computer scientists to see better..." - sounds like he was hoping for Eilenberg and Elgot to write a book for people, rather than for god. :upside_down:
I think Arbib ended up rolling his sleeves and writing some of that book himself. Quite a bit of his work seems to build upon what I think would have been in Eilenberg and Elgot.
One of his books was Algebraic Approaches to Program Semantics, written in 1986 with Ernest Manes. Gambino and Kock pointed out in Polynomial functors and polynomial monads that polynomial functors in program semantics first appeared there.
Arbib has also written a lot on control theory and computational neuroscience. I've seen a few computational neuroscientists on here, so that's exciting.
Is there an interest for a neuroscience stream? I would really like to discuss some ideas on neuroscience, cognitive science and category theory.
Hello @Johannes Drever Neurodynamics of Personality is a great book applying systems science to the brain.
Johannes Drever said:
Is there an interest for a neuroscience stream? I would really like to discuss some ideas on neuroscience, cognitive science and category theory.
Sure, I'm all for it. Duncan Mortimer and Toby Smithe have also indicated their interest in neuroscience in their introductions.
Howdy @Rongmin Lu @Johannes Drever @Duncan Mortimer @Toby Smithe do we have anything more than interest in neuroscience? I think the idea of category theory and neuroscience is cool, but I'd love to see some results first before I get too attached.
I am of course in favour of discussions although I don't have concrete results to present yet. I probably also won't be able to dedicate as much time as I would like to this forum for a while. That being said, I have a number of ideas & projects I'm working on (as alluded to in my intro) and I intend to discuss them here (and elsewhere) with you all before long. So if a neuro stream appears, I'll pay attention and do my best to contribute when I can.
Thanks, @Johannes Drever, for creating the #neuroscience stream.
Rongmin Lu [said](https://categorytheory.zulipchat.com/#narrow/stream/232163-learning.3A-
```That's a nice history. I'm not sure why I didn't think of Lambek, who made the connection between logic and category theory in three volumes of Deductive Systems and Categories, starting from 1968.
Well, the Lambek calculus first appeared in 1958 and it was already connecting algebra and (the computation of) language.
Wrt mutual influences between Scott and Lawvere: The 1971 paper by Dana Scott "Continuous Lattices" credits Lawvere for suggesting that the limit construction of the solution of the famous domain equation (see Thm 4.4 and the proof on page 31) is, in modern parlance, the initial algebra and final coalgebra of an endofunctor.
Valeria de Paiva said:
Rongmin Lu [said](https://categorytheory.zulipchat.com/#narrow/stream/232163-learning.3A-
```That's a nice history. I'm not sure why I didn't think of Lambek, who made the connection between logic and category theory in three volumes of Deductive Systems and Categories, starting from 1968.Well, the Lambek calculus first appeared in 1958 and it was already connecting algebra and (the computation of) language. ````` ============================= (I don't know how to add this "outside" the quote from Valeria!) FWIW: Lambek and Lawvere were both in Z\'urich in 1965-66, as were Mike Barr and Marta Bunge -- Mike told me that that was the year that reoriented Jim's research to category theory (and was probably what prompted Jim to bring both Mike and Marta to McGill soon after).
To quote things, you start with three left quotes and then write
quote
(with no intervening space).
You end with three left quotes.
Or just press the >
key when the message you want to reply to has the focus (blue rectangle).
i just checked the u of oregon library (we don't have access to the summit system during the covid-19 shelter-in-place order) and none of the three volumes are shown (author/title search). does anyone [here] have access?
Robert Seely said:
Valeria de Paiva said:
Rongmin Lu said:
That's a nice history. I'm not sure why I didn't think of Lambek, who made the connection between logic and category theory in three volumes of Deductive Systems and Categories, starting from 1968.
Well, the Lambek calculus first appeared in 1958 and it was already connecting algebra and (the computation of) language.
=============================
(I don't know how to add this "outside" the quote from Valeria!)FWIW: Lambek and Lawvere were both in Z\'urich in 1965-66, as were Mike Barr and Marta Bunge -- Mike told me that that was the year that reoriented Jim's research to category theory (and was probably what prompted Jim to bring both Mike and Marta to McGill soon after).
That's interesting! Formatting fixed as well.
John Baez said:
To quote things, you start with three left quotes and then write
quote
(with no intervening space).
Zulip has an autocomplete feature that interferes with this. When the cursor encounters three left quotes preceding it, the autocomplete pops up a dialog for you to fill in the "quote" bit, but it also eats up some text if you let it autocomplete for you under certain circumstances. So that happened when Valeria quoted my comment, and then that got quoted as well, compounding the syntax error.
John Baez said:
We shouldn't forget that Eilenberg quit working on algebraic topology and wrote his enormous 451-page book Automata, Languages and Machines using category theory. It came out in 1974. From what I hear, everyone thought he was nuts for quitting algebraic topology.
I spent some time trying to figure out what shifted Eilenberg, not just to change the field, but to change it from a place where he built a mountain, to this work which is basically a misunderstanding of what computation is about. Imagining that computation will benefit from wrestling state machines into algebraic signatures. So now if you look around you, Eilenberg's simplicial this and singular that is in everything (including things that he wouldn't dreamt of) while the whole work on automata is of no consequence whatsoever. He didn't notice complexity, he didn't notice programming, he didn't notice algorithmic information. There were lots of exciting math threads, but he wasn't looking for them. I know that he didn't like how things were getting "complicated for their own sake". Is that why he went into an area where he thought he would find simplicity?
dusko said:
I spent some time trying to figure out what shifted Eilenberg, not just to change the field, but to change it from a place where he built a mountain, to this work which is basically a misunderstanding of what computation is about. Imagining that computation will benefit from wrestling state machines into algebraic signatures. So now if you look around you, Eilenberg's simplicial this and singular that is in everything (including things that he wouldn't dreamt of) while the whole work on automata is of no consequence whatsoever.
For a work of no consequence, Eilenberg's 1974 book on Automata, Languages and Machines sure got a whole truckload of citations.
Anyway, thanks for leading me to find out that Eilenberg invented the X-machine, which has led to applications in software specification and testing.
The book (1976 version?) also gave a corrected version of a proof of Zeiger of the holonomy decomposition in Krohn-Rhodes theory, the latter of which established a link between finite automata and finite semigroups.
Not bad for a book of no consequence.
@dusko - Did you succeed in finding any historical information that would shed light on why Eilenberg quit working on algebraic topology and started work on finite state machines?
I'm no Eilenberg, but I understand the impulse to get away from a subject that lots of smart people are piling on to and switching to something few people are thinking about. That's why I quit working on n-categories and started thinking about applications of categories to electrical circuits and chemistry.
Eilenberg was also an expert on Indian art and devoted more and more time to collecting that in his later years, I've heard.
Anyway, if you're working away on some obscure corner of mathematics and all of a sudden it catches on, it can be really annoying. You can either work harder and harder to stay ahead of the pack, or sink from being a pioneer to being just one of the crowd, or become an"organizer" who runs conferences, has grad students, and serves as a kind of social hub.... or you can get out.
I feel some people work to make the field a hot topic. Do you think some of them delude themselves would actually be disappointed if things would go "well"?
My old adviser worked in something close to IKKT matrix models and at one point he complained that apart from some Japanese folks, nobody would really be thinking much about their work, or aid developing it. I have to say that I found the whole situation pretty sad and it was one of the reasons I went to the DLR ("NASA" in Germany) after my more academic work.
Some people want to make their field a hot topic. Some ride a field to fame when it becomes hot, and don't much mind working harder to stay at the forefront, or becoming an "organizer" of the sort I mentioned: somehow who plays a socially central role in the field even if they're not having the most original ideas.
Other people like to think about many things and don't like how staying "important" requires more and more energy as a field becomes "hot", leaving less time for free exploration.
Rongmin Lu said:
dusko said:
I spent some time trying to figure out what shifted Eilenberg, not just to change the field, but to change it from a place where he built a mountain, to this work which is basically a misunderstanding of what computation is about. Imagining that computation will benefit from wrestling state machines into algebraic signatures. So now if you look around you, Eilenberg's simplicial this and singular that is in everything (including things that he wouldn't dreamt of) while the whole work on automata is of no consequence whatsoever.
For a work of no consequence, Eilenberg's 1974 book on Automata, Languages and Machines sure got a whole truckload of citations.
People cite a lot in CS. 5000 citations in almost 50 years is not a lot. Hopcroft and Ullman's automata book is at 20,000. Milners CCS which is some 20 years younger is at 12,000. It probably woulnd't be fair to bring up algorithmics book. But I don't suppose you really want to conflate conceptual consequences of a theory with how many people like it. Almost any book, say, about model checking has more than 50,000 citations. Not textbooks.
If you see anything of conceptual consequence in Eilenberg's approach to automata, whether it became popular or not, I will listen. I even did my best to read the manuscript of vol 3, which is somewhere on the web...
John Baez said:
dusko - Did you succeed in finding any historical information that would shed light on why Eilenberg quit working on algebraic topology and started work on finite state machines?
I am not good at finding historic information, but I talked to Eilenberg a bit back in Como and in Louvain-la-Neuve; or more precisely, he talked to me, apparently because I physically reminded him of Grothendieck. I was trying to understand his motivations from those conversatins. I have been trying to connect the dots for many years. He was annoyed with how things were going in every possible abstract direction. MacLane was very annoyed that mathematicians were publishing papers in CS, in what seemed like shallow problems. One hypothesis that I have is that Eilenberg was trying to make CS into a decent part of algebra. The influence of Lawvere's very simplistic but spectacularly consequential observations were also a confusing influence. It seemed like everything should be expressed in very simple axioms, orelse it will explode in SGA style... But this is just my impression.
Another hypothesis is that hugely successful theories leave people under the impression that all theories must be in that shape. It happened to Einstein. It happened to von Neumann. It takes being a Goedel or a Turing to not be influenced by what worked yesterday, and look at every new problem in a new light.
Sorry, I am rambling. I cannot say that I understand these things. But they are sort of related with what is it that we do when we do math.
dusko said:
If you see anything of conceptual consequence in Eilenberg's approach to automata, whether it became popular or not, I will listen. I even did my best to read the manuscript of vol 3, which is somewhere on the web...
I listed a couple here. The works that cited his book include works in control theory, combinatorics and semigroup theory.
I mean, it's probably of no "conceptual" consequence, compared to categories, but it's still surprising to me that his work found applications in software testing.
@dusko - Interesting. I also think that what famous people do for their "second act" will often not be as good as what they did in their first act. It was, after all, their first act that made them famous. Sting by himself wasn't as good as The Police, and Paul McCartney's stuff with Wings was not nearly as good as the Beatles. But they had to cut loose, for reasons like those I mentioned. If you keep doing the same thing you feel pressured to keep out-doing yourself: "just the same as before, only better". Also, personal frictions may cause teams to break up. I have no idea if Eilenberg got tired of working with Mac Lane; that might have played a role, or it might have had nothing to do with his change of direction.
Let's be honest, age doesn't help either. And the old days come after the young days.
It's sorta funny that this is the only topic in this stream.
lol
It is a rich topic full of ideas. That should give you an idea of how deep the interaction between CS and CT has been.
Nikolaj Kuntner said:
Let's be honest, age doesn't help either. And the old days come after the young days.
Age definitely helps if you want to become a historian. Math may get harder, but you the stories get better. Schroedinger noticed that aging physicists don't become historians but biologists. In any case, most old people realize that they had spent their life on a wrong science.
The wrong science, is that so?
Of course there's the "young man's game" quote, but I always mostly thought it's because people get to get kids and then a lot of time is fixed for that effort.
dusko said:
If you see anything of conceptual consequence in Eilenberg's approach to automata, whether it became popular or not, I will listen. I even did my best to read the manuscript of vol 3, which is somewhere on the web...
This has already been answered previously, but really, I'm wondering if you're asking in good faith. (Though there might be a culture shock: as an undergrad, I learned about syntactic monoids in my theory of computation course, so this stuff always seemed like a classical TCS topic.) I mean, look at the program of any recent edition of LICS or ICALP, and you will find several papers using the tools of algebraic language theory.
I'm not even going to argue about "applications to software testing". This stuff is super interesting as pure math. Do you believe finite group theory is "of any consequence", intellectually speaking? Would it still be relevant if there were no applications to e.g. chemistry? If so, then why would finite monoids be fundamentally less worthy than finite groups?
To work on automata instead of complexity theory is not "to misunderstand what computation is about", it's just focusing on a field where you can actually prove separation results.
A field where a lot of stuff is computable, too: for instance the decidability of Monadic Second-Order Logic over various infinitary structures is among the most powerful decidability results that exist in the theory of formal verification (but to be fair it doesn't always lead to practically tractable algorithms). Algebraic approaches have something to say about this, for instance they can give a proof of McNaughton's determinization theorem, and the latter is useful to synthesize stream transducers from MSO specifications (the so-called Church synthesis problem - is Alonzo Church also one of those guys whose later work is of no consequence?).
I think the suggestion was more that the work Eilenberg did ended up not having much impact on automata theory. My sense was that it might have, but honestly I don't know the field enough to say! Also, it may be that it should have, but did not, or it may be that it did have such an impact, but only indirectly or... etc.
Well, for example Eilenberg's variety theorem is pretty important in justifying the idea of algebraic language theory: it tells you that well-behaved classes of finite monoids correspond exactly to well-behaved subclasses of regular languages.
I interpreted (perhaps wrongly) @dusko as saying more generally that using algebraic tools in automata theory was not interesting. That is of course a subjective judgment, but at least there are enough people who find that interesting to keep the field active to this day.
I sensed another thing at work: Eilenberg's work in algebraic topology was so incredibly important to mathematics that one might hope his work in computer science would be equally important. I don't think it's that important.
But I don't think we should be surprised, after someone does something truly amazing, that the next thing they do is less amazing.
In other words, I don't think it requires any special explanation.
OK, that I can agree with :smile: It's just the regression towards the mean of a random variable :p
Nguyễn Lê Thành Dũng said:
I interpreted (perhaps wrongly) dusko as saying more generally that using algebraic tools in automata theory was not interesting. That is of course a subjective judgment, but at least there are enough people who find that interesting to keep the field active to this day.
If you were wrong in your interpretation, I don't want to be right. Maybe it was meant as a humorous dig, but I'd go with John by saying that just because Eilenberg struck out with category theory doesn't mean that he should be expected to revolutionise automata theory. And I do think that applications to software testing are significant and often overlooked.