Principia Mathematica is modern and insightful (okmij.org)

268 points by matt_d a day ago

tristramb 11 hours ago

"Principia Mathematica is an odd book, worth looking into from a historical point of view as well as a mathematical one. It was written around 1910, and mathematical logic was still then in its infancy, fresh from the transformation worked on it by Peano and Frege. The notation is somewhat obscure, because mathematical notation has evolved substantially since then. And many of the simple techniques that we now take for granted are absent. Like a poorly-written computer program, a lot of Principia Mathematica's bulk is repeated code, separate sections that say essentially the same things, because the authors haven't yet learned the techniques that would allow the sections to be combined into one."

- Mark Dominus (https://blog.plover.com/math/PM.html)

bazoom42 7 hours ago

Have someone refactored it into a more concise and modern version?

jonjacky 6 hours ago

Possibly pertinent: Principia Mathematica Maps and Table Site (PM-MATS): https://principia.lib.uiowa.edu/about.html - more description in my top-level comment in this page.

theonemind 6 hours ago

It seems like a frontier model LLM could probably do it in day, probably less. Someone would have to read and correct it, though

danilafe 8 hours ago

This was my first thought when I saw the article.

WillAdams 20 hours ago

For an accessible introduction before beginning this, consider his _Introduction to Mathematical Philosophy_:

https://en.wikipedia.org/wiki/Introduction_to_Mathematical_P...

and for ease of reading see the various PDF versions at:

https://people.umass.edu/klement/imp/

hasley 16 hours ago

Of you prefer an even more entertaining approach and a very gentle introduction into the topic, I recommend the comic "Logicomix" which tells Russel's journey (though not historically correct all the time for story telling reasons).

https://en.wikipedia.org/wiki/Logicomix

eternauta3k 15 hours ago

Just got this from the library, it's a real page turner. Heard about it in this excellent interview: https://www.typetheoryforall.com/episodes/goedel-s-incomplet...

igravious 15 hours ago

Logicomix is novel, and done well, but flawed … it's deficiencies lie in what it leaves out which may come across as an unfair charge but in this case the charge is warranted. There is a more historically correct and less orthodox work waiting in the wings for whosoever should attempt it.

jhbadger 10 hours ago

bramadityaw 9 hours ago

new comics recommendation! thanks!

zote 17 hours ago

similarly the work itself is available here: https://people.umass.edu/klement/pom/

pngwen 9 hours ago

You might be interested in Kurt Goedel’s extended book review wherein he proves that Principia cannot do what it sets out to do, nor can any such system.

I do teach PM when I teach theory of computation, but largely to tell the story of how we discovered the limits to computation.

scoofy an hour ago

As a former analytic philosophy student, it's always a bit strange and encouraging for me to see stuff like this show up in CS/Tech forums. We need more philosophy now that we are dealing with the implication of "intelligent" machines.

radford-neal 8 hours ago

The notation for avoiding parentheses is interesting, and I've thought that it might be useful in programming languages.

To illustrate, suppose you have a non-associative operator $. Rather than write a$(b$c), you can write a$.b$c - the . makes the $ before it be lower precedence on the right side. More dots make things be even lower precedence.

So, for example,

    a$b .$: x$y .$. p$q
means

    (a$b) $ ((x$y) $ (p$q))
At least, that's my recollection. It's been over fifty years since I read (significant parts of) it...

layer8 6 hours ago

In what way do you think this is useful over parentheses?

radford-neal 3 hours ago

It's better visually. No dot, ., :, :., ::, ::., :::, etc. have increasing visual weight, which shows which are the more top-level operators without having to match up parentheses.

layer8 an hour ago

glimshe 21 hours ago

If you can read this book cover-to-cover, you're an absolute hero. Sometimes I wonder if they inserted a big logical error in the middle just to troll people under the assumption nobody would bother to read it.

gumby 21 hours ago

You mean you don’t have a framed, signed, bug-bounty cheque from Alfred North Whitehead on your wall??

More seriously, there is indeed a huge logical error at the heart of the whole enterprise but it was not discovered until much later by Kurt Gödel.

steppi 19 hours ago

This is commonly believed, but Gödel didn't identify a logical error at the heart of the whole enterprise, he proved astonishing theorems revealing limitations of any sufficiently powerful formal system. One can kind of think of the Principia as a science experiment to find the extent to which known mathematics could be proven from foundational axioms that could be thought of as "laws of logic". To make their system work, Russell and Whitehead themselves had to add extralogical axioms, such as their Axiom of Reducibility [0] and the Axiom of Infinity, giving empirical evidence (but not a proof) that "laws of logic" alone were not enough. They were also aware of limitations in their own system, such as the inability to define the cardinal $\aleph_\omega$ [1].

Like the article says, what they did was ahead-of-its-time, and a monumental influence on all subsequent work on formal systems, including Gödel's work, regardless of whether Russell and Whitehead achieved their initial aims.

[0] https://en.wikipedia.org/wiki/Axiom_of_reducibility [1] https://www.gutenberg.org/files/78255/78255-h/78255-h.htm#Pa...

gumby an hour ago

jibal 17 hours ago

Utter nonsense ... there is no known logical error in PM. Gödel proved that Russell and Whitehead's goal was unachievable but that's a totally different matter.

OTOH, Russell found a logical error at the heart of Frege's work, and PM fixed it by introducing the theory of types.

robobro 18 hours ago

That's not how to spell Ludwig Wittgenstein!

steppi 17 hours ago

voxadam 21 hours ago

>there is indeed a huge logical error at the heart of the whole enterprise but it was not discovered until much later by Kurt Gödel.

Which leads us to our next borderline impenetrable book, Gödel, Escher, Bach by Douglas Hofstadter.

m-hodges 20 hours ago

analog31 20 hours ago

scubbo 20 hours ago

sorokod 16 hours ago

suslik 18 hours ago

annzabelle 18 hours ago

eru 17 hours ago

sergevar 18 hours ago

Interestingly, there was a Show HN last year formalizing PM in Lean (https://news.ycombinator.com/item?id=43797256), and the Principia Rewrite project (https://www.principiarewrite.com) verified all 189 propositional logic theorems (sections 1-5) in Coq against the original proof sketches

troutwine 7 hours ago

I believe the Principia Rewrite is at https://principia-rewrite.org/.

sergevar 5 hours ago

kjellsbells 20 hours ago

I used to wonder how likely it was that the printers made some typesetting errors. Who among us could, say, type a thousand pages of APL symbols without introducing a bug?

WillAdams 20 hours ago

There's a reason mathematics was known as "penalty copy" and was notoriously difficult to typeset and even more difficult to turn a profit on.

For a deep dive into both ends of that, see the history of publication of Knuth's TAoCP where the text was originally published traditionally by setting metal type on a composition machine (to the extent possible), then compositors would add the additional characters and spacing material necessary to compose the equations and so forth so as to lay out a galley (which would then be proofed/corrected) --- a successive edition was then typeset using an early imagesetter, which looked so ghastly that DEK considered giving up, but when informed that the imagesetter was controlled by a computer declared, "I am a computer scientist, I can fix that." and expected to knock out a typesetting system over his next sabbatical....

Roughly a decade later, TeX 1.0 was released.... the current version is 3.141592653 (with new versions adding another decimal place as the version tends towards \pi) --- while we're still waiting on the full publication of Vol. 4, it is widely considered that TeX was worth the delay.

karmakurtisaani 16 hours ago

inigyou 20 hours ago

apocryphally a typesetter saw "make x as small as possible" at the end of a math problem to be typeset, and did exactly that

gjm11 8 hours ago

taneq 18 hours ago

keltor 20 hours ago

It was required reading for my Logics class in undergrad. Pretty sure it was also on the optionals (aka required) for my Set Theory class as well.

It's also pretty typically a part of History Of Mathematics and Philosophy of Mathematics courses.

tristramb 11 hours ago

You might be thinking of Russell's Principles of Mathematics which is a bit easier going.

derrida 20 hours ago

No it's not.

No it wasn't.

And you did not read it.

EDIT: source: took logic as undergrad + wrote on the tractatus which required a lot of pre-reqs to understand. 0 chance a course at undergrad level ever assigns principia mathematica. I don't care if you went to yale or oxford or ecole normale ... 0 chance. Most charitable interepretation: some pages of it + was on a bibliography. not required reading.

if feel embarrassed, that is the consequence for lieing. There is such a thing as intellectual honesty.

rramadass 18 hours ago

nimih 19 hours ago

mathisfun123 20 hours ago

mathisfun123 19 hours ago

link the syllabi for the classes

debo_ 18 hours ago

jonjacky 6 hours ago

Principia Mathematica Maps and Table Site (PM-MATS):

https://principia.lib.uiowa.edu/about.html

"The goal of this project is to make clear structural connections between different parts of Principia and to make analyzable data about the theorems, definitions, and primitive postulates in its text. We do this by providing three digital tools ..."

For example here is their take on the celebrated proof in PM that 1 + 1 = 2

https://principia.lib.uiowa.edu/?n=110.643&n=110

nitsuaeekcm 16 hours ago

For those who aren't familiar with the great but tragic story of Principia and Russell's quest for the foundation of math (spoiler: there is none), there's a really great graphic novel called Logicomix https://en.wikipedia.org/wiki/Logicomix I haven't read it in probably ten years, but it's one of those books and stories I spend an inordinate amount of time thinking about, for whatever reason.

emil-lp 15 hours ago

The foundation of math is (mostly) ZFC.

igravious 14 hours ago

It is not. The foundation of math is contested -- but afaik it is widely held that HoTT is the, erm, hottest contender to the throne https://en.wikipedia.org/wiki/Homotopy_type_theory

qbit42 14 hours ago

ogogmad 8 hours ago

sergius 6 hours ago

This book is an interesting approach to The Principia:

Magnificent Principia (2013), by Colin Pask

https://devontrevarrowflaherty.com/2014/08/26/book-review-pr...

layer8 6 hours ago

The article is about Russell and Whitehead’s Principia, not Newton’s.

sergius 5 hours ago

Oops wrong principia :-)

1vuio0pswjnm7 3 hours ago

Domainname optional

https://216.92.24.179/ftp/

lordleft 11 hours ago

It blows my mind that Russell invented (formalized) types. Such an elemental concept, but so useful.

layer8 6 hours ago

Russell’s types aren’t really the same notion as types in programming: https://planetmath.org/russellstheoryoftypes

zual 6 hours ago

it seems that someone wants to traduce the PM in lean here : https://github.com/l-pommeret/Principia-Mathematica (probably with the use of llms)

titanomachy 5 hours ago

"traduce" doesn't have the same meaning in English as it does in Spanish. The translation of "traducir" is "to translate".

black_knight 14 hours ago

I miss modernism!

d4rkp4ttern 11 hours ago

An interesting fact I learned while reading The Dream Machine[1], is that Principia was the basis of Newell, Simon and Shaw’s Logic Theorist (1956), considered to be the “first AI program”. Amusing and amazing to see this in the context of today’s Erdos-slaying LLMs.

Quoting from Wikipedia:

https://en.wikipedia.org/wiki/Logic_Theorist

Logic Theorist is a computer program completed in 1956 by Allen Newell, Herbert A. Simon, and Cliff Shaw.[1] It was the first program deliberately engineered to perform automated reasoning, and has been described as "the first artificial intelligence program".[1][a] Logic Theorist proved 38 of the first 52 theorems in chapter two of Whitehead and Bertrand Russell's Principia Mathematica, and found a new and shorter proof for Theorem 2.85.[3]

[1] https://press.stripe.com/the-dream-machine

voidhorse 20 hours ago

I have a copy and like it much. However, i was always partial to Frege's Begriffschrift. His notation was really creative. It's a shame Russel's deflation of that project has sentenced it to the rubbish heap of history.

igravious 14 hours ago

The Begriffschrift has in no way been consigned to the rubbish heap of history. What gave you that impression? It is seminal. That it had one unresolved paradox in its set-theoretic foundations does not scupper the philosophical insights, nor the creative notation, nor the more-or-less novel approach of conjoining mathematical functions and logic to give us predicate logic (apologies for this brutally simplified sketch)

i like to think of Frege and the Begriffschrift like this

Boole: logic + algebra = algebraic logic

Frege: logic + functions = predicate logic

ergo, if Boole is rightly deified then so should Frege regardless of minor infelicities (which prompted type theory anyhow) -- again, apologies if this is totally misleading

TimorousBestie 19 hours ago

Instead of spending time beating one’s head against Russell and Whitehead, I would advise reading Homotopy Type Theory (aka the HoTT Book). Dependent types are cool and mind-expanding, but higher inductive types are downright mind-altering.

The Little Schemer/Typer could be used as a preparatory text to gear one up for HoTT.

It also has the advantage of being a bit more applicable to functional programming languages, maybe even more so than Mac Lane’s Categories for the Working Mathematician (which I sometimes see suggested to mathematically-inclined Haskell novices).

js8 16 hours ago

I tried to read HoTT. First chapter on type theory is great and pretty easy to follow. The second chapter, I got completely lost. I don't remember why, maybe they fixed it since.

But I find univalence axiom intriguing. I am interested in different approach to types, using triage calculus, which is more "materialist" than "structuralist" - type is given by the structure of the (quoted) term in normal form (unlike lambda calculus, triage calculus makes quoting easy). And I feel like univalence is related to quoting, something like if the two quoted terms are equal under "standard self-interpreter", then they are equal.

leonidasrup 15 hours ago

I would highly recommend "PROGRAM = PROOF" by Samuel Mimram.

It covers everything from pure lambda calculus through dependent type theory up to homotopy type theory. In comparison to the HoTT book, the book "PROGRAM = PROOF" is oriented less towards mathematicians more towards programmers. It contains also a short introduction to OCaml and Agda.

The book can downloaded from the authors web page:

https://www.lix.polytechnique.fr/Labo/Samuel.Mimram/teaching...

https://www.lix.polytechnique.fr/Labo/Samuel.Mimram/publicat...

jerf 8 hours ago

This is probably a reasonable example of a case where an AI can really help out as an endlessly patient assistant to answer your personal questions in a conversational format.

It is possible it may get something wrong but as long as you keep beating on the wrongness you should eventually be able to work out what it is, and in its own way that would become possibly the best learning exercise there is. And of course, with the math proofs coming through from AIs lately, I wouldn't guarantee you'll see that much wrong stuff. I expect it would be at a low enough rate to keep you learning... after all, anyone who has had serious math education knows the human teachers aren't always completely correct either and there is the occasional impromptu exercise of everyone staring at the board and trying to figure out what went wrong with the demonstration.

js8 7 hours ago

TimorousBestie 7 hours ago

> I am interested in different approach to types, using triage calculus, which is more "materialist" than "structuralist" - type is given by the structure of the (quoted) term in normal form (unlike lambda calculus, triage calculus makes quoting easy).

Interesting, dropping this link here for others: https://treecalcul.us/

js8 6 hours ago

zmgsabst 9 hours ago

HoTT distinguishes equality from equivalence.

Univalence says that equality is equivalent to equivalence, ie, formalizing the notion of when we can use equivalence rather than equality as a step in a proof. In practice, we often only care about proofs “up to equivalence”.

A way to think about this:

- equality is an identity map

- equivalence is an isomorphism

For example, 2 in Z and 2 in R do not have an identity map between them — but do have an isomorphism.

I think the key insight of univalence is not collapsing equivalence into equality — but allowing it to remain a second truth relation.

We don’t want 2 in Z to be equal to 2 in R (because we collapse type distinction), but we do want them to be equivalent — so we can do equivalent reasoning about arithmetic in R to reach conclusions about Z.

js8 7 hours ago

fn-mote 9 hours ago

> maybe even more so than Mac Lane’s Categories for the Working Mathematician (which I sometimes see suggested […])

FWIW, I am very against this recommendation. That book is needlessly opaque. I don’t know a good recommendation for category theory, but that isn’t it.

TimorousBestie 7 hours ago

David Spivak (no relation to Calculus Spivak) wrote a book called _Category Theory for the Sciences_ that could totally serve as the basis for a one-semester undergrad course with some work.

He really likes working in informal categories (like his “ologs”) but I haven’t taught from it yet so I’m not sure if it is more or less confusing to introduce categories that way.

vixen99 11 hours ago

Tangential but for those who don't know it, Whitehead's Science and the Modern World (1925) is a fascinating read.

makerdiety 17 hours ago

So... the ancient childish attempt to prove mathematics using mathematics (Gödel's Incompleteness slew the challenger) can be used to help me be a better TypeScript programmer? I learned something new today.

bulbar 16 hours ago

Why the belittling language? You actually can prove the completeness and consistency of portions of mathematics.

While axioms were known in ancient times, only Hilbert started the whole "prove Mathematics" thing.

How else would you prove mathematics and why would that be childish to use math? The limitations discovered were quite surprising back then.

makerdiety 11 hours ago

Yikes, guys/girls. I got downvoted to -4 points for a misunderstanding or something. Because the author of the website would probably agree with my simple point that although the Principia Mathematica tried to do the impossible, there is still utility for its value as a programming self-teaching resource for serious students of computer science.

Wow. Yeah. You guys ironically didn't just throw out the baby with the bath water thing. You burned me at the stake like a witch for heresy. Due to your cognitive biases and distortions.

You guys are Imperium of Mankind coded or something?

bulbar 2 hours ago

gjm11 7 hours ago

asimpletune 7 hours ago

data_maan 16 hours ago

It always amazes me how a random dump of someone who read the first 40 pages of PM attracts dozens comments on HN.

This really must be a very math-starved community of people who wanted to learn math but never quite could.

laichzeit0 16 hours ago

Two thoughts on someone who went out of their way to learn math:

1. If you can already program, the worst thing you can do is think of mathematics as learning a programming language. It is not, and you will waste your time being frustrated with things like syntax and notation. You get “used to” mathematics by doing it, and it’s something on its own. Just go with it. It’s ok to be confused.

2. Do the exercises, and stop asking for “solution manuals”, the point is to get you thinking and the struggle is most important part, not whether you got it “right”. Again, I think this is a programmer centric way of looking at things: “how do I know it’s right if I can’t compile it”.

Maybe that’s why programmers like the foundations of mathematics. Like if somehow they could just go to the bottom of things, the assembler/machine code of sorts, the whole enterprise would make sense. Counterintuitively, the really great mathematicians of yore, did mathematics before it was anywhere close to formalized.

firmretention 10 hours ago

>Again, I think this is a programmer centric way of looking at things: “how do I know it’s right if I can’t compile it”.

I would argue this would only be true for those without formal education. Writing your code on paper is very common in CS courses. You get used to not being able to compile it.

futune 12 hours ago

I think your latter comment is kind of analogous to people writing python (or any high-level language) without understanding assembly. I think maybe that reduces the mystery a bit?

WillAdams 10 hours ago

vixen99 11 hours ago