Formal methods seemed like a good thing to learn about over breakfast today. As an unintended (but cheerful) side-effect, I rediscovered an extensive discussion on one of my favorite paradoxes. One quoting of Russell's paradox is that of the town where nobody can shave their own beards, they've got to be shaved by the barber - and now who shaves the barber's beard? The smart-aleck answer is nobody: the barber is a woman.

And this illustrates my worry as well as one of my fascinations with formal methods (or indeed, any other focused endeavor striving for some type of completeness). Instead of working through the system, can you sidestep or ignore it, climb in the window instead of picking the lock (or social-engineering your way to the key)? How do you deal with the knowledge that your system is side-steppable? You do formal verification of your code and it's absolutely rock solid and then all of a sudden the power goes out or some random cosmic rays from intergalactic alien warfare (look, the point of these examples is that they're supposed to be unexpected) flip a few crucial bits on your hard drive and now what?

In testing, there are the ideas of validation and verification - the latter being "have we made what set out to make?" and the former being "are we making the right thing?" Maybe you can know the second to some reasonable degree of certainty (or a known degree of uncertainty, at least). And it has to be enough that we have made our best effort for the first. (And the first is more important to know, but can't be known.)

(I'm not sure where this train of thought is headed.)

Part of my job - as an engineer, as a tester, as someone who teaches and someone who supports users - is to make things known, but I've found that I can only describe uncertainty sometimes, not so much reduce it. That a lot of uncertainty-reduction and security is marketing, or at the most a "it's still possible to break this, but it's easier to break (or looks like it is easier to break) the other guy's thing, so I'm pseudo-safe."

I wonder if I should be more worried that I'm not all that disturbed by this. Am I just being lazy thinking that uncertainty is ok, even fun? (Shouldn't I be working really, really hard to try to get rid of it? Unknowableness! Thou art the enemy!) And sure, sometimes I get onto these blazing, blinding paths of now I need to KNOW! and question marks splinter and scatter left and right before me... but I also like to watch them float around me, noticing all of the things that I (we, anyone) just Don't Get.

It was nice to find out later that I'm not the only one.

You see, one thing is, I can live with doubt and uncertainty and not knowing. I think it's much more interesting to live not knowing than to have answers which might be wrong. I have approximate answers and possible beliefs and different degrees of certainty about different things, but I'm not absolutely sure of anything and there are many things I don't know anything about, such as whether it means anything to ask why we're here, and what the question might mean.

I might think about it a little bit and if I can't figure it out, then I go on to something else, but I don't have to know an answer, I don't feel frightened by not knowing things, by being lost in a mysterious universe without having any purpose, which is the way it really is so far as I can tell. It doesn't frighten me.

--Richard Feynman

(I'm not sure where this train of thought ended up, either. I'm ok with that uncertainty.) (Also, my curried cauliflower is about to burn, so I must run and save it.)