"Propositions as Types" by Philip Wadler
Strange Loop Conference9 HN recommenders · recommended in 8 months, 2015-2026
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.
56:58Philip Wadler - Propositions as Types (Lambda Days 2016)
Erlang Solutions
20K views • 10 years ago
39:40"Type-Driven Program Synthesis" by Nadia Polikarpova
Strange Loop Conference
15K views • 8 years ago
36:58"A (Not So Gentle) Introduction To Systems Programming In ATS" by Aditya Siram
Strange Loop Conference
26K views • 9 years ago
1:02:15Lambda Calculus - Fundamentals of Lambda Calculus & Functional Programming in JavaScript
Fullstack Academy
227K views • 9 years ago
38:36"A Little Taste of Dependent Types" by David Christiansen
Strange Loop Conference
48K views • 8 years ago
40:20"Shen: A Sufficiently Advanced Lisp" by Aditya Siram
Strange Loop Conference
26K views • 12 years ago
51:32Great Impractical Ideas in Computer Science: PowerPoint Programming
Tom Wildenhain
2.2M views • 7 years ago
1:42:53Edward Kmett - Type Classes vs. the World
Boston Haskell
36K views • 11 years ago
44:43Ron Pressler - Pull Push: Please stop polluting our imperative languages with pure concepts-Curry On
Curry On!
25K views • 11 years ago
56:03A Tour of Prolog
The Power of Prolog
33K views • 4 years ago
1:07:10Brian Beckman: Don't fear the Monad
jasonofthel33t
415K views • 13 years ago
39:58"Production Prolog" by Michael Hendricks
Strange Loop Conference
58K views • 12 years ago
36:14Barliman: trying the halting problem backwards, blindfolded - William Byrd, Greg Rosenblatt
ClojureTV
8K views • 9 years ago
12:56Stephen Wolfram's Introduction to the Wolfram Language
Wolfram
924K views • 12 years ago
10:44P vs. NP and the Computational Complexity Zoo
hackerdashery
3.7M views • 12 years ago
1:12:56Lecture 1A | MIT 6.001 Structure and Interpretation, 1986
MIT OpenCourseWare
995K views • 17 years ago
1:07:22Invited Talk - Guy Steele
ClojureTV
39K views • 9 years ago
59:04On the Expressive Power of Programming Languages by Shriram Krishnamurthi [PWLConf 2019]
PapersWeLove
27K views • 7 years ago
47:41"Programming Should Eat Itself" by Nada Amin
Strange Loop Conference
43K views • 12 years ago
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
20 comments from Hacker News
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
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)
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...
A semi related video about the relationship between mathematics and computer science ▶ this video "Propositions as Types" by Philip Wadler
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
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
Philip Wadler showcases and comments on some of this history in his conference talk "Propositions as Types" ▶ this video
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.
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
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 )
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
Philip Wadler's 'Propositions as Types': ▶ this video Bonus: that was the talk that introduced Lambdaman to the world.
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
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
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
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.
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 .
+1 Probably my favorite talk at Strange Loop this year. It's worth watching just for the minute or so starting here: ▶ this video
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