Skip to content

Commit 4f8a681

Browse files
authored
Create 2025-04-05-mltt-72.md
1 parent 0c73adb commit 4f8a681

1 file changed

Lines changed: 81 additions & 0 deletions

File tree

_posts/2025-04-05-mltt-72.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
To start learning MLTT-72 (Martin-Löf Type Theory from 1972), you'll need a minimal foundation in:
2+
3+
1. Basic mathematical logic - understanding of logical connectives, quantifiers, and proof techniques
4+
2. Set theory fundamentals - familiarity with sets, functions, and basic operations
5+
3. Some exposure to the lambda calculus - the notation and concept of function abstraction
6+
4. Understanding of the concept of types in programming languages
7+
8+
You don't need deep expertise in any of these areas to begin.
9+
The most important prerequisite is comfort with mathematical notation and abstract thinking.
10+
11+
If you're completely new to type theory, I'd recommend starting with:
12+
- An introductory text on logic
13+
- Basic functional programming concepts
14+
- Familiarity with the idea of formal systems
15+
16+
### Foundational Resources:
17+
18+
1. **"Programming in Martin-Löf's Type Theory" by Bengt Nordström, Kent Petersson, and Jan M. Smith** - A classic introduction that's freely available online.
19+
20+
2. **"Type Theory and Functional Programming" by Simon Thompson** - Available free online, provides a gentle introduction to type theory and its connection to programming.
21+
22+
3. **"Proofs and Types" by Jean-Yves Girard** - A concise introduction to the connection between proofs and types.
23+
24+
### Online Courses and Lecture Notes:
25+
26+
1. **Robert Harper's "Practical Foundations for Programming Languages"** - Contains sections on type theory that are very accessible.
27+
28+
2. **The Oregon Programming Languages Summer School (OPLSS)** - Their recorded lectures often include excellent introductions to type theory.
29+
30+
### Supplementary Materials:
31+
32+
1. **"Lambda Calculus and Types" by Henk Barendregt** - For understanding the lambda calculus foundation.
33+
34+
2. **"Introduction to Dependent Type Theory" lecture notes by Herman Geuvers** - Helps bridge from simple type theory to dependent types.
35+
36+
### Software Tools to Experiment With:
37+
38+
1. **Agda** - A dependently typed programming language based on Martin-Löf Type Theory.
39+
40+
2. **Coq** - While based on the Calculus of Inductive Constructions, it shares many concepts with MLTT.
41+
42+
### Phase 1: Foundations (2-3 weeks)
43+
1. Start with Simon Thompson's "Type Theory and Functional Programming" - Read chapters 1-3
44+
- Focus on understanding the correspondence between logic and types
45+
- Practice the simple exercises to reinforce concepts
46+
47+
2. Supplement with selected chapters from "Proofs and Types" by Girard
48+
- Read the first two chapters for a different perspective
49+
- Pay special attention to the Curry-Howard correspondence
50+
51+
### Phase 2: Core MLTT Concepts (3-4 weeks)
52+
1. Return to Thompson's book for chapters 4-6
53+
- Study the rules of type formation, introduction, and elimination
54+
- Work through examples of dependent types
55+
56+
2. Begin with "Programming in Martin-Löf's Type Theory" by Nordström et al.
57+
- Focus on chapters 1-3 for the formal presentation
58+
- Pay close attention to the judgment forms and inference rules
59+
60+
### Phase 3: Practical Implementation (2-3 weeks)
61+
1. Install Agda and work through the "Programming Language Foundations in Agda" tutorial
62+
- Start with simple type definitions
63+
- Implement basic proofs to see type theory in action
64+
65+
2. Study Philip Wadler's "Propositions as Types" paper (freely available online)
66+
- This connects the theory to practical programming concerns
67+
68+
### Phase 4: Advanced Concepts (4+ weeks)
69+
1. Complete Thompson's book, focusing on chapters 7-9
70+
- Pay special attention to universes and higher-order concepts
71+
72+
2. Work through the remaining chapters of "Programming in Martin-Löf's Type Theory"
73+
- Focus on the implementation of various mathematical concepts
74+
75+
3. Explore Robert Harper's "Practical Foundations for Programming Languages"
76+
- Chapters related to type theory will deepen your understanding
77+
78+
Throughout this process, I recommend:
79+
- Implementing examples in Agda as you learn concepts
80+
- Discussing concepts in online forums like the Types Forum or Agda mailing list
81+
- Revisiting earlier material as needed - type theory concepts build on each other

0 commit comments

Comments
 (0)