
Type Theory Forall
An accessible podcast about Type Theory, Programming Languages Research and related
topics.
Latest episodes

Aug 12, 2022 • 2h 19min
#22 Impredicativity, LEM, Realizability and more - Cody Roux
In this episode Cody Roux teaches some interesting concepts that people care
about in Mathematics and Logic as a way to try to understand what is going on
in the universe around us! In particular we will try to explain concepts such
as Impredicativity, Excluded Middle, Group Theory, Model Theory, Kripke
Models, Realizability, The Markov Principle, Cut Elimination, and other
stuff!
Links
Cody's website
Cody's dblp

Aug 4, 2022 • 3h 7min
#21 Denotational Design - Conal Elliott
In this episode Conal Elliott gives a more concrete presentation
on what is Denotational Design is and how to use it in practice. It is a continuation of episode #17, in which we had an in-depth philosophical
conversation to explain why he believes that
Denotational Design is a superior form of reasoning in the realm of computer
science.
We also continue a discussion raised by Dan Ghica on the last episode on the
need for Operational Semantics and the role of elegance in reasoning and
design.
Along the way we also address the questions sent by the listeners in these last episodes.
Links
Conal's website
Play/work with Conal
Conal's twitter: @conal
The simple essence of automatic differentiation
Compiling to categories
Generic parallel functional programming
Denotational design with type class morphisms
Quotes
"A theory appears beautiful or elegant [...] when it’s simple; in other words when it can be expressed very concisely in terms of mathematics that we’ve already learned for some other reasons." - Murray Gell-Mann, Beauty and Elegance in Physics.
"In Galileo’s time, professors of philosophy and theology—the subjects were inseparable—produced grand discourses on the nature of reality, the structure of the universe, and the way the world works, all based on sophisticated metaphysical arguments. Meanwhile, Galileo measured how fast balls roll down inclined planes. How mundane! But the learned discourses, while grand, were vague. Galileo’s investigations were clear and precise. The old metaphysics never progressed, while Galileo’s work bore abundant, and at length spectacular, fruit. Galileo too cared about the big questions, but he realized that getting genuine answers requires patience and humility before the facts." - Frank Wilczek, (The Lightness of Being: Mass, Ether, and the Unification of Forces)
"We must make here a clear distinction between belief and faith, because, in general practice, belief has come to mean a state of mind which is almost the opposite of faith. Belief, as I use the word here, is the insistence that the truth is what one would ‘lief’ or wish it to be. The believer will open his mind to the truth on the condition that it fits in with his preconceived ideas and wishes. Faith, on the other hand, is an unreserved opening of the mind to the truth, whatever it may turn out to be. Faith has no preconceptions; it is a plunge into the unknown. Belief clings, but faith lets go. In this sense of the word, faith is the essential virtue of science, and likewise of any religion that is not self-deception." - Alan Watts (The Wisdom of Insecurity: A Message for an Age of Anxiety)

Jun 28, 2022 • 1h 37min
#20 Huaweii, String Diagrams, Game Semantics - Dan R. Ghica
In this episode, me and Eric Bond have a great conversation with Dan R.
Ghica, a professor at Birmingham University and Director of the Programming
Language Research Lab of the Huaweii Research Centre Edinburgh.
We talk about his work on both institutions, which includes topics such as
Category Theory, String Diagrams, and Game Semantics.
We also briefly discuss the current publication process of our field and
entertain some thoughts on how to make it better. Finally, we touch on
more personal topics such as his views about Elegance, making an insightful
counterpoint to Conal’s opinions on Denotational Semantics vs. Operational
Semantics.
Links
Dan's Twitter: @danghica
Dan's Website
Job advert for Huawei positions
Talks and Lectures
Dan's talk on Syntactic Trinitarianism (terms, graphs, diagrams)
Dan's talk on a similar, more semantics-oriented talk at TERMGRAPH
Dan's OPLSS course on (denotational) game semantics
Game semantics lectures
Papers
Paper on string diagrams and their applications to reverse automatic differentiation (long paper, part of it to appear in FSCD 2020)
Paper on automatic differentiation and string diagrams
Paper on effect handlers
Paper on optimisation with constructive reals
Paper on digital circuits and string diagrams
Paper on functorial boxes for string diagrams
A Game semantics paper mentioned during the conversation
Decidability via game semantics
Landmark paper on undecidability of observational equivalence
Other Links
Penrose book
Book on type-level string diagrams
Proof assistant for higher categories
The Programming Journal
Midlands Graduate School

Jun 4, 2022 • 1h 52min
#19 Experience Report: Learning Coq - Patrick and Supun
In today’s episode I invite two friends of mine Patrick Lafontaine and Supun
Abeysinghe. We will talk about their experience learning Coq and we guide
ourselves in a survey that I gave all the 83 students in the class.
The class was thought by my advisor Benjamin Delaware and I was his TA.
Patrick researches compilers and have done work in particular with Rust. And
Supun works more along the lines of machine learning in the context of
systems.

May 19, 2022 • 2h 50min
#18 Gödel's Incompleteness Theorems - Cody Roux
In this episode Cody Roux talks about the Gödel's Incompleteness Theorems. We go
through it’s underlying historical context, Hilbert’s Program, how it relates
with Turing, Church, Von Neumann, Termination and more.
Links
Cody's website
Cody's dblp
The Lady or the Tiger? - Short Story
The Lady or the Tiger? - Amazon
Logicomix
An Introduction to Gödel's Theorems
Jeremy Avigad's Lecture Notes

May 9, 2022 • 3h 33min
#17 The Lost Elegance of Computation - Conal Elliott
In this episode I had the pleasure to have an in-depth conversation with Conal
Elliott about his life, his work, his philosophy and his many opinions about
research and the current state of PL Research and how it lead him to come with
the concept of Denotational Design. Conal got his PhD at CMU in the 90s under
Frank Pfenning working on Higher-Order Unification, after that he has devoted
his life on thinking and refining graphic computation and the tools behind it.
Links
Conal's website
Play/work with Conal
Conal's twitter: @conal
The simple essence of automatic differentiation
Compiling to categories
Generic parallel functional programming
Denotational design with type class morphisms
Functional Images
Functional Reactive Animation
Alphabet Versus the Goddess - Leonard Shlain
The information - James Gleick
Murray Gell-Mann’s definition of beauty/elegance: "A theory appears beautiful or elegant [...] when it’s simple; in other words when it can be expressed very concisely in terms of mathematics that we’ve already learned for some other reasons."
A John Backus quote (from his Turing Award lecture): “Many creative computer scientists have retreated from inventing languages to inventing tools for describing them. Unfortunately, they have been largely content to apply their elegant new tools to studying the warts and moles of existing languages. After examining the appalling type structure of conventional languages, using the elegant tools developed by Dana Scott, it is surprising that so many of us remain passively content with that structure instead of energetically searching for new ones.”

Apr 2, 2022 • 1h 36min
#16 Agda, K Axiom, HoTT, Rewrite Theory - Jesper Cockx
In this episode we interview Jesper Cockx, one of the core developers on Agda.
We talk about the philosophy behind Agda, his work on pattern matching, the
Uniqueness of Identity of Proofs, UIP for short, and why it is inconsistent
with Homotopy Type Theory.
Links
Jesper's Website
Jesper's Twitter: @agdakx
Jesper's PhD Thesis
Rewrite Theory paper
Pattern matching without K paper (Check his website for more)
EuroProofNet
WITS Talks on Youtube (Workshop on the Implementation of Type Systems)
Agda Zulip
Agda Mailing List
Ataca Github
Wadler's book on Agda
Stump's book on Agda

Mar 27, 2022 • 1h 18min
#15 Coq Projects, Agda, Idris, Kind - Nitin and Eric
In this episode me, Eric and Nitin continues our conversation started in the
last episode. This time we move our attention to the cool projects happening
in Coq, in particular commenting through the projects mentioned in Andrew
Appel’s keynote “Coq’s Vibrant Ecosystem for verification engineering” that
took place in CPP’22 which is colocated with POPL and towards the end we also
talk about agda, idris and Kind.
Links
Nitin Twitter @NitinJohnRaj2
Eric Twitter @EricBond10
Appel's CPP Talk
Proof Assistants Stack Exchange
Coq Community
Leo de Moura Interview

Feb 12, 2022 • 57min
#14 POPL, Parametricity, Scala, DOT - Nitin and Eric
In this episode I gather with two good friends Eric and Nitin to randomly talk random subjects that pops up. Among them we talked about POPL, Scala, Isabelle, Parametricity, Dependent Object Types (DOT, for short) and more!
Links
Nitin Twitter @NitinJohnRaj2
Eric Twitter @EricBond10
Collection of links on logical relations
Theorems for Free
Reynolds Paper
Practical Foundations for Programming Languages

Dec 23, 2021 • 1h 40min
#13 C/C++, Emacs, Haskell, and Coq. The Journey - John Wiegley
This episode is about the journey of a programmer that converted himself into
a Haskell developer after working with C/C++ for more than 10years.
Here are a few questions that you'll find the answer to in this episode:
What does he find so compelling about Haskell?
Why did it make him dive deeper into the Theoretical Computer Science?
Why did it make him learn Coq and Category Theory?
How does Coq compare with ACL2?
How do both Coq and ACL2 compares to TLA+?
Did learning Coq make John a better programmer?
Links
John's Email: johnw@newartisans.com
John's Twitter: @jwiegley