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.2

Week 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)