A Formal and Foundational Approach to Program Verification for Safety and Security
Talk at Summer School on Security Testing and Verification (20-21-22 September 2022, Leuven, Belgium)
Abstract.
Formal program verification is an important approach to verifying safety and security of software systems. In this approach we define the semantics (i.e., the mathematical description of the behavior) of the program and specify programs' desirable properties, e.g., safety and security guarantees, in terms of their semantics. Program logics are formal mathematical tools (based on mathematical logic) which are used to establish that programs do indeed enjoy the aforementioned desirable properties. In this course, we will introduce the Iris program logic (https://www.iris-project.org) and discuss how it is used to specify and prove safety and security properties of software systems.
Download & Links
- Slides: [Iris and robust safety .pdf] [Aneris .pdf]
- Coq sources (shared memory examples): [shared_memory.v] [shared_memory_stronger.v]
- Coq sources (robust safety): [GitHub]
- https://iris-project.org