Proof by example

Valar morghūlis. Socrates vale issa. Socrates morghūlis.

I recently read the amazing idea that, in order to adequately represent the gravity of nuclear war, America's nuclear launch codes should be stored inside the chest of a volunteer who accompanies the president at all times. To trigger the annihilation of the known world, the president would first have to butcher that volunteer with a knife. If you can't even kill one person, how can you order the deaths of millions?

Much earlier, I saw a very disappointing scene in the series Long Way Round, where Ewan McGregor and Charley Boorman have been given a lift through the worst of far-eastern Russia by some Russian truckers. The truckers stop to shoot a bear that has wandered onto the road, and McGregor loses it, wondering how they could kill a poor defenseless animal. Of course, he was eating meat the whole trip, but that was different because he didn't have to watch those animals die; someone else did that for him.

Alhough I eat meat, I think a reasonable price of entry to be part of carnivore club is to kill an animal yourself. Not every animal you eat, obviously, but at least one. I admit that I haven't done this mostly because of practicality, but if the opportunity came up I'd be willing to commit to either killing an animal with my own hands or giving up meat. Christopher Hitchens once accepted a similar challenge over his belief that waterboarding isn't torture. After being waterboarded he immediately changed his mind, which I respect a great deal.

I sometimes think about the abstractions we have in software and how blindly we accept them. It's so easy to write code up here in the clouds, but your modern web app is built on a web framework, on a programming environment, on a web browser, on another programming environment, on an operating system, on yet another programming environment, on CPU microcode that ultimately comes down to a bunch of transistors. Are you sure you're happy with all those tradeoffs? Did you even make them deliberately?

And lastly, what about all the conveniences of modernity, built from abstractions implemented on top of other people's lives? Alain de Botton's The Pleasures and Sorrows of Work pulls at a few of these threads, following a fish from its capture in the Maldives to its final resting place on a plate in Bristol via maybe 5 distinct businesses, among other examples. How many of us even know how to catch a fish, transport it, or package it for sale? It's so easy to pay someone else to do these things that unless you're Alain de Botton you probably don't even think about them.

But I think that to some extent we owe it to ourselves to challenge these abstractions, to ask them to prove their value. Write your own programming language, grow your own food, make your own furniture. I'm sure your attempts won't be that good, but at least you'll be knowingly rather than blindly accepting these abstractions. And if it came to it and you wanted to start over, wouldn't it be good to you know that you could?

I think of this idea as proof by example. That term is often used to describe the logical fallacy of generalising from a single example, but in this case I think of it as more of a kick-the-tires test that your generalisation should easily pass. Killing innocent people is sometimes justified? It's better to pay someone else to catch your fish? Operating systems are a good idea? These are all things that could well be true, but surely it's not too much to ask for a simple demonstration.