An axiom is an assumption that something is true. A theorem is a claim that something is true. A proof is a series of steps that show exactly how a theorem follows from axioms. These notions were clearly laid out in Euclid's Elements around 300 BC.
In programming, a native is a function or type provided by a compiler. A type is a claim that value of that type exist. A type-checked expression establishes that a value belongs to a type. These notions came about in the 1950's as compilers were developed.
These notions of proofs and programs turn out to correspond. This was proven by Curry and Howard from the 1930's through the 1960's, starting even before programming languages were invented.
So, why don't programmers intuitively understand this? Because, right now, it's broken in practice. Most languages have type systems that are too weak to express useful theorems, and effects systems are too permissive to typecheck proofs.
Fortunately, efforts are underway to bridge the gap. Lean (leanprover-community.github.io) has taken automated proof tools to the next level, and Idris (idris-lang.org) looks to bridge the gap. Perhaps the next mainstream programming language will complete the circuit.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Tim Sweeney

Tim Sweeney Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @TimSweeneyEpic

10 Jan
The topic of functional logic programming is extraordinarily rich and is largely unexplored, due to limits of the original reasoning model (closed world SLD resolution) which hindered a view of the bigger picture.
David McAllester wrote all down in 1989 with Ontic, but it wasn’t recognized as being implementable nor was it even clearly understood what an implementation would comprise, nor were its connections to functional logic recognized.
Such a language so expressively mixes types and values that traditional type checking is inapplicable. The only tool adequate for compile-time reasoning is a static analysis of the program under the assumptions proffered by the domains of functions within it.
Read 8 tweets
9 Sep 20
Presumably they're just posturing for the court, but if Apple truly believes the fight over the App Store's distribution and payment monopoly is a "basic disagreement over money," then they've lost all sight of the tech industry's founding principles.

engadget.com/apple-epic-gam…
Foremost among those principles: the device you own is yours. You're free to use it as you wish. Configure it as you like, install software you choose, create your own apps, share them with friends. Your device isn't lorded over by some all-powerful corporation.
This is EXACTLY what Apple's 1984 commercial was all about. Making computing personal, overcoming the awful precedent of IBM mainframes where computer owners were reduced to essentially just leasing devices controlled by an all-powerful company.
Read 6 tweets
17 Aug 20
Let’s try searching for Netflix on the App Store. Whoops, Netflix isn’t the top result, because Apple sold top result to TikTok. At least all the text is super readable - except the low contrast white-on-blue-white “Ad” label.
Ok, we scroll down and install Netflix. Now let’s sign up. Whoops! You can’t sign up in-app, and Apple won’t even allow Netflix to tell users how to sign up out-of-app!
Back to TikTok. Let’s try searching for that... Whoops, Apple punked TikTok with:
Read 4 tweets
14 Aug 20
At the most basic level, we’re fighting for the freedom of people who bought smartphones to install apps from sources of their choosing, the freedom for creators of apps to distribute them as they choose, and the freedom of both groups to do business directly.
The primary opposing argument is: "Smartphone markers can do whatever they want". This as an awful notion.

We all have rights, and we need to fight to defend our rights against whoever would deny them. Even if that means fighting a beloved company like Apple.
Another argument against supporting #FreeFortnite is "this is just a billion dollar company fighting a trillion dollar company about money". But the fight isn't over Epic wanting a special deal, it's about the basic freedoms of all consumers and developers.
Read 4 tweets
24 Jul 20
Here’s my first computer, the Apple ][+. It booted into a BASIC programming prompt so you could write code. Then you could save it on a floppy disk or a tape and share it with others. Where is the company that invented the personal computer now?
The good news is that they have a billion devices in circulation. The bad news: to get permission to program, you have to submit a form and a $100 fee. To release it, you submit another form and wait for Apple to decide whether they will allow you to do that. Often they don’t.
There is a weird dichotomy in this company. On one hand, it’s a trillion dollar monopoly that exercises absolute power over developers’ businesses and livelihood. On the other, Apple has become the App DMV, replete with forms, lines, byzantine policies, and bureaucracy.
Read 4 tweets
20 Jul 20
Ultimately, ownership of digital items should be a universal notion, independent of stores and platforms. So much of the digital world today is frustrated by powerful intermediaries whose toll booths obstruct open commerce to keep customers and their purchases locked in.
Epic’s committed to working with all willing ecosystems to connect our stores and recognize universal ownership. Early bits include purchase integration with Humble and others, and library visibility to GOG. A lot more will be coming over time.
Possible implementation strategies: federated (each store maintains its own ownership records, but can communicate with other stores and recognize theirs too); clearinghouse (stores agree on a common ownership database); decentralized (a blockchain type leger tracks ownership).
Read 4 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(