7400: iPPL (Fall 2024)

Schedule

The course schedule is in progress and subject to change.

Date Lecture Notes Additional Reading Code Due

Thu Sep 5 Overview

Mon Sep 9 Hutton's Razor PFPL Chapter 5,7 Hutton.agda
Thu Sep 12 Binding and Hypothetical Judgments PFPL 3,4,5 Binding.agda Course Intake Survey

Mon Sep 16 Structural and Rule Induction PFPL 1 RuleInduction.agda
Thu Sep 19 Type Soundness PFPL 6

Mon Sep 23 Type Soundness, Continued PFPL 6
Thu Sep 26 Simply-Typed Lambda Calculus PFPL 8,10,11

Mon Sep 30 Type Isomorphisms and Program Equivalence Frank Pfenning on Sum Types
Thu Oct 3 Type Isomorphisms and Program Equivalence (Continued) Frank Pfenning on Sum Types
Fri Oct 4 Assignment 1

Mon Oct 7 Propositions as Types (Part 1) Frank Pfenning on Natural Deduction
PFPL 12
Thu Oct 10 Propositions as Types (Part 2)
Recursive Functions (System T), intro
PFPL 9

Mon Oct 14 No Class (Indigenous Peoples' Day)
Thu Oct 17 Recursive Functions (Systems T and PCF) PFPL 9,19

Mon Oct 21 Recursion via Fixed Points (PCF) PFPL 19 Assignment 2
Thu Oct 24 Recursive Types PFPL 20
Frank Pfenning on Recursive Types

Mon Oct 28 Polymorphic Abstraction (System F) PFPL 16
Thu Oct 31 System F, Continued PFPL 16
Frank Pfenning on Polymorphism

Mon Nov 4 Parametricity I: Theorems for Free! Theorems for Free!, Phil Wadler
Thu Nov 7 Parametricity II Frank Pfenning on Parametricity
PFPL 48
Fri Nov 8 Assignment 3

Mon Nov 11 No Class (Veterans Day)
Thu Nov 14 Control Stacks PFPL 28, 29
Frank Pfenning on the K Machine

Mon Nov 18 Call by Push Value
Thu Nov 21 Mutable State
Fri Nov 22 Assignment 4

Mon Nov 25 Linearity Frank Pfenning on Linear Types
Thu Nov 28 No Class (Fall Break)

Mon Dec 2 Mechanizing Metatheory I IPPL.agda
Thu Dec 5 Mechanizing Metatheory II

Mon Dec 9 Project Presentations Final Mini-Projects
Thu Dec 12 Project Presentations (Last day of class)

Mon Dec 16 Final Grades
Thu Dec 19