3 Schedule

Class

 

Files

 

Notes

Jan 31, Feb 5

 

ProofsAndPrograms [v,html]

 

An Introduction to the Coq proof assistant

Feb 7

 

Datatypes [v,html]

 

Common Coq Datatypes and Recursion

Feb 12

 

Induction [v,html]

 

Recursive and Inductive Proofs

Feb 14

 

Lists [v,html]

 

Reasoning about lists and other datatypes

Feb 19

 

Poly [v,html]

 

Polymorphism

Feb 21

 

Tactics [v,html]

 

Useful Coq tactics

Feb 26

 

Logic [v,html]

 

More Logic, Proofs in Programs

Feb 28

 

IndProp [v,html]

 

Inductive Propositions and Reflection

Mar 5

 

Maps [v,html], Imp [v,html]

 

Embedding Programs in Coq

Mar 7

 

Imp (cont), Auto [v,html]

 

More Imp, Automation

Mar 12,14

 

Equiv [v,html]

 

Program Equivalence

Mar 26

 

Midterm [pdf]

 

Solutions[pdf,v]

Mar 28, Apr 2

 

Hoare [v,html]

 

Hoare Logic

April 2

 

Project Proposals Due

 

Submit via ELMS

April 4

 

Hoare2 [v,html]

 

Hoare Logic in Practice

April 9

 

Smallstep [v,html]

 

Small step program semantics

April 11

 

Types [v,html]

 

Types, Progress and Preservation

April 16

 

STLC [v,html]

 

Simply Typed Lambda Calculus

April 18

 

More STLC [v,html]

 

STLC continued

April 23

 

Reals.v,Complex.v

 

Real and Complex arithmetic

April 25

 

Matrix.v

 

Matrices, Relations and Morphisms

April 30

 

Quantum.v

 

Quantum Computing

May 2

 

SQIMP.v

 

A Small Quantum IMP

May 7

 

Typeclasses [v,html]

 

QuickChick 1: Typeclasses

May 9

 

QuickChick [v,html]

 

QuickChick 2: Random Testing

May 14

 

Euterpea in Agda, Dining Philosophers, Liquid Structures

 

Student Presentations

May 14

 

Postscript

 

Recap and Resources

Before every class, the Coq (.v) and HTML versions of the lecture materials will be available above. Students are encouraged to follow along inside, ideally within ProofGeneral. After every class, the files will be updated with additional exposition and exercises. Those are due before class on the following Tuesday; please submit via ELMS.