Software Abstractions - Logic, Language, and Analysis

Daniel Jackson. Software Abstractions - Logic, Language, and Analysis. MIT Press, 2006. [doi]