Épisodes

  • Nominal Isabelle/HOL
    Jan 31 2025

    In this episode, I discuss the paper Nominal Techniques in Isabelle/HOL, by Christian Urban. This paper shows how to reason with terms modulo alpha-equivalence, using ideas from nominal logic. The basic idea is that instead of renamings, one works with permutations of names.

    Voir plus Voir moins
    16 min
  • The Locally Nameless Representation
    Jan 3 2025

    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 Representation," by Charguéraud. I complain due to the statement in the paper that "the theory of λ-calculus identifies terms that are α-equivalent," which is simply not true if one is considering lambda calculus as defined by Church, where renaming is an explicit reduction step, on a par with beta-reduction. I also answer a listener's question about what "computational type theory" means.

    Feel free to email me any time at aaron.stump@bc.edu, or join the Telegram group for the podcast.

    Voir plus Voir moins
    20 min
  • POPLmark Reloaded, Part 2
    Dec 23 2024

    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 Agda provers.

    Voir plus Voir moins
    14 min
  • POPLmark Reloaded, Part 1
    Dec 23 2024

    I discuss the paper POPLmark Reloaded: Mechanizing Proofs by Logical Relations, which proposes a benchmark problem for mechanizing Programming Language theory.

    Voir plus Voir moins
    15 min
  • Introduction to Formalizing Programming Languages Theory
    Nov 25 2024

    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.

    Voir plus Voir moins
    12 min
  • Turing's proof of normalization for STLC
    May 21 2024

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

    Voir plus Voir moins
    18 min
  • Introduction to normalization for STLC
    May 14 2024

    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 Telegram group for the podcast if you want to discuss anything (or just email me at aaron.stump@gmail.com).

    Voir plus Voir moins
    10 min
  • The curious case of exponentiation in simply typed lambda calculus
    May 4 2024

    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_A, then exponentiation, which is defined as \ x . \ y . y x, can be assigned type Nat_A -> Nat_(A -> A) -> Nat_A. The second argument needs to have type at strictly higher order than the first argument. This has the fascinating consequence that we cannot define self-exponentiation, \ x . exp x x. That term would reduce to \ x . x x, which is provably not typable in STLC.

    Voir plus Voir moins
    7 min