I think most of us who really like it read it as kids which colors it too much. I distinctly remember this proof that you can't solve the MU-puzzle as the first piece of mathematics I ever saw. In one swoop I discovered impossibility proofs, invariants, and the use of divisibility which suffused the whole book with an aura of initiation into great mysteries that it will never attain for the already-initiated.
I read it in art school (swiped from my then-girlfriend's bookshelf), and it was nice to have a connection between my school of art weirdos and putting myself through the same school by teaching myself software engineering. I distinctly remembering writing a Perl script to highlight that the Mu puzzle is unsolvable.
#!/usr/bin/perl -w
use strict;
my %tried = ();
main();
sub main {
my @rules = (
\&rule_one,
\&rule_two,
\&rule_three,
\&rule_four,
);
my $axiom = 'MI';
my @path;
my @tries;
solve($axiom, \@rules);
}
sub solve {
my @app;
my ($axiom, $rules) = @_;
my $i = 0;
foreach(@$rules){
my $tmp = $_->($axiom);
push(@app, $tmp) if $tmp;
}
foreach(@app){
next if $tried{$_};
next unless (length($_) < 1000);
print $_ . "\n";
$tried{$_} = 1;
if($_ eq 'MU'){
print "YES!\n\n\n";
exit;
}
solve($_, $rules);
}
}
sub rule_one {
# If any string ends in I, you can append U
my $str = shift;
if ($str =~ m/I$/){
return $str . 'U';
}else{
return undef;
}
}
sub rule_two {
# If any string begins with M,
# you can duplicate the string after M,
my $str = shift;
if($str =~ /^M/){
return 'M' . substr($str, 1) . substr($str, 1);
}else{
return undef;
}
}
sub rule_three {
# If any string contains III,
# you can replace the III with U
my $str = shift;
if($str =~ /III/){
$str =~ s/III/U/g;
return $str;
}else{
return undef;
}
}
sub rule_four {
#If any string contains UU,
# you can delete the UU
my $str = shift;
if($str =~ /UU/){
$str =~ s/UU//g;
return $str;
}else{
return undef;
}
}
It was published almost 40 years ago. I think to get the best experience of it, you have to have read it back then, or read it as a precocious 14 year old. If you read it with a graduate or even undergraduate understanding of computer science, you're probably not going to get much out of it on the technical side; and I think a lot of his conjectures about how the mind works didn't really pan out.
If you approach it as an object of art, the book is fun because it embeds into itself many of the techniques and principles it describes (but you'll only notice this if you're paying attention). This is kinda cool on a meta-meta level because the central concept of the book is self-referentiality.
I always find the Gödel representations using powers of primes too strange. It's technically correct, I can follow the proof, but there is a small corner of my mind that can't believe it.
The GEB book doesn't have all the details, but it uses the ASCII representations (actually base 20 but whatever). With the ASCII representation the theorem feels obvious.
There is a section in the book where he laments that certain mediums (like books, and movies) leak information about where the story ends (because in a book as you are reading it you will know you are coming towards the end). He explained one way to avoid this and retain some mystery in story-telling would be to finish the story some distance before the end and pad the remainder of the book with blank pages. However blank pages are too easy to spot if someone happens to flick through the book before hand, so instead it would be better to pad the book with text which appears to be related to the primary story and therefore is undetectable unless someone reads through the whole book in order.
And of course, this is explained in one of the dialogues, which is structured exactly like this - after it ends, there is some fake padding dialogue afterwards to hide where the actual ending is...
Opinions differ: https://blog.infinitenegativeutility.com/2018/7/why-i-dont-l... Fwiw, I liked it but some parts of the book which is from 1979 hasn't aged too well. For example, Hofstadter didn't realize how well computer programs could simulate what he thought was intelligent behavior such as chess playing.