LARA

This is an old revision of the document!


Lecture 2: Background, Program Semantics and Hoare Logic

Continuing from Lecture01

More Background and Its Role in This Class

Predicate Logic Informally - We build on propositional logic from last lecture to explain first-order predicate logic.

Proofs and Induction - We make sure that we are all familiar with basic proof techniques, which we will study as formal rule systems later.

Theorem Prover - Theorem provers check proofs, automate proof search or use other methods to show formula validity.

Computational Complexity - Limits of algorithms for theorem provers and decision procedures, and vocabulary for expressing problem difficulty.

Compiler - Compilers help us understand how to deploy verification systems.

Sets and Relations - Some more background in preparation for program semantics.

From Programs to Formulas: Semantics and Hoare Logic

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.