hn-classics/_stories/2008/10791113.md

222 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
created_at: '2015-12-25T12:57:10.000Z'
title: How Dr. Seuss would prove the halting problem undecidable (2008)
url: http://ebiquity.umbc.edu/blogger/2008/01/19/how-dr-suess-would-prove-the-halting-problem-undecidable/
author: amelius
points: 99
story_text:
comment_text:
num_comments: 8
story_id:
story_title:
story_url:
parent_id:
created_at_i: 1451048230
_tags:
- story
- author_amelius
- story_10791113
objectID: '10791113'
year: 2008
---
[Source](http://ebiquity.umbc.edu/blogger/2008/01/19/how-dr-suess-would-prove-the-halting-problem-undecidable/ "Permalink to How Dr. Seuss would prove the halting problem undecidable")
# How Dr. Seuss would prove the halting problem undecidable
| ----- |
| ![][1] | ![][1] | ![][1] | ![][1] | ![][1] |
| ![][1] | [UMBC_ e_biquity][2] | | ![][3] ![][4] ![][5] ![][6] | ![][1] |
![about us][7]![research][8]![people][9]![publications][10]![news][11]![photos][12]![events / talks / meetings][13]![blog][14]![tags][15]![internal][16]![more][17]
| ----- |
| ![][1] | ![][1] | ![][1] | ![][1] | ![][1] |
| ----- |
| ![][1] | ![][1] | ![][1] | ![][1] | ![][1] |
| ![][1] |
How Dr. Seuss would prove the halting problem undecidable
![][1]
« [Semantic Wave 2008: Industry Roadmap to Web 3.0][18]
[Social Web Technologies, UMBC, Spring 2008, MW 7:10pm][19] »
## [How Dr. Seuss would prove the halting problem undecidable][20]
Tim Finin, 11:12am 19 January 2008
I just discovered (via [del.icio.us/polular][21]) an extraordinary proof of the [halting problem][22] by linguist [Geoffrey Pullum][23], now at the University of Edinburgh. Whats unusual about it is that its written as a poem in the style of Dr. Seuss.
> Geoffrey K. Pullum, Scooping the loop snooper: An elementary proof of the undecidability of the halting problem. Mathematics Magazine 73.4 (October 2000), 319-320.
Its a marvelous proof, sure to liven up any undergraduate theory of computation class. But I noticed errors in the proof — not logical errors, but a transcriptional ones in the form of a mangled word, perhaps introduced by an OCR system. The third line of the fifth stanza reads _“that would take and program and call P (of course!)”_ which has problems in syntax, semantics, rhythm and meter. Id guess it should be _“that would take _any_ program and call P (of course!)”_. Similarly, _“the”_ in the third line in the third stanza should probably be _“they”_. Most of the online version I found had these errors, but I eventually found what I take to be a correct version on the [QED][24] blog. Ive not been able to get to the original version in Mathematical Magazine to verify the corrected version which I include below.
* * *
 
**Scooping the Loop Snooper**
an elementary proof of the undecidability of the halting problem
Geoffrey K. Pullum, University of Edinburgh
No program can say what another will do.
Now, I wont just assert that, Ill prove it to you:
I will prove that although you might work til you drop,
you cant predict whether a program will stop.
Imagine we have a procedure called P
that will snoop in the source code of programs to see
there arent infinite loops that go round and around;
and P prints the word “Fine!” if no looping is found.
You feed in your code, and the input it needs,
and then P takes them both and it studies and reads
and computes whether things will all end as they should
(as opposed to going loopy the way that they could).
Well, the truth is that P cannot possibly be,
because if you wrote it and gave it to me,
I could use it to set up a logical bind
that would shatter your reason and scramble your mind.
Heres the trick I would use and its simple to do.
Id define a procedure well name the thing Q
that would take any program and call P (of course!)
to tell if it looped, by reading the source;
And if so, Q would simply print “Loop!” and then stop;
but if no, Q would go right back to the top,
and start off again, looping endlessly back,
til the universe dies and is frozen and black.
And this program called Q wouldnt stay on the shelf;
I would run it, and (fiendishly) feed it _itself_.
What behaviour results when I do this with Q?
When it reads its own source, just what will it do?
If P warns of loops, Q will print “Loop!” and quit;
yet P is supposed to speak truly of it.
So if Qs going to quit, then P should say, “Fine!”
which will make Q go back to its very first line!
No matter what P would have done, Q will scoop it:
Q uses Ps output to make P look stupid.
If P gets things right then it lies in its tooth;
and if it speaks falsely, its telling the truth!
Ive created a paradox, neat as can be
and simply by using your putative P.
When you assumed P you stepped into a snare;
Your assumptions have led you right into my lair.
So, how to escape from this logical mess?
I dont have to tell you; Im sure you can guess.
By _reductio_, there cannot possibly be
a procedure that acts like the mythical P.
You can never discover mechanical means
for predicting the acts of computing machines.
Its something that cannot be done. So we users
must find our own bugs; our computers are losers!
### Related posts:
1. [Researchers prove Rubics Cube solvable in 20 moves or less ][25]
2. [Got a linguistic fluff problem? ][26]
3. [Parsing Perl considered undecidable ][27]
4. [Game theoretic analysis of the toilet seat problem ][28]
* * *
**Categories:** [GENERAL][29], [Humor][30] **Comments: ** Comments Off on How Dr. Seuss would prove the halting problem undecidable
Comments are closed.
| ![][1] |
![][31][Ebiquity Blog][32]
  [Home][33] | [Archive][34] | [Login][35] | [ Feed ![][36]][37]
![][31][Ebiquity Recent Posts][38]
* [paper: Cleaning Noisy Knowledge Graphs][39]
* [Videos of ISWC 2017 talks][40]
* [Jennifer Sleeman receives AI for Earth grant from Microsoft][41]
* [Link Before You Share: Managing Privacy Policies through Blockchain][42]
* [paper: Automated Knowledge Extraction from the Federal Acquisition Regulations System][43]
![][31][Ebiquity rdfs:seeAlso][44]
| ![][1] |
| ----- |
| [UMBC][45]  | [home][2] · [contact][46] · [about][47] · [site map][48] · [legal][49] · [privacy][50] · ©1999-2018 ebiquity · design/code ©2003-2018 [Filip Perich][51] · [XG][52]
![][1]
[1]: http://ebiquity.umbc.edu/img/d.gif
[2]: http://ebiquity.umbc.edu/
[3]: http://ebiquity.umbc.edu/img/twitter-icon-32x32.png "ebiquity on Twitter"
[4]: http://ebiquity.umbc.edu/img/facebook-32x32.png "ebiquity on Facebook"
[5]: http://ebiquity.umbc.edu/img/feed-icon-32x32.png "ebiquity RSS feed"
[6]: http://ebiquity.umbc.edu/img/email-icon-32x32.png "email ebiquity"
[7]: http://ebiquity.umbc.edu/img/mn/ab0.gif
[8]: http://ebiquity.umbc.edu/img/mn/re0.gif
[9]: http://ebiquity.umbc.edu/img/mn/pe0.gif
[10]: http://ebiquity.umbc.edu/img/mn/pu0.gif
[11]: http://ebiquity.umbc.edu/img/mn/ne0.gif
[12]: http://ebiquity.umbc.edu/img/mn/ph0.gif
[13]: http://ebiquity.umbc.edu/img/mn/ev0.gif
[14]: http://ebiquity.umbc.edu/img/mn/bl0.gif
[15]: http://ebiquity.umbc.edu/img/mn/ta0.gif
[16]: http://ebiquity.umbc.edu/img/mn/in0.gif
[17]: http://ebiquity.umbc.edu/img/mn/mo0.gif
[18]: https://ebiquity.umbc.edu/blogger/2008/01/18/semantic-wave-2008-industry-roadmap-to-web-30/
[19]: https://ebiquity.umbc.edu/blogger/2008/01/20/social-web-technologies-umbc-spring-2008-mw-710pm/
[20]: https://ebiquity.umbc.edu/blogger/2008/01/19/how-dr-suess-would-prove-the-halting-problem-undecidable/ "Permanent Link: How Dr. Seuss would prove the halting problem undecidable"
[21]: http://del.icio.us/popular/
[22]: http://en.wikipedia.org/wiki/Halting_problem
[23]: http://ling.ed.ac.uk/~gpullum/
[24]: http://www.vervloesem.eu/qed/?p=146
[25]: https://ebiquity.umbc.edu/blogger/2010/08/13/researchers-prove-rubics-cube-solvable-in-20-moves-or-less/ "Researchers prove Rubics Cube solvable in 20 moves or less"
[26]: https://ebiquity.umbc.edu/blogger/2009/05/04/got-a-linguistic-fluff-problem/ "Got a linguistic fluff problem?"
[27]: https://ebiquity.umbc.edu/blogger/2008/01/28/parsing-perl-considered-undecidable/ "Parsing Perl considered undecidable"
[28]: https://ebiquity.umbc.edu/blogger/2006/02/07/game-theoretic-analysis-of-the-toilet-seat-problem/ "Game theoretic analysis of the toilet seat problem"
[29]: https://ebiquity.umbc.edu/blogger/category/general/
[30]: https://ebiquity.umbc.edu/blogger/category/general/humor/
[31]: http://ebiquity.umbc.edu/img/up.gif
[32]: https://ebiquity.umbc.edu/blogger/
[33]: https://ebiquity.umbc.edu/blogger
[34]: https://ebiquity.umbc.edu/blogger/ebiquity-blog-archives/
[35]: https://ebiquity.umbc.edu/blogger/wp-login.php
[36]: https://www.feedburner.com/fb/images/pub/feed-icon16x16.png
[37]: https://feeds.feedburner.com/ebiquity
[38]:
[39]: https://ebiquity.umbc.edu/blogger/2018/01/27/paper-cleaning-noisy-knowledge-graphs/ "Permanent Link: paper: Cleaning Noisy Knowledge Graphs"
[40]: https://ebiquity.umbc.edu/blogger/2017/12/16/videos-of-iswc-2017-talks/ "Permanent Link: Videos of ISWC 2017 talks"
[41]: https://ebiquity.umbc.edu/blogger/2017/12/12/jennifer-sleeman-receives-ai-for-earth-grant-from-microsoft/ "Permanent Link: Jennifer Sleeman receives AI for Earth grant from Microsoft"
[42]: https://ebiquity.umbc.edu/blogger/2017/12/04/link-before-you-share-managing-privacy-policies-through-blockchain/ "Permanent Link: Link Before You Share: Managing Privacy Policies through Blockchain"
[43]: https://ebiquity.umbc.edu/blogger/2017/11/28/paper-automated-knowledge-extraction-from-the-federal-acquisition-regulations-system/ "Permanent Link: paper: Automated Knowledge Extraction from the Federal Acquisition Regulations System"
[44]: http://delicious.com/ebiquity/seealso
[45]: https://www.cs.umbc.edu/
[46]: http://ebiquity.umbc.edu/us/contact/
[47]: http://ebiquity.umbc.edu/us/
[48]: http://ebiquity.umbc.edu/map/
[49]: http://ebiquity.umbc.edu/legal/
[50]: http://ebiquity.umbc.edu/legal/privacy/
[51]: http://perich.net/
[52]: http://perich.net/work/xg_shared_spectrum.php