Graphical Theories of Interactive Systems: Can a Proof Assistant Help?

Computer scientists are privileged, or doomed, to deal rigorously with large structures. This happens, of course, with hardware design and verification, and with programs and specifications. Considerable progress has been made with mechanised proof assistance for both. Going further into the back room, programming languages are also big structures. It’s very uncommon to have help from a proof assistant while actually designing a language, probably because the very formalism for writing down what a language means is changing under our feet, so it’s asking too much for those who build proof assistants to keep up with these developments enough to help the designers in real time. All the same, it has been encouraging to see plenty of post hoc verification of properties of Standard ML using its semantic formalism. Perhaps a future language design using “big step structure operational semantics” could be done using proof assistance to check out the sanity of a large set of inference rules before they are frozen into a design.