Foundations of software
CS-452
Recommended exercises per module of the class:
This page is part of the content downloaded from Recommended exercises per module of the class: on Monday, 30 June 2025, 16:54. Note that some content and any files larger than 50 MB are not downloaded.
Page content
Exercise numbers refer to the book "Types and Programming Languages" by Benjamin Pierce.
Week 1 and 2 (Basic math + arith language):
3.5.13, 3.5.15, 3.5.17
Might consider also: 3.5.14, 3.5.18
Week 3 and 4 (Basics of lambda calculus - representation and programming):
5.2.1, 5.2.4, 5.2.6, 5.2.11, (5.3.8 done too quickly in end of lecture 4)
Week 4,5,6 (typing)
8.2.3, 8.3.6, 9.3.2 (done in class), 9.3.3, 9.3.4, 11.9.1
Week 7 (Recursion)
11.1.1
Week 8 (State)
13.4.1,13.5.2Week 9 (System F)
23.4.3, 23.4.4, 23.4.12
Week 10 (Subtyping)
15.2.2, 15.2.3, 15.5.2, 16.2.3
Week 11 (Objects)
18.6.1
Week 12 (CoC, not in TAPL)
(Last week's project/lab should also be doable on paper)
Write a lambda term of type :
forall {α β : Type u} {x y : α} (h_leq : LeibnizEq x y) (f : α -> β), LeibnizEq (f x) (f y)