Hacker News new | past | comments | ask | show | jobs | submit login
A Python implementation of formal systems from the book “Gödel, Escher, Bach” (github.com/alexprengere)
310 points by geospeck on March 30, 2017 | hide | past | favorite | 45 comments



My implementation of M-I-U, more than 30 years ago, as a kid, in Turbo Pascal.

https://github.com/ehud/MIU


That's really cool and impressive that you saved it for so long! Clean code, too :)


Thanks. It is a miracle something survived on those floppies, let alone computer deaths... The directory they are under is called "Y2K Backup\MYFILES\Ancient Pascal Disk 3"...


Sometimes I wish I would've saved code from my younger days so I could go back and hack on them again, to bad github didn't exist back then.


Cool, compiles and runs in Turbo 7 under DOSBox.

http://imgur.com/a/V7BAD


I was asked how to install Pascal now, but I have no idea. I suspect the code relies on DOS and Turbo Pascal too much to run now without jumping through some hoops.


I had a quick look through it, you might be able to run it with FreePascal.

http://www.freepascal.org/


Thanks!


Didn't the original PC have lowercase? I thought I programmed TP in mixed-case, but can't remember.


Pascal wasn't case sensitive, so it was mostly a matter of style.

On Modula-2 and Oberon languages and their descendants keywords are uppercase and the languages are case sensitive.

But you could anyway write in lowercase and let the editor format the code for you, no need for banging the shift key all the time. :)

Actually I kind of like having keywords as uppercase, it means on a poor man's teletype or modern black-and-white printer without formatting, it is easier to spot the keywords versus the rest of code.


I definitely programmed TP 1.0 in mixed case on a TRS-80 Model II running CP/M.


Sure. It was a style thing!


For those not in the know, the first book ever bought from Amazon was Douglas Hofstadter's "Fluid Concepts and Creative Analogies : Computer Models of the Fundamental Mechanisms of Thought"


Did he get that right or do neuroscientists dispute his models?


Most neuroscientists don't try to tackle such philosophical topics, unfortunately.


Here is an introduction to the MIU formal system for someone who hasn't read GEB.

https://sirodoht.xyz/blog/the-miu-formal-system/


Thanks for sharing. This is also a nice answer to the MU puzzle, mentioned at the end of the article: https://en.wikipedia.org/wiki/MU_puzzle


On a related note, if you are interested in learning more about Godel and the Incompleteness Theorem and its significance, I recommend the book Incompleteness by Rebecca Goldstein.


I remember doing this with pen and paper ages ago when I read the book. Somehow it clicked with me a lot better than my Abstract Algebra lectures.


I did that too; I remember the squares paper in the book. I see it in front of my eyes still. Good memories at some Portugal vacation with my parents in the 80s.


Author here! Thanks for the post :)


Here's some more Python related to the book (by a coworker):

https://github.com/Quuxplusone/TNT


I once did an introductory talk to Agda that was structured around solving the MU problem, i.e. proving that MU is not derivable in MIU: https://unsafePerform.IO/projects/agda/sg-meetup/SGMeetup.pd... (the MIU bit starts in Part III, slide 46)


Nice, I wrote code for MU as well. What about BlooP and friends?


There's only one of those "friends" (FlooP): Hofstadter explained that there is no more powerful "GlooP" language, because FlooP turns out to be as powerful as any computing formalism that can be implemented on a computer.

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


I'd be interested in seeing implementation of the machine learning systems from "fluid concepts"


Fluid Concepts and Creative Analogies is a wonderful book. I wouldn't call the systems they build upon (such as lMetacat [1] and Tabletop [2]) "machine learning"...

[1] http://science.slc.edu/jmarshall/metacat/

[2] https://deepblue.lib.umich.edu/handle/2027.42/105891

I'd also like to see FARGonauts / Center for Research on Concepts and Cognition style software implementations around... I have run with success this python implementation of Copycat:

https://github.com/ajhager/copycat


The original version in Common Lisp is also available: http://web.cecs.pdx.edu/~mm/how-to-get-copycat.html


I implemented it in Python (while reading from that LISP version, a Java version, and Melanie Mitchell's "Analogy-Making as Perception"): https://github.com/jalanb/co.py.cat


A link on the book for other ignoramuses like me. Dunno how I've never heard of it.

(It's also by Douglas Hofstadter.)

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


Its maybe a matter of taste but I find his other work to be rather pretentious, although geb is entertaining and somewhat useful (I half liked le ton beau de marot).

I really think k there's something useful.in fluid concepts that maybe can help with low data learning. I think geoffrey Hinton hints at it in his lecture about trying to do pca on learned neural states to find manyfold correlations which in high dimensional states are stronger to be nonrandom.


Where's typogenetics? :D


It'd be great to get all of DH's code online. Even the scratch and mistakes and half baked ideas and notes and...

heavy-breathing


I am not a mathematician but are there any others who have problems with Godel's 'Theorem'?


I'm not sure why you have it in quotes. But FWIW, most of my questions were cleared up by these two wonderful books: Peter Smith's An Introduction to Gödel's Theorems and Torkel Franzén's Gödel's Theorem: An Incomplete Guide to Its Use and Abuse


This is a good, assessable discussion:

http://www.scottaaronson.com/blog/?p=710


It is not a trivial or easily intuitive problem.

Why do you think this book was written for?

Trivial things don't deserve such wonderful treatment.


Why would you have problems with Gödel's incompleteness theorems (which are, I assume, the ones you are referring to), and why do you put 'theorem' in quotes as if they aren't actually theorems?


A sort of uneasiness about their symbolic basis to start off with, nothing subsequent - I can follow it. Lack of understanding. That 'it smells' feeling. I'm not suggest they are wrong, just asking. Its okay to ask?


Well perhaps you have the same problem as Whitehead and Russell? In GEB Hofstadter IIRC is quite harsh on them for their intellectual timidity in not being able to face the paradox inherent in Godel's Theorem...Paradoxes can "feel" uncomfortable.


That sufficiently capable logical systems are necessarily incomplete can be uncomfortable, especially if the beauty of completeness has been your lifelong goal.

But on the other hand, it's very cool that this provides an opening for consciousness and free will to arise.


How are consciousness and free will implied by incompleteness of formal systems?



Hot damn dude, 14000000


If you want something that will feel more intuitive then quantum computing since democritus has a proof related to Turing machines that always seemed far more intuitive to me. http://www.scottaaronson.com/democritus/lec3.html




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: