HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

"Propositions as Types" by Philip Wadler

Strange Loop Conference9 HN recommenders · recommended in 8 months, 2015-2026
YouTube
143K views · 11 years ago · talk · evergreen

Philip Wadler's Strange Loop talk on Propositions as Types, the link between logic and computation (the Curry-Howard correspondence). He traces its history through Church, Godel and Turing and shows how it shaped theorem provers and programming languages.

HN regards it as an entertaining and eye-opening introduction to why logic and functional programming are connected, and it is a frequent pick in favorite-tech-talk threads.

Logic & formal methodsProgramming language designComputability & complexity theory#curry-howard#lambdacalculus#typetheory#functionalprogramming#logic#historyofcomputing

20 comments from Hacker News

@pyrale2026 · in “- -dangerously-skip-reading-code – olano.dev”

That's any programming language, really [1]. Any website contains millions of "proofs", not all of them are useful. Choosing what needs to be proven is hard. And the spectrum of languages/type systems and their usability as either is more explored nowadays than it used to be. If you don't likue coq, you can look for agda. If agda is too far for you, you can look for Haskell. If that's still impractical, there's rust or f#, etc... The tradeoff you have between "convenient for expressing proofs" and "convenient for programming" has many options. [1]: ▶ this video

CitesView on HN
@mrkeen2024 · in “A reckless introduction to Hindley-Milner type inference (2019)”

This is nice and genuinely entertaining ▶ this video (Propositions as types by phil wadler). Its true focus is the 1-1 mapping between type systems and logic systems, but it's well worth the watch. This is good reading - it demystifies the funny typing rules in their mathematical form. link (Neither of these tell you how to implement the checker yourself though)

RecommendsView on HN
@vishnugupta2023 · in “λ Calculus [pdf]”

A little bit of historical background. There was a concerted effort in the late 19th, early 20th century (perhaps earlier too) to mechanise computation i.e., reducing it to a pure symbolic manipulation. There were obvious benefits, a famous one being Enigma Machine that was used to (successfully I think) break the German code during WW-2. On the philosophical side a parallel and overlapping effort was going on to figure out using mathematics to represent all possible truths , again as symbolic manipulation system. Bertrand Russel's magnum opus Principia Mathematica [1] was one such famous work towards it. Kurt Gödel then made a breakthrough when he proved that such a system is impossible; i.e., a system can either capture all the truths or it can be consistent but not both[2]. Put differently, any mathematical system capable of representing all the truths will necessarily contain contradictions within it. Now coming to your question. Lambda calculus emerged in this milieu. Alonzo Church[3] invented one such system to mechanise computation, named ƛ-calculus. Using this system one can mechanically compute any function purely through symbolic manipulation. Later on Turing, Church's student I think, invented a totally different system named Turing Machine with the same purpose. Later on it was proved (by Church and Turing I think, but I'm not 100% sure) that ƛ-Calculus and Turing Machine are equivalent, Church-Turing thesis[4]. All these work, and more, laid the theoretical found

CitesView on HN
@peter_d_sherman2023 · in “Idris: A Language for Type-Driven Development”

You might wish to have a look at "Propositions as Types" by Philip Wadler (thanks rbonvall, for the link!) -- at 21:30 (1290 seconds) into the video: ▶ this video " Evaluation corresponds exactly to simplification of proofs ..." (The rest of the video, both before and after this statement, contain more context...) That being said, I agree with you that languages which are used primarily for theorem proving (AKA, "proof assistants") -- are usually not as applicable to as broad a range of programming paradigms and problems as most general purpose computer programming languages are...

CitesView on HN
@richardjam732022 · in “Presentation: Four programming languages from forty years ago (2018)”

A semi related video about the relationship between mathematics and computer science ▶ this video "Propositions as Types" by Philip Wadler

CitesView on HN
@peoplefromibiza2022 · in “Ask HN: Should I publish my research code?”

notoriously Philip Wadler says that computer science has two problems: computer and science. It's not about computers and "You don't put science on your name if you're a real science" He prefers the name informatics. source: ▶ this video

CitesView on HN
@namelosw2021 · in “Shirts of Peter Norvig”

My favorite is Philip Wadler - during a Strange Loop talk[0], all of a sudden he tore his shirt, showing his "lambda man" suit underneath. [0] ▶ this video

CitesView on HN
@platz2019 · in “Timeline for Logic, λ-Calculus, and Programming Language Theory (2012) [pdf]”

Philip Wadler showcases and comments on some of this history in his conference talk "Propositions as Types" ▶ this video

CitesView on HN
@BucketSort2019 · in “Metamath”

Proof assistants are like that. Check out Coq or Agda. If you aren't aware of it already, your spirit is calling for the stuff they talk about a lot in the functional programming community. See ▶ this video for example. Maybe not the best video or intro to the themes though. Wadler also just put out a book about programming language foundations in Agda - link . link being one of the profound ideas here.

CitesView on HN
@pmiri2018 · in “Ask HN: What are some of the best technical talks you've heard?”

Propositions as Types by Philip Wadler A really in depth look into why functional languages stand out as a programming paradigm. The short of it being that they parallel perfectly (almost proof for proof!) with mathematical logic. ▶ this video

RecommendsView on HN
@craigsmansion2018 · in “Lisp for the Web (2008)”

I know it seems like one of those Lispers' idiosyncrasies--"discovered" instead of "invented". I first heard it explained by Philip Wadler, and upon reflection it was one of those "enlightenment" moments that Lispers always go on about: Lambda calculus is a discovery, and should we ever encounter an alien space-faring species, we could read their programs in spite of their alien processing architectures (given that they use a functional language, but let's face it, they have the tech to cross space, they know what they are doing, i.e. they're in the functional camp) "Propositions as Types" by Philip Wadler, Strange Loop. ( ▶ this video )

CitesView on HN
@jgautsch2018 · in “Curry–Howard correspondence”

Professor Philip Wadler has a fantastic talk titled "Propositions as Types" that introduces the Curry-Howard correspondence, some history behind it and ideas following it. In fact it's one of my favorite talks. Well worth a watch if you haven't seen it: ▶ this video

Strongly recommendsView on HN
@yawaramin2018 · in “Ask HN: What is your favourite tech talk?”

Philip Wadler's 'Propositions as Types': ▶ this video Bonus: that was the talk that introduced Lambdaman to the world.

RecommendsView on HN
@sitkack2017 · in “The Ergonomics of Type Checking (2016)”

Came here to mention MyPy and optional typing, the preferable term Gradual Typing means something distinctly different. link Dropbox employs the creator of MyPy but it isn't a creation of dropbox. Type Systems as Macros link Pluggable Type Systems link Propositions as Types link ▶ this video

CitesView on HN
@imode2017 · in “Proofs are Programs – 19th Century Logic and 21st Century Computing (2000) [pdf]”

curry-howard and Wadler's "Propositions as Types" talk at StrangeLoop* opened my eyes pretty early on to the sweet, sweet utility of logic in my every day programming. it sounds odd to start with but I never realized why these things mattered prior to viewing this talk. props to wadler. best ~40 minutes I've ever spent. * ▶ this video

Strongly recommendsView on HN
@rbonvall2016 · in “An Introduction to the Lambda Calculus (2015)”

The lambda calculus teaches you how to build computation from a very simple evaluation rule called "beta reduction" which is just a fancy name for "search and replace" with function parameters. If you can find a system that can rewrite terms in such a fashion, you can compute whatever you want using the tricks you learn in lambda calculus. For example, C++ templates were not meant to be Turing-complete, but they work by rewriting terms [1], so you can encode lambda calculus in it, and run arbitrary programs at compile time . Philip Wadler does a better job than me at getting excited by lambda calculus. He calls it "the omniversal programming language", and claims that aliens will probably have discovered it [2]. [1]: link [2]: ▶ this video

CitesView on HN
@runT1ME2016 · in “Ask HN: What's your favorite tech talk?”

Propositions as Types: ▶ this video I think this can really really change how we look at everyday programming tasks everywhere from the type of tooling we choose to how we approach problems.

Strongly recommendsView on HN
@mietek2016 · in “Very Long Proofs”

If you’re using the right language, proofs are programs; it’s as simple as that. “Compressing” a proof, then, amounts to doing what good programmers are already doing — noticing patterns and eliminating redundancy. I’ll refer you to an authority on the subject, Phil Wadler. If you like watching videos, try < ▶ this video . If you’d rather read an entertaining paper, try < link .

RecommendsView on HN
@jcox922015 · in “Propositions as Types (2014) [pdf]”

+1 Probably my favorite talk at Strange Loop this year. It's worth watching just for the minute or so starting here: ▶ this video

Strongly recommendsView on HN
@chrislloyd2015 · in “Propositions as Types (2014) [pdf]”

If you're finding the paper too dense, Philip gave a extremely entertaining talk on the same subject at Strange Loop this year: ▶ this video

RecommendsView on HN
Philip Wadler  - Propositions as Types (Lambda Days 2016)56:58

Philip Wadler - Propositions as Types (Lambda Days 2016)

Erlang Solutions
20K views • 10 years ago
"Type-Driven Program Synthesis" by Nadia Polikarpova39:40

"Type-Driven Program Synthesis" by Nadia Polikarpova

Strange Loop Conference
15K views • 8 years ago
"A (Not So Gentle) Introduction To Systems Programming In ATS" by Aditya Siram36:58

"A (Not So Gentle) Introduction To Systems Programming In ATS" by Aditya Siram

Strange Loop Conference
26K views • 9 years ago
Lambda Calculus - Fundamentals of Lambda Calculus & Functional Programming in JavaScript1:02:15

Lambda Calculus - Fundamentals of Lambda Calculus & Functional Programming in JavaScript

Fullstack Academy
227K views • 9 years ago
"A Little Taste of Dependent Types" by David Christiansen38:36

"A Little Taste of Dependent Types" by David Christiansen

Strange Loop Conference
48K views • 8 years ago
"Shen: A Sufficiently Advanced Lisp" by Aditya Siram40:20

"Shen: A Sufficiently Advanced Lisp" by Aditya Siram

Strange Loop Conference
26K views • 12 years ago
Great Impractical Ideas in Computer Science: PowerPoint Programming51:32

Great Impractical Ideas in Computer Science: PowerPoint Programming

Tom Wildenhain
2.2M views • 7 years ago
Edward Kmett - Type Classes vs. the World1:42:53

Edward Kmett - Type Classes vs. the World

Boston Haskell
36K views • 11 years ago
Ron Pressler - Pull Push: Please stop polluting our imperative languages with pure concepts-Curry On44:43

Ron Pressler - Pull Push: Please stop polluting our imperative languages with pure concepts-Curry On

Curry On!
25K views • 11 years ago
A Tour of Prolog56:03

A Tour of Prolog

The Power of Prolog
33K views • 4 years ago
Brian Beckman: Don't fear the Monad1:07:10

Brian Beckman: Don't fear the Monad

jasonofthel33t
415K views • 13 years ago
"Production Prolog" by Michael Hendricks39:58

"Production Prolog" by Michael Hendricks

Strange Loop Conference
58K views • 12 years ago
Barliman: trying the halting problem backwards, blindfolded - William Byrd, Greg Rosenblatt36:14

Barliman: trying the halting problem backwards, blindfolded - William Byrd, Greg Rosenblatt

ClojureTV
8K views • 9 years ago
Stephen Wolfram's Introduction to the Wolfram Language12:56

Stephen Wolfram's Introduction to the Wolfram Language

Wolfram
924K views • 12 years ago
P vs. NP and the Computational Complexity Zoo10:44

P vs. NP and the Computational Complexity Zoo

hackerdashery
3.7M views • 12 years ago
Lecture 1A | MIT 6.001 Structure and Interpretation, 19861:12:56

Lecture 1A | MIT 6.001 Structure and Interpretation, 1986

MIT OpenCourseWare
995K views • 17 years ago
Invited Talk - Guy Steele1:07:22

Invited Talk - Guy Steele

ClojureTV
39K views • 9 years ago
On the Expressive Power of Programming Languages by Shriram Krishnamurthi [PWLConf 2019]59:04

On the Expressive Power of Programming Languages by Shriram Krishnamurthi [PWLConf 2019]

PapersWeLove
27K views • 7 years ago
"Programming Should Eat Itself" by Nada Amin47:41

"Programming Should Eat Itself" by Nada Amin

Strange Loop Conference
43K views • 12 years ago
"How to Think about Parallel Programming: Not!" - Guy L. Steele Jr. (Strange Loop 2010)1:09:38

"How to Think about Parallel Programming: Not!" - Guy L. Steele Jr. (Strange Loop 2010)

Strange Loop Conference
9K views • 5 years ago