1 When and Where
2 What
3 How
4 Schedule

Proving Properties of Programs with Mechanized Logic

Robby Findler

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

Assignment 1

4/09

Property-based Testing

4/11

Random-test Driven Development

4/16

Exploring some Properties

Assignment 2

4/18

Type Systems

4/23

A Proof

4/25

Introduction to Agda

Assignment 3

4/30

Working with Numbers

5/02

More with Numbers

Assignment 4

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

Assignment 5

5/21

Termination

5/23

Assignment 6

5/28

Project Presentations

5/30

Project Presentations

6/04

Project Presentations

6/06

Project Presentations

Assignment 7