| I can't really give a substantial response to your first argument, as I'm not certain about all the implications that you mention. Your second argument, though, doesn't sound very convincing to me. There are many possible consistent logical frameworks (perhaps an infinite amount of them? hah!) that are clearly not adequate for describing our universe. Or at least, they wouldn't make sense for us. For a trivial (and perhaps stupid) example, consider an alternate universe where we decided to use a logical framework which can represent natural numbers, but where the digit "2" is represented as "9" and the digit "9" is represented as "7", etc. Let's say you have a 1-to-1 mapping from one digit to another, compared to our usual representation. Or perhaps the mapping is a lot more complicated than that, and not just about digits, but about entire numbers. Let's say we decided to do that, for no good reason. Or maybe there was a good reason at the time, but since then we have figured out that it doesn't make sense anymore. Yes, you could do exactly the same math in this logical framework as we do in our usual ones, and no contradictions would arise. However, would that really be a wise idea? Wouldn't that just lead to making unnecessary mistakes, sometimes even conceptual ones, when considering that we would be prone to confusing numbers in this system with the numbers that we use normally? I think language is also important here, not just logical soundness. Especially if we want our intuitions to be helpful. Just to bring this back to something less abstract again, I will just mention the following: > However, the core of the argument remains true, we just need to complicate it significantly if we want to remain within the realm of finite machines: instead of saying "there is no TM that can decide if any arbitrary TM halts", we need to say something like "there is no finite TM that can decide if any TM smaller than itself halts in an amount of time less than that TM". Well, I don't believe the core of the Halting problem to be true, and that's exactly the language problem that I'm talking about: confusing language leads us to making conceptual mistakes. For example, time is not necessarily relevant here. I could argue that what the Halting problem really demonstrates is that to analyze whether a finite-state machine (FSM) halts, you need to use an FSM that can have more state than the machine being analyzed (which is why it stops working if you believe you can have infinite state). This FSM with more state would always be able to decide whether the other FSM halts in finite time, regardless of whether the other machine halts or whether it never does. In fact, that's exactly what cycle-detection algorithms do, such as the tortoise and hare algorithm. |
For example, if we take the naturals to be a finite set, and arbitrarily define some number G that is the largest number, then common operations stop being commutative/associative/distributive (e.g. x-y+z is no longer equal to x+z-y, if x>G-z; or x×(y-z) ≠ x×y - y×z). Lots of simple equations stop having solutions at all. The finite rationals also get similar problems. Your models also have all these arbitrary parameters - the largest positive integer, the largest negative integer, the smallest fraction, the largest allowed amount of non-repeating digits in a decimal representation of a fraction - things like these become independent parameters, and can be arbitrarily chosen to be different.
> Well, I don't believe the core of the Halting problem to be true, and that's exactly the language problem that I'm talking about: confusing language leads us to making conceptual mistakes.
But it is - you still can't, in practice, construct a useful program that depends on solving the "finite halting problem", since you will need too much memory/time for anything but the most trivial of examples. If you don't beleive this, than it should be doable for you to create a program that checks whether P=NP if we limit it to programs that can run on, say, an 8086 processor and only use 16 KB of RAM, right?