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

Reply via email to