Introduction.- Programming and Proving.- Case Study: IMP Expressions.- Logic and Proof Beyond Equality.- Isar: A Language for Structured Proofs.- IMP: A Simple Imperative Language.- Compiler.- Types.- Program Analysis.- Denotational Semantics.- Hoare Logic.- Abstract Interpretation.- App. A, Auxiliary Definitions.- App. B, Symbols.- References.