Iowa Type Theory Commute cover art

All Episodes

Iowa Type Theory Commute — 187 episodes

#
Title
1

Coercive subtyping and coherence

2

A Strange Deal, Explained

3

A Strange Deal

4

Great paper: The Calculated Typer

5

Double-negation translations and CPS conversion, part 2

6

Double-negation translations and CPS conversion, part 1

7

What are commuting conversions in proof theory?

8

What is Control Flow Analysis for Lambda Calculus?

9

Measure Functions and Termination of STLC

10

Schematic Affine Recursion, Oh My!

11

The Stunner: Linear System T is Diverging!

12

Terminating Computation First?

13

Correction: the Correct Author of the Proof from Last Episode, and an AI flop

14

Krivine's Proof of FD, Using Intersection Types

15

A Measure-Based Proof of Finite Developments

16

Introduction to the Finite Developments Theorem

17

Nominal Isabelle/HOL

18

The Locally Nameless Representation

19

POPLmark Reloaded, Part 2

20

POPLmark Reloaded, Part 1

21

Introduction to Formalizing Programming Languages Theory

22

Turing's proof of normalization for STLC

23

Introduction to normalization for STLC

24

The curious case of exponentiation in simply typed lambda calculus

25

Arithmetic operations in simply typed lambda calculus

26

More on basics of simple types

27

Begin Chapter on Simple Type Theory

28

Some advanced examples in DCS

29

DCS compared to termination checkers for type theories

30

Getting started with DCS

31

Introduction to DCS

32

Semantics of subtyping

33

More on type inference for simple subtypes

34

Subtyping, the golden key

35

Type inference with simple subtypes

36

Basics of subtyping

37

Begin chapter on subtyping

38

Last episode discussing Observational Equality Now for Good

39

More on observational type theory

40

Introduction to Observational Type Theory

41

Interjection: The Liquid Tensor Experiment

42

Extensional Martin-Loef Type Theory

43

Begin chapter on extensionality

44

Papers from Formal Methods for Blockchains 2021

45

Mi-Cho-Coq: Michelson formalized and applied, in Coq

46

Verification of Tezos smart contracts with K-Michelson

47

Start of Season 4: Formal Methods for Blockchain

48

Separation Logic II: recursive predicates

49

Separation Logic 1

50

Let's talk about Rust

51

Region-Based Memory Management

52

Introduction to verified memory management

53

More on Metamath

54

Metamath

55

The Seventeen Provers of the World

56

More on Lean

57

The Lean Prover

58

More on Isabelle, and the Complexity of ITPs

59

Isabelle/HOL

60

More on Agda

61

A look at Agda

62

More reflections on Coq

63

The Coq Proof Assistant

64

Introduction to Interactive Theorem Provers

65

The proof-theoretic ordinal of Peano Arithmetic is Epsilon-0

66

The proof-theoretic ordinal of a logical theory

67

Introduction to Ordinal Analysis

68

An analogy for multiplicative disjunction

69

Linear conjunctions and disjunctions

70

A taste of linear logic

71

Structural rules, or the Curse of the Bound Variable

72

Why Cut Elimination is More Complicated than Normalization

73

Introduction to Cut Elimination

74

Normalization of detours for implication inferences

75

Normalization in natural deduction

76

A Brief Look at Sequent Calculus

77

Natural deduction: or, the bad news!

78

Implication rules for natural deduction

79

Natural Deduction

80

Rules of proof, standard proof systems

81

Different proof systems, distinguishing logical rules from domain axioms

82

Introduction to Proof Theory (Start of Season 3)

83

Modula-2

84

Decomposing recursions using algebras

85

Reassembling datatypes from functors using a fixed-point

86

Decomposing datatypes into functors

87

Modular datatypes: introducing Swierstra's paper "Datatypes à la Carte"

88

Modules for Mathematical Theories (MMT)

89

Some thoughts on module systems so far

90

A look at Agda's module system

91

Standard ML: the Newmar King-Aire of module systems

92

A look at Haskell's module system

93

Let's talk about modules!

94

Church-style Typing and Intersection Types: Glimpses of Benjamin Pierce's Dissertation

95

Intersections and Unions in Practice; Failure of Type Preservation with Unions

96

Normal terms are typable with intersection types

97

Intersection Types Preserved Under Beta-Expansion

98

Introduction to Intersection Types

99

Deriving disjointness of constructor ranges in RelTT

100

Software Design and Intrinsic Identity

101

Identity Inclusion in Relational Type Theory

102

On the paper "The Girard-Reynolds Isomorphism" by Philip Wadler

103

Equivalence of inductive and parametric naturals in RelTT

104

Examples in Relational Type Theory

105

The Semantics of Relational Types

106

The Types of Relational Type Theory

107

Introducing Relational Type Theory

108

On the paper "Types, Abstraction, and Parametric Polymorphism"

109

Parametric models and representation independence

110

Explaining my encoding of a HOAS datatype, part 2

111

Explaining my encoding of a HOAS datatype, part 1

112

Term models for higher-order signatures

113

Lambda applicative structures and interpretations of lambda abstractions

114

The Basic Lemma

115

Logical relations are not closed under composition

116

The definition of a logical relation

117

Introduction to Logical Relations

118

Lamping's abstract algorithm

119

Examples showing non-optimality of Haskell

120

Lambda graphs with duplicators and start of Lamping's abstract algorithm

121

Duplicating redexes as the central problem of optimal reduction

122

Introduction to optimal beta reduction

123

Lexicographic termination

124

Mendler-style iteration

125

Well-founded recursion

126

Compositional termination checking with sized types

127

Noncompositionality of syntactic structural-recursion checks

128

Structural termination

129

Proving Confluence for Untyped Lambda Calculus II

130

Proving Confluence for Untyped Lambda Calculus I

131

Confluence, and its use for conversion checking

132

Normalization and logical consistency

133

Normalization in type theory: where it is needed, and where not

134

Introduction to normalization

135

Proving type safety; upcoming metatheoretic properties

136

The progress property and the problem of axioms in type theory

137

Introduction to type safety

138

Introduction to metatheory

139

Definition of the Mendler encoding

140

The Mendler encoding and the problem of explicit recursion

141

The Scott encoding

142

More on the Parigot encoding

143

Introduction to the Parigot encoding

144

Church-encoding natural numbers

145

Church encoding of lists

146

Church encoding of the booleans

147

Introduction to Church encoding

148

Functional encodings turning the world inside out

149

More benefits of lambda encodings

150

Introduction to lambda encodings

151

Adding a top type and allowing non-normalizing terms

152

Intersection types using Curry-style typing

153

Curry-style versus Church-style, and the nature of type annotations

154

More on Computation First, and Basic Idea of Realizability

155

Types should be erased for executing and reasoning about programs

156

Why go beyond GADTs?

157

GADTs for programming with representations of types

158

Using GADTs for typed subsetting of your language

159

Example of programming with indexed types: binary search trees

160

Programming with indexed types using singletons

161

Limitations of indexed types that are not truly dependent

162

Programming with Indexed Types

163

Program Termination and the Curry-Howard Isomorphism

164

Why Curry-Howard for classical proofs is a bad idea for programming

165

Curry-Howard for classical logic

166

Dependent types and design by contract

167

Indexed types and Curry-Howard for first-order quantifiers

168

The Curry-Howard Isomorphism for Propositional Logic

169

The Curry-Howard Isomorphism for Induction

170

Constructive proofs as programs

171

Introduction to the Curry-Howard Isomorphism

172

Functors and catamorphisms

173

Structured Recursion Schemes for Point-Free Recursion

174

More on point-free programming and category theory

175

Point-free programming and category theory

176

Concise code through point-free programming

177

More on FP and concise code

178

Functional Programming and Concise Code: Type Inference

179

Introduction to Functional Programming

180

Software Engineering Considerations for Formal Methods

181

Power of Computer-Checked Proofs for Software

182

Technical reasons for lack of adoption of computer-checked proofs

183

Why Computer-Checked Proofs are Not Used More in Mathematics

184

Computer-Checked Proofs in American Research

185

Computer-checked proofs about software

186

More on Computer-Checked Proofs

187

Computer-checked proofs