Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers
by Leslie Lamport
Read this book on Feynman