Theoretical foundations Raamsdonk - Logical Verification Course notes