"Propositions as Types" by Philip Wadler
Strange Loop Conference9 HN recommenders · recommended in 8 months, 2015–2026
talk · intermediate · evergreen · 2015–2026 on HN
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.
Up next
2 mo on HN"Uncle" Bob Martin
Program on Entrepreneurship
2 HN recommender · 2017–2024
2 mo on HNRobert C Martin - Clean Architecture and Design
gnbitcom
2 HN recommender · 2018–2024
8 mo on HN"The Economics of Programming Languages" by Evan Czaplicki (Strange Loop 2023)
Strange Loop Conference
10 HN recommender · 2023–2026
2 mo on HNFour Languages from Forty Years Ago - Scott Wlaschin
NDC Conferences
2 HN recommender · 2019–2022
2 mo on HNOCaml Workshop 2020 - State of the OCaml Platform 2020
OCamlWorkshops
2 HN recommender · 2020–2021
1 mo on HNMacintosh Factory
MacGeneration
1 HN recommend · 2016–2025
1 mo on HNPacific Northwest Scala 2013 We're Doing It All Wrong by Paul Phillips
Confreaks
2 HN recommender · 2013–2020
4 mo on HNDebugging with the Scientific Method - Stuart Halloway
ClojureTV
4 HN recommender · 2015–2023
10 mo on HNBrian Beckman: Don't fear the Monad
jasonofthel33t
9 HN recommender · 2012–2024
9 mo on HN28c3: The Science of Insecurity
28c3
9 HN recommender · 2012–2024
7 mo on HNMath's Fundamental Flaw
Veritasium
7 HN recommender · 2021–2024
7 mo on HNThe Banach–Tarski Paradox
Vsauce
6 HN recommender · 2015–2024
12 comments from Hacker News
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
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
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.
+1 Probably my favorite talk at Strange Loop this year. It's worth watching just for the minute or so starting here: ▶ this video
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)
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
Philip Wadler's 'Propositions as Types': ▶ this video Bonus: that was the talk that introduced Lambdaman to the world.
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 .
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
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
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
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...