This is an old revision of the document!
Program Semantics, Hoare Logic, Generating Proof Obligations
From Programs to Formulas
Simple Programming Language - A Turing-complete imperative language which we will use to illustrate verification.
Relational Semantics - Specifying meaning of programs using relations, their composition, union and transitive closure.
Hoare Logic - Verifying programs by writing sufficient assertions in program code, Weakest Preconditions, Strongest Postconditions.
Generating verification conditions - Applying Hoare logic ideas to convert annotated programs into formulas