Iowa Type Theory Commute
Aaron Stump talks about type theory, computational logic, and related topics in Computer Science on his short commute.
Episodes
170 episodes
The Locally Nameless Representation
I discuss what is called the locally nameless representation of syntax with binders, following the first couple of sections of the very nicely written paper "The Locally Nameless R...
•
Season 6
•
Episode 4
•
19:54
POPLmark Reloaded, Part 2
I continue the discussion of POPLmark Reloaded , discussing the solutions proposed to the benchmark problem. The solutions are in the Beluga, Coq (recently renamed Rocq), and ...
•
Season 6
•
Episode 3
•
13:59
POPLmark Reloaded, Part 1
I discuss the paper POPLmark Reloaded: Mechanizing Proofs by Logical Relations, which proposes a benchmark problem for mechanizing Programming Language theory.
•
Season 6
•
Episode 2
•
15:14
Introduction to Formalizing Programming Languages Theory
In this episode, I begin discussing the question and history of formalizing results in Programming Languages Theory using interactive theorem provers like Rocq (formerly Coq) and Agda.
•
Season 6
•
Episode 1
•
12:20
Turing's proof of normalization for STLC
In this episode, I describe the first proof of normalization for STLC, written by Alan Turing in the 1940s. See this short note for Turing's original proof and some historical comment...
•
Season 5
•
Episode 6
•
17:39
Introduction to normalization for STLC
In this episode, after a quick review of the preceding couple, I discuss the property of normalization for STLC, and talk a bit about proof methods. We will look at proofs in more detail in the coming episodes. Feel free to join the...
•
Season 5
•
Episode 5
•
9:39
The curious case of exponentiation in simply typed lambda calculus
Like addition and multiplication on Church-encoded numbers, exponentiation can be assigned a type in simply typed lambda calculus (STLC). But surprisingly, the type is non-uniform. If we abbreviate (A -> A) -> A -> A as Nat...
•
Season 5
•
Episode 4
•
7:29
Arithmetic operations in simply typed lambda calculus
It is maybe not so well known that arithmetic operations -- at least some of them -- can be implemented in simply typed lambda calculus (STLC). Church-encoded numbers can be given the simple type (A -> A) -> A -> A, for any simpl...
•
Season 5
•
Episode 3
•
9:56
More on basics of simple types
I review the typing rules and some basic examples for STLC. I also remind listeners of the Curry-Howard isomorphism for STLC.
•
Season 5
•
Episode 2
•
15:45
Begin Chapter on Simple Type Theory
In this episode, after a pretty long hiatus, I start a new chapter on simply typed lambda calculus. I present the typing rules and give some basic examples. Subsequent episodes will discuss various interesting nuances...
•
Season 5
•
Episode 1
•
15:41
Some advanced examples in DCS
This episode presents two somewhat more advanced examples in DCS. They are Harper's continuation-based regular-expression matcher, and Bird's quickmin, which finds the least natural number not in a given list of distinct natural numbers, ...
•
Season 4
•
Episode 19
•
23:16
DCS compared to termination checkers for type theories
In this episode, I continue introducing DCS by comparing it to termination checkers in constructive type theories like Coq, Agda, and Lean. I warmly invite ITTC listeners to experiment with the tool themselves. The repo is
•
Season 4
•
Episode 18
•
19:45
Getting started with DCS
In this episode, I talk more about the DCS tool, and invite listeners to check it out and possibly contribute! The repo is here.
•
Season 4
•
Episode 17
•
17:23
Introduction to DCS
DCS is a new functional programming language I am designing and implementing with Stefan Monnier. DCS has a pure, terminating core, around which monads will be layered for possibly dive...
•
Season 4
•
Episode 16
•
11:36
Semantics of subtyping
I answer a listener's question about the semantics of subtyping, by discussing two different semantics: coercive subtyping and subsumptive subtyping. The terminology I found in
•
Season 4
•
Episode 15
•
15:20
More on type inference for simple subtypes
I continue the discussion of Mitchell's paper Type Inference with Simple Subtypes. Coming soon: a discussion of semantics of subtyping.
•
Season 4
•
Episode 14
•
9:06
Subtyping, the golden key
In this episode, I wax rhapsodic for the potential of subtyping to improve the practice of pure functional programming, in particular by allowing functional programmers to drop various irritating function calls that are needed just to make type...
•
Season 4
•
Episode 13
•
9:13
Type inference with simple subtypes
In this episode, I begin discussing a paper titled "Type Inference with Simple Subtypes," by John C. Mitchell. The paper presents algorithms for computing a type an...
•
Season 4
•
Episode 12
•
13:27
Basics of subtyping
In this episode, I discuss a few of the basics for what we expect from a subtyping relation on types: reflexivity, transitivity, and the variances for arrow types.
•
Season 4
•
Episode 11
•
8:05
Begin chapter on subtyping
We begin a discussion of subtyping in functional programming. In this episode, I talk about how subtyping is a neglected feature in implemented functional programming languages (for example, not found in Haskell), and how it could be very...
•
Season 4
•
Episode 10
•
16:15
Last episode discussing Observational Equality Now for Good
In this episode, I conclude my discussion of some (but hardly all!) points from Pujet and Tabareau's POPL 2022 paper, "Observational Equality -- Now for Good!". I talk a bit about the structure of the normalization proof in the paper, whi...
•
Season 4
•
Episode 9
•
12:15
More on observational type theory
I continue discussing the Puject and Tabareau paper, "Observational Equality -- Now for Good", in particular discussing more about how the equality type simplifies based on its index (whi...
•
Season 4
•
Episode 8
•
13:43
Introduction to Observational Type Theory
In this episode, I introduce an important paper by Pujet and Tabareau, titled "Observational Equality: Now for Good", that develops earlier work of McBride, Swierstra, and Altenkirch (which I will cover in a later episode) on a new approach to ...
•
Season 4
•
Episode 8
•
10:10
Interjection: The Liquid Tensor Experiment
I pause the chapter on extensionality in type theory to talk about something very exciting that I just learned about (though the project was completed Summer 2022): the so-called
•
Season 4
•
Episode 7
•
12:24
Extensional Martin-Loef Type Theory
In this episode, I discuss the basic distinguishing rule of Extensional Martin-Loef Type Theory, namely equality reflection. This rule says that propositional equality implies definitional equality. Algorithmically, it would imply t...
•
Season 4
•
Episode 6
•
11:23