For a new year's promise, I decided that I'd make a serious effort to learn and make use of a formal method of specification and/or verification in a software project. Therefore, ITT we discuss formal methods and their application to software development.
So far, I've looked at the Z notation from the free-to-read manual, and it seems like something I could understand -- it's similar to pure functional programming but with sets instead of lists and more abstract typing. This could be a valuable documentation tool.
wtf?