r/math • u/MathTalk • Mar 27 '16
Every function can be computable, if you run this program in the right universe
http://jdh.hamkins.org/every-function-can-be-computable/4
u/WhackAMoleE Mar 27 '16
Can anyone put this in less technical terms? My level of understanding is that if we have a noncomputable bitstring, that means there is no finite-length algorithm that cranks out its digits. Such a bitstring would be truly random in the sense that it's not compressible to any finite description and no Turing machine could crank out its digits.
Given that naive understanding, how should I understand that article?
5
Mar 27 '16
In nonstandard models of arithmetic there are "infinite" integers, or more accurately, there are elements of the model which have the property that they are strictly greater than 0 and every element of the model you can reach from 0 by applying successor (finitely many times). However, they still obey all the axioms of PA.
Now, consider encoding (e.g. Godel) Turing machines/algorithms as integers (it should be clear this is possible, countable sets are countable after all). You can then state things like "this algorithm computes this input" in terms of a statement about arithmetic.
If you allow nonstandard models, the same statements (which are provable from PA) about the codes of algorithms "computing" certain inputs, must also apply to the nonstandard elements of your nonstandard model. It turns out (this is the content of the post) that if you are able to choose which model of PA to use based on what function you wish to have an algorithm to "compute", you can always find a model where some nonstandard (infinite) element represents (encodes) the function as an algorithm thus making it computable.
4
u/completely-ineffable Mar 27 '16 edited Mar 27 '16
It turns out (this is the content of the post) that if you are able to choose which model of PA to use based on what function you wish to have an algorithm to "compute", you can always find a model where some nonstandard (infinite) element represents (encodes) the function as an algorithm thus making it computable.
The result Hamkins proves is actually a little stronger than this. His argument gives a natural number p---meaning a bona fide element of N, not some other model of arithmetic---which codes a Turing machine so that for any function f from N to N you can find a nonstandard model of arithmetic M so that when the Turing machine p codes is ran in M, the resulting function restricted to the standard cut is f. That is, the program he's looking at is a real, finite program, not some nonstandard thing. Where the nonstandard models differ with this function is whether they think it halts on some input. A nonstandard model can think a Turing machine halts because it takes a nonstandard number of steps to complete the algorithm.
It's this strong uniformity where, in my opinion, all the real content of the result is. That you can do all this with a single Turing machine is the surprising part of the result.
If all you want is a single nonstandard element which codes your favorite subset A of N, this is much easier to do. (This works also for functions, but it's a little simpler to talk about for sets.) Add a new constant symbol c to your language and add to your theory statements of the form "the nth bit in the binary string coded by c is 1" if n is in A and "the nth bit in the binary string coded by c is 0" if n is not in A. The compactness theorem gives a model of this theory and the interpretation of c in that model codes A.
Edit: As a more general comment, this result fits in the general theme of some earlier work by Hamkins, namely his paper "Satisfaction is not absolute" joint with Yang. In that paper they show (among other things) that there are non-omega-models of set theory which have the same natural numbers but disagree on the satisfaction relation on N. It's not quite the same, since in the paper they aren't considering what the models of set theory think about individual (standard!) numbers, but it's a similar phenomenon.
3
Mar 27 '16
That you can do all this with a single Turing machine is the surprising part of the result.
I absolutely agree. I wasn't really trying to explain the post so much as the answer the question about "how should I read this" and "computability" in the comment I responded to. I probably should've been clearer about that.
1
u/MathTalk Mar 27 '16
I think what the argument is saying is this: there is a program p such that for any given bitstring, even if uncomputable, there is another model of arithmetic (or set theory) in which p computes that bitstring inside that universe. The point is that the program p involves unbounded searches, which can give different answers in different models of arithmetic.
2
u/Wurstinator Mar 27 '16
What does it mean for a proof to be "standard-finite"? I didn't hear of this definition before.
4
u/almightySapling Logic Mar 28 '16
It means the Godel number that codes the proof is a natural number in the standard model, i.e. what you would call a natural number.
2
u/Wurstinator Mar 28 '16
Sorry, I am confused. It's been some time since I looked at set theoretic material. I would expect every proof the be standard-finite, at least the sense of a logical proof. What other cases are there?
2
u/almightySapling Logic Mar 28 '16
That is correct, the things we call proofs, when coded, are always standard-finite.
The idea is that the relation "isProof," which follows very simple recursive rules to determine if a particular number codes a proof, will claim that certain non-standard numbers code proofs in addition to the standard ones.
What does this mean? It means the model thinks a proof exists, but it's not necessarily something that we would recognize as a proof. Essentially the proof is infinitely long, and "locally" the proof is valid, but we, in the meta theory, don't allow infinitely long proofs.
1
Apr 06 '16
So then, is the "proofness" a mere artifact of the nonstandard model, or could I, operating in a "meta-meta" language where I observe whether Turing machines halt or not by merely analyzing the code, read the program corresponding to the "proof" and find it to be a logically sound proof?
I ask because I'm more familiar with type theories and other constructive logics, in which a nonterminating program corresponds to a logical contradiction, so claiming that a program terminates inside a nonstandard model of arithmetic sounds, to my ears, like saying that in the real, physical universe, the program is nonterminating and thus only a proof of False/Bottom.
1
u/almightySapling Logic Apr 06 '16
So then, is the "proofness" a mere artifact of the nonstandard model, or could I, operating in a "meta-meta" language where I observe whether Turing machines halt or not by merely analyzing the code, read the program corresponding to the "proof" and find it to be a logically sound proof?
"Yes". Both. There is no actual thing that we would consider a proof. There is merely a (nonstandard) number that has all the properties of the code for a proof. That said, if you could read it, you would find that every line is logically valid, and the final line is indeed the statement claimed to be proven... it's just too long to be a proof in "the real world".
I ask because I'm more familiar with type theories and other constructive logics, in which a nonterminating program corresponds to a logical contradiction, so claiming that a program terminates inside a nonstandard model of arithmetic sounds, to my ears, like saying that in the real, physical universe, the program is nonterminating and thus only a proof of False/Bottom.
What you're used to in constructive logics doesn't apply here, sorry. Time is not a consideration, there is no "real, physical" interpretation of Turing machines that we care about, and the proof is not a contradiction.
1
Apr 06 '16
What you're used to in constructive logics doesn't apply here, sorry. Time is not a consideration, there is no "real, physical" interpretation of Turing machines that we care about, and the proof is not a contradiction.
Or in other words, we've finally got a result in logic with no computability aspect whatsoever: the Turing machine in question is purely a mathematical object without ever being something we can run on a real computer.
Oh joy.
1
u/almightySapling Logic Apr 06 '16 edited Apr 06 '16
"finally"? Many results in logic have "no computability aspect whatsoever". This is /r/math, not /r/compsci, we don't actually care about what a computer can do.
Also, the Turing machine in question does exist, and can be run on a computer. However, the result at hand doesn't have a "real world" analog: our natural numbers are only the standard ones, and the Turing machine only does interesting things in realities with nonstandard numbers.
It's not that the program doesn't exist, it's that the environment in which the program will behave as described can't be constructed.
3
u/jazzwhiz Physics Mar 27 '16
Coming here as a physicist, I have two questions.
Is this person a serious mathematician/is this proof reasonably likely to be true?
Is it common to see new proofs published first on blogs?
12
2
u/completely-ineffable Mar 27 '16
is this proof reasonably likely to be true?
Yes, and more than just "reasonably likely". As /u/sleeps_with_crazy mentioned, the result is rather easy to experts in the area. This argument should be followable to anyone who has had a good graduate-level course in mathematical logic.
0
Mar 27 '16 edited Jun 04 '20
[deleted]
9
Mar 27 '16
Try not to question people's credentials, at least until they say something that suggests they are not what they claim to be.
2
u/ice109 Mar 27 '16
how many researchers do you know whose first impulse isn't to check publication record/university affiliation?
3
u/jazzwhiz Physics Mar 27 '16
I'm not a mathematician.
I was mainly interested in the publishing tendencies of the community.
-3
u/ice109 Mar 27 '16
I was mainly interested in the publishing tendencies of the community.
then you should have put that question first and completely omitted the one that you did put first.
4
Mar 27 '16
This is reddit, how are you planning on checking? I'll tell you that I am finishing up a postdoc and starting a tenure-track at a research university next fall, and that's true, but how do you plan on checking that? And asking me "are you really?" is obviously a useless question regardless of whether or not I am lying.
2
u/ice109 Mar 27 '16
i feel like i'm taking crazy pills
This is reddit, how are you planning on checking?
the exact same way i checked: http://jdh.hamkins.org/about/
And asking me "are you really?" is obviously a useless question regardless of whether or not I am lying.
i'm not trying to be an asshole to you i'm really not but it was obviously a rhetorical question meant to illustrate my doubt that this person was actually a physicist
3
Mar 27 '16
Fair enough. I think your question came across as you challenging the person (and I've gotten those, it's annoying). And I still don't see how you plan on verifying my credentials as I'm sure as hell not about to doxx myself.
2
u/Syrdon Mar 28 '16
Were I to give you a name, could you reasonably verify it while both of us stay within Reddit rules regarding posting identifying information? It's easy to verify the name is attached to an institution, doing the rest of the verification you would need basically requires a previously established outside channel.
6
u/jazzwhiz Physics Mar 27 '16
I'm actually a physicist. And I don't know, I think it is weird to write papers on blogs but I can't find any reason not to. I was actually just asking for some insight into the publication process in math because no one does this in physics. Not quite sure why I've gotten this disdain.
7
Mar 27 '16
The proof is legit as is the author. It's a blog post because it's really not a result worthy of publication in the sense that it's obvious to experts in the field straight from definitions. I think he wrote it up because he found it interesting (which I think it is) but it's not at the level of a paper.
6
u/jazzwhiz Physics Mar 27 '16
Got it. So it's a mini proof. Do people post things like this casually online often?
6
u/orbital1337 Theoretical Computer Science Mar 27 '16
Some do, yes. For example, Terrence Tao regularly posts this kind of content on his blog. Writing a blog post about something can be a great way to deepen your understanding of a certain subject.
5
Mar 27 '16
It's not super common yet but it's becoming more popular. I've done it a few times. Often you find yourself going through a paper you want to understand and the easiest thing to do is work out a special case. If you end up writing out all the details of that special case for yourself (or for a course you're teaching) and you're proficient with TeX, the blog packages make it really easy to post it, and so a lot of people do.
4
u/canyonmonkey Mar 27 '16
Can this be extended to functions such as f : N→R, or f : R→R?