The Mathematica Journal
Departments
Current Issue
Tricks of the Trade
In and Out
Riemann Surfaces IIc
The Mathematica Programmer
New Products
New Publications
Classifieds
Calendar
News Bulletins
Library
Editor's Pick
Mailbox
FAQ
Write Us
About the Journal
Staff and Contributors
Submissions
Subscriptions
Advertising
Back Issues
Home
Download This Issue

How Do You Solve a Problem Like ?

Chaitin's work focuses on the problems of mathematical "truth" as a convenient fiction. There are infinitely many possible mathematical facts, but, according to Chaitin, the underlying relationships among them are impossible to establish. This isn't good news for anyone interested in a "theory of everything," since, if the foundation is built on cottage cheese, the tower is going to be a bit tippy at best. Even worse, Chaitin's results demonstrate that not only is there no structure to the foundation of mathematics, the foundation is in fact random. Bad news, reductionists!

In the end it all comes down to, well, the end: . Chaitin's constant, , is best thought of as the probability that a given program will halt when run on a universal Turing machine . This halting probability can be empirically explored, which is my favorite part of this whole enterprise. The idea of treating mathematics as an experimental science rather than just relying on a pseudo-philosophical (and some might even say dogmatic) footing is particularly exciting to me. Of course, I'm biased anyway, since I do experiments for a living, but that aside, empiricism seems to have a bit to offer to mathematics, especially in the domain Chaitin is interested in pursuing.

Chaitin's LISP

To provide some tools to explore his point, Chaitin gives us a slightly modified LISP interpreter--implemented in C, as a Java applet, and in Mathematica. The Mathematica implementation uses the kernel as a sort of batch processor, defining run[] as a function that takes an input file name, the contents of which are evaluated and an output file created.

To simplify input matters a bit, we can define the following function that will allow us to do our I/O directly from within Mathematica.

And here we run a simple expression.

Chaitin's LISP has all of the usual features, but it also includes a set of functions for exploring information, including bits, read-bit, read-exp, and try. Furthermore, as demonstrated above, constraining the built-in functions to have a fixed number of parameters allows for input in M-expression form, resulting in a serious reduction in the number of parentheses necessary.


Copyright © 2002 Wolfram Media, Inc. All rights reserved.

[Article Index][Prev Page][Next Page]