Thinking Programs Logical Modeling and Reasoning About Languages, Data, Computations, and Executions 13 b/booknew •