Securing Software: Languages
Goals
- Verification
- Explain what it means to verify a program
- Understand basic techniques for program verification
- Calculate a weakest precondition
- Be prepared to verify a program in recitation
Verification
- Why can’t program analysis be sound and complete?
- How does verification circumvent this result?
- How can you specify that a program is correct?
- What is a valid Hoare triple?
- What is the definition of a weakest precondition?
- How can we calculate a weakest precondition?
- How are weakest preconditions used in verification?
-
What are some limitations of verification?
- Dafny
- What kinds of properties is Dafny designed to verify?
- How do Dafny methods differ from Dafny functions?
- How does Dafny handle assertions?
- How does Dafny handle loops?
- What is framing, and how is it handled in Dafny?