## Surreal Arithmetic (Edited rerun)

In my last post on the surreals, I introduced how the surreal numbers are constructed. It's really fascinating to look back on it - to see the structure of numbers from 0 to infinity and beyond, and realize that ultimately, that it's all built from nothing but the empty set!

Today, we're going to move on, and start looking at arithmetic with the surreal numbers. In this post, I'm going to go through the basic definition of addition, subtraction, and multiplication of surreal numbers. Division will have to wait for a later post; division is quite a subtle operation in the surreals.

## Introducing the Surreal Numbers (Edited rerun)

Late last summer, shortly after moving to ScienceBlogs, I wrote a couple of posts about Surreal numbers. I've always meant to write more about them. but never got around to it. But Conway's book actually makes pretty decent train reading, so I've been reading it during my new commute. So it's a good time to take a break from some of the other things I've been writing about, and take a better look at the surreal numbers. I'll start with an edited repost of the original articles, and then move into some new stuff about them.

So what are surreal numbers?

Surreal numbers are a beautiful set-based construction that allows you to create and represent all real numbers in a simple elegant form that has the necessary properties to make them behave properly. In addition, the surreal number system allows you to create infinitely large and infinitely small values, and have them behave and interact in a consistent way with the real numbers in their surreal representation. And finally, it makes the infinitely large numbers as natural a part of the number system as any other number: there's nothing about the construction of an infinitely large number that makes its construction any different from a perfectly reasonable real number like 1/3.

## More Stupid Tautology Arguments from Dr. Egnor

So over at the DI whiners blog, Egnor is, once again, trying to pretend that he's actually making a case for why evolution is irrelevant to antibiotic resistance. It's really getting silly; he repeats the same nonsense over and over again, desparately doing the rhetorical version of sticking his fingers in his ears and shouting "La La La! I can't hear you!":

## The Kripke Model for Intuitionistic Logic

As promised, today, I'm going to show the Kripke semantics model for intuitionistic logic.

## Casey Luskin, Proud Idiot

So, over at the DI's media complaints department (aka evolutionnews.org), it appears that Casey Luskin has noticed how we SBers have managed to tear apart his buddy Dr. Egnor. Given that we did it so thoroughly, though, there's no legitimate way to defend him. He's repeatedly made incredibly idiotic statements, and many people have, quite rightfully, called him on the stupidity of his statements, the degree of ignorance that he's demonstrated, and his astonishing arrogance as he spouts nonsense.

But since when have Casey and friends at the DI ever worried about doing the right thing? Or responding to any kind of argument in a legitimate way?

So for humour's sake, I thought I'd address the part of Casey's post that was directed at me.:

## Kripke Semantics and Models for Intuitionistic Logic

To be able to really talk about what a logic (or a calculus) means, you need to define a model of that logic. A model is a way of associating entities in the logic/calculus with some kind of real entity in a way where all statements in the logic about the logical entity will also be true about the real-world entity. Models are incredibly important, because it's relatively easy to design a logic which looks as if it's perfectly valid, but which contains some subtle error which leads to it being essentially meaningless - showing a model for a logic guarantees that that can't happen.

## Intuitionistic Logic (partial rerun)

I'm incredibly busy right now adjusting to my new job and my new commute, which is leaving me less time than usual for blogging. So I'm going to raid the archives, and bring back some interesting things that appeared on the old Blogger blog, but were never posted here. As usual, that will involve some cleanups and rewrites, so this won't be identical to the original posts.

I've written about logic before, and mentioned intuitionistic logic at least in passing. Intuitionistic logic is an interesting subject. Intuitionistic logic is a variation of predicate logic which is built on the idea that there should be a stronger notion of "truth" in logic: that the strict categorization of all statements in classical logic as either true or false is too strong. In intuitionistic logic, a statement is only true if you can prove that it is true. It is not enough to prove that it's opposite is false: In propositional logic, it is not the case that ¬¬P→P.

## More π-Calculus Games

Ok. So I'm still tweaking syntax, to try to find a way of writing π-calculus in a way that's

1. Sequential Composition: `Process1.Process2`.
2. Send expressions: `!channel(tuple).Process`
3. Receive expressions: `?channel(tuple).Process`
4. New channel expression `new(name,...) { Process }`
5. Process duplication expression: `*(Process)`
6. Parallel composition: `Process1 | Process2`.
7. Choice composition: `Process1 + Process2`.
8. Null process: `∅`

So, in this syntax, the final version of the storage cell from yesterdays post
is:

```NewCell[creator,initval]=new(read,write){ (Cell[read,write,initval]
```

Now, let's try to use π-calculus to do something that actually involves real concurrency.

## Programming with Shapes: Clunk

Today's bit of pathology is a really silly, and really fun language called Clunk, with a downloadable package containing a perl implementation here. I'm
not sure that it's Turing compete, but my best guess is that it is. It's another two dimensional
language, but it's very different from any of the other 2d languages that we've look at, because it
doesn't rely on an instruction pointer moving around the playfield; instead, it computes by
creating an image by fitting together pieces according to some pre-determined rules.