World’s first formal machine-checked proof of a kernel
nicta.com.au
nicta.com.au
http://ertos.nicta.com.au/research/l4.verified/proof.pml
I think it's very good in terms of being very honest and up front about the limits of confidence provided by formal proofs (which is not just applicable to this project, but to all attempts at formal verification).
If any of these proofs is not proving what one wanted (either, because it is wrong, or because they prove something you did not want (potentially in very, very subtle ways)), your entire proof collapses. This is pretty much the danger of proving things.
A very interesting application can be found in the game 'singularity'. In this game, you are an artificial intelligence, and after enough studies of math and psychology, you can create a proof that no AI can ever exist. However, this proof contains a very, very, very subtle bug, which will stay hidden forever, probably.
So, stay aware that your proofs stand on a boatload of assumptions and other proofs and they might (in a rare, esoteric case) collapse and everything will be fine :)
Within a system like Isabelle, the formalisation of each piece of the proof must remain relatively consistent with both the built-in proofs about fundamental mathematical structures, as well as the proofs that you have written.
I say "relatively consistent" because I don't have enough experience with the internals of Isabelle to say with certainty as to exactly how consistency is enforced. I know that types are enforced in a globally consistent way, for example.
That said, I have a high degree of confidence in the correctness of machine-checked proofs.
So I understand that your point is that you're taking some leaps of faith, and I agree to a point, but I think they are much more reasoned and considered leaps than you suggest.
Darn. I wanted to have a play with it.
That is a really cool achievement. Bring on bigger formally-verified projects!
Just in case - perhaps you will also enjoy playing with the non-verified L4?
But I agree it would be very interesting to find out what the differences are, and whether substantial changes were required in order to do this kind of formal verification.
I do find this interesting though, L4 is an interesting microkernel (and one I've played with before).
You might be thinking of Coyotos, which seems to have been abandoned.
Er, 2038? You'll get a nice overflow at that point on a 32-bit machine.
<speculation> The L4::Pistachio kernel provides direct access to high-resolution hardware timing interrupts, though the secure variant may restrict some timer access in order to prevent covert timing channels between threads in different security contexts. </speculation>
There are hard real-time variants of L4 out there, but unless that was a primary goal of the NICTA team, I don't think you're likely to see many copies of that kernel running a ballistic missile's avionics package.
A verified secure OS kernel like this would more likely be used as a substrate for building secure servers and workstations, network routers, or mobile communications devices.