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 
 Propertybased Testing 
 
4/11 
 Randomtest 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 bstworks.agda 
 
5/21 
 Termination 
 
5/23 

 
5/28 
 Project Presentations 
 
5/30 
 Project Presentations 
 
6/04 
 Project Presentations 
 
6/06 
 Project Presentations 
