Proving Properties of Programs with Mechanized Logic
1 When and Where
We meet every Tuesday and Thursday from 11pm to 12:20pm in Searle 1441. Schedule provides more details for each meeting.
Use Piazza for discussion about the class.
2 What
In this class we will explore properties that programs can have, first focusing on stating them in a precise and checkable way. As the quarter progresses, we will explore how to prove they are correct using Agda.
3 How
You will be expected to solve homework assignments that test your understanding of the concepts and then design (in consultation with the instructor) a final project where you state and prove a property of a program.
4 Schedule
When |
| What |
| Homework |
4/02 |
| Introduction & our First Properties |
| |
4/04 |
| Contracts |
| |
4/09 |
| Property-based Testing |
| |
4/11 |
| Random-test Driven Development |
| |
4/16 |
| Exploring some Properties |
| |
4/18 |
| Type Systems |
| |
4/23 |
| A Proof |
| |
4/25 |
| Introduction to Agda |
| |
4/30 |
| Working with Numbers |
| |
5/02 |
| More with Numbers |
| |
5/07 |
| Lists |
| |
5/09 |
| Lists (cotd), Internal Verification, Nonzero |
| |
5/14 |
| Binary Search Trees bst.agda |
| |
5/16 |
| Correctness of BSTs bst-works.agda |
| |
5/21 |
| Termination |
| |
5/23 |
|
| ||
5/28 |
| Project Presentations |
| |
5/30 |
| Project Presentations |
| |
6/04 |
| Project Presentations |
| |
6/06 |
| Project Presentations |
|