Cypherpunks, I've been having a lot of fun reading up on "category theory," a relatively new branch of math that offers a unified language for talking about (and proving theorems about) the transformations between objects. I'll say a few words on why this is more than just the "generalized abstract nonsense" that some wags have dubbed category theory as.
I won't try to explain what categories and toposes are here in this e-mail message. For one thing, it would take a while. For another, there are people who've been doing it for a long time who are good teachers, and they've written good explanations. Most importantly, because the Web has plenty of good resources, even complete downloadable textbooks in PDF and PS form. For example, here a couple of good sites: * as always, Google: search on "category theory" or "topos" (beware the lit-crit meanings) * http://math.ucr.edu/home/baez/ John Baez (a cousin of Joan) is a mathematical physicist with wideranging interests...his site has all sorts of good stuff * http://plato.stanford.edu/entries/category-theory/ A Stanford Encyclopedia article on what category theory is * http://dmoz.org/Science/Math/Algebra/Category_Theory/ A page of links to other pages * several good textbooks, which I'll talk about later Category theory is basically about the common categories (sets, topologies, algebras, recursively-computable functions, stuff even from computer science) and the diagrams that link them. There's more to it than just saying "it's about talking about diagrams." It's a more unified way of looking at "patterns" (no one that I know of has made the connection between CT and pattern languages of programming (PLOP), a la the Gang of Four (authors of the famous book), but I will be surprised if there is not a deep link to be found there. "Category theory is about how mathematicians draw diagrams on the blackboard." A waggish, snide comment, but true. (Motivation for reading further: and what is it that we do when we draw diagrams showing Alice, Bob, and Eve with various kinds of arrows linking them?) First, a couple of motivations for why I've been looking at this stuff: 1. The pure math side. I didn't specialize in math, but have good memories of studying analysis (of the Rudin/Kelley sort, involving point sets, covers, compactness, Tychonoff's Theorem, etc.). This was back in the early 70s, and the application of abstract math to my then-interest, physics, seemed to be too much of a reach. (Applying math is not the sina qua non of studying math, of course, even to physicist folks. But seeing that Reality somehow _involves_ topology, or fiber bundles, or sheaves, or toposes...well, that adds some excitement.) 2. Recent trends in higher-order categories (K-categories) seem to have connections to knot theory, superstrings, the work of guys like Witten and Smolin. The Baez site above talks about these connections at length. One of the reasons I basically got out of pure physics was that there were two main paths: particle physics and relativity. Particle physics in the 70s was not too exciting, in terms of fundamental insights. Feynman characterized it as "building bigger accelerators to smash wristwatches together at higher and higher speeds to get more little pieces to catalog." (I'm paraphrasing.) Relativity was exciting--I took James Hartle's class using a preprint edition of Misner, Thorne, and Wheeler's massive tome, "Gravitation." Motivated me to look at differential forms (Flanders) and differential geometry. But I sensed that I wasn't going to be one of the tiny handful of people able to actually get _jobs_ doing this, so I moved into solid-state, and thence to Intel. But the recent work on supergravity, loop spaces, knot theory, strings, M-branes, etc., has re-ignited some interest...at the "amateur" level, needless to say. 3. Reading Greg Egan's recent SF novels. A lot of intriguing, though of course ultra-speculative!, stuff on "all topology models." Egan is obviously plugged-into a lot of this stuff and is making daring leaps. Highly unlikely to be true, but as "inspiring" as similar leaps were in the Golden Age of SF when Klein bottles and Moebius strips figured into stories (notably by Arthur C. Clarke) and where the wormholes and hyperspace geometries of general relativity were plot elements. (The fact that the "warp drives" described in 1950s-era science fiction, and later used in "Star Trek," weren't plausible in any serious way didn't reduce their inspirational/pedagogical value.) 4. Perhaps even more strangely, but more practically, there may be some very interesting uses for Cypherpunks visions. Weirder than Baez, weirder than Egan...in some ways. The basic insight is that just as category theory is about "objects/things" (called categories) and the "transformations/functions" (called arrows) between them, this is what a lot of crypto protocols are. (Note that I'm not explicitly talking about object-oriented programming, a la Java or Smalltalk, but more about viewing crypto protocols are transformations.) The fact that we use "Alice and Bob" diagrams, with "Eve" and "Vinnie the Verifier" and so on, with arrows showing the flow of signatures, or digital money, or receipts....well, this is a hint that the category-theoretic point of view may be extremely useful. (At other levels, it's number theory...the stuff about Euler's totient function and primes and all that. But at another level it's about commutative and transitive mappings, and about _diagrams_.) (Long-time readers will know that this "ontology of objects," this "CryptoWorld," point of view has motivated and interested me for a long time. Crypto protocols as building blocks...but more than in a "shared library" or even a class library sense. ) Are these audacious, even wild, ideas? Yes. Anytime a theory is seen as a Theory of Everything, there are reasons to be skeptical. But audacious goals are often the motivation for we mammals who seek to figure things out...even with reptilian aspects to our brains ("If I solve Fermat's Last Theorem I'll be famous and I'll get the chicks!"). Are there dangers? You bet. Physics, and even math, is littered with crankish theories by amateurs...and even by experts. We have Archimedes Plutonium and his high bullshit about the universe being a large Pu-236 atom. We have various Buddhist/quantum mechanics/Bell's Theorem bits of nonsense...even entire books on this mystical stuff. And so on. And in areas closely-related to many Cypherpunks topics, I can think of several examples where overly-broad claims have been made for some theory or paradigm and how it solves many problems: * "general semantics," the Korzybski work which led to "the map is not the territory." Much-quoted by SF authors like Heinlein. But not the Theory of Everything. And maybe not even a theory of much at all. * "general systems theory," a la Bertanlanffy. I knew a guy who was majoring in this as an interdisciplinary self-study program. Whatever became of this? (And this is kissing cousin to Operations Research, which is mostly a high bullshit term for linear programming, decision support tools, a little bit of game theory, etc.) * "game theory." We all know that most human and complex system interactions have strong game-theoretic aspects. Cooperation, defection, Prisoner's Dilemma, Axelrod, etc. But thinking that "all crypto is basically game theory" has not been fruitful, so far. * the whole ball of wax that is complexity, fractals, chaos, self-organized criticality, artificial life, etc. Tres trendy since around 1985. But not terribly useful, so far. * AI. 'Nuff said. We all know intelligence is real, and important, but the results have not yet lived up to expectations. Maybe someday. * object-oriented systems. In my view, this one _has_ basically lived up to its billing, largely because it works for building more complex systems (and is arguably how Mankind has usually built complex systems like bridges and skyscrapers and chips). But some of the bolder claims about "reusable software" and "software ICs" have yet to be realized. * agoric, market-oriented approaches. I'm still very hopeful about this one. I could go on...I'm thinking of several more examples, but this is enough of a list. The point is not that the above paradigms/theories are _wrong_, rather, that none of them is a complete solution, a Theory of Everything. Nor would we expect some sage elder to whisper in our ear "Plastics!" as the answer to everything. If category theory is "sort of obvious," what about topos theory? Ah, this is where it gets more exciting. A topos is a category imbued with additional properties. One might have a topos which generates time-dependent logical values (something is true today but will not be true tomorrow), a topos which captures much of relativity, a topos for digital financial transactions. But I'm just digging into this stuff, so I might be giving this view too much emphasis. (I plan to stay at the somewhat more audacious level...as I can afford to. The grad student struggling to pass his qualifiers and generate a thesis that will get him a job somewhere is much more inclined to plunge into some "safe but suitably complicated" subdomain. Me, I have no such interest. I just need to stay grounded enough in reality so that drifting into either nebulosity or crankdom is avoided.) OK, time to wrap this up. Am I making the same mistake in thinking category theory is some kind of uber-theory which unifies and connects disparate areas? Well, I plan not to let my exuberance drag me off into the fever swamps of crankishness. My hope is that I have generally been well-grounded in engineering, with a bias toward abstractions, and that this grounding will keep me from making weird claims. Also, I know when to cut my losses. If this little journey ends in a few more months with me knowing more about Kan extensions and cohomology theory, and nothing else, so be it. It'll be a fun ride. BTW, if anyone wants to talk about these things, drop me a line. E-mail is not so good for communication...and sometimes in-person meetings are even _worse_. (As typified by some Cypherpunks meetings, where some speaker drones on and nearly everyone is sitting spaced out at the picnic tables at Tressider! {humor). The fact is that a lecture on number theory is going to require some background, more so than most Python hotshots are likely to have. Ditto for other areas. No different in physics, where trying to talk about gravity, for example, would barely scratch the surface in a 45-minute talk. Physics 1 meets 2-3 days a week for 10-15 weeks, and barely gets past the laws of mechanics. And so on. A real course, with background reading, is needed to get into any depth in a subject. Here's what I'm now reading: * three intros of varying depths: Lawvere's excellent "Conceptual Mathematics: A First Introduction to Categories," Pierce's "Basic Category Theory for Computer Scientists," and McClarty's "Elementary Categories, Elementary Toposes." Lawvere was one of the pioneers of topos theory (he showed that toposes could serve as an alternative to the sets in the axiomatization of mathematics) and this recent book is readable even by gifted high school students. Maybe too basic, except one can _never_ be too basic. Pierce is more oriented toward standard definitions, but is very readable. McClarty is much more advanced. I bounce between the three, and Web sites, and dips into the other books. * some heavy-duty reference books: Saunders Mac Lane's classic "Category Theory for the Working Mathematician." Mac Lane, of "Birkhoff and Mac Lane" fame (algebra), was one of the co-inventors of category theory, with Eilenberg, in 1945. This book is too advanced for self-study, for me, at this time. I dip into it to get a flavor of more advanced proofs. But I need to brush up on my abstract algebra (Herstein, maybe Lang), topology (Munkres, maybe Kelley), and algebraic topology (Hatcher, Peter May (no relation to me)), and a few other areas. Also, Goldblatt's "Topoi." Several of these books I own. Others I use at the UC Santa Cruz library...one of the benefits of living where I do. Well, I'm running out of steam and don't even plan to make a final pitch that you folks ought to take a look at this stuff. Frankly, most of you have to think about jobs in the real world, and, unless you plan to be mathematicians or string theorists, I doubt learning this stuff would be very useful in helping you to write better Java or Python code, or managing browser plug-ins. Maybe reading the Lawvere book would be useful and fun, though. It's about $40, paperback, and is a relatively easy read. If this lights your fire, you can go on to other books. Or at least always have "the categorical outlook." Amaze your friends, impress your enemies! --Tim May -- Timothy C. May [EMAIL PROTECTED] Corralitos, California Political: Co-founder Cypherpunks/crypto anarchy/Cyphernomicon Technical: physics/soft errors/Smalltalk/Squeak/agents/games/Go Personal: b.1951/UCSB/Intel '74-'86/retired/investor/motorcycles/guns Recent interests: category theory, toposes, algebraic topology