> 3. They don’t understand what it means for something to be mathematically impossible. This one gets a lot of technically competent people. I spent a very unsatisfying 45 minutes vainly trying to explain to an eminent biologist that no, really, some statements really are _undecidable_ -- and no, that doesn't mean that at some future time we'll figure out a new approach that lets us decide them.
Reminds me of an infamous VC story I heard years ago: A bunch of engineers tell him that feature X is impossible due to latency, and the latency is capped by the speed of light. He challenges the team by asking them to speculate about options, if they managed to "disrupt" the industry by breaking that speed barrier, and gets mighty upset by these closed-minded engineers who are unwilling to accept any possibility of…
Beware of Cranks: Misguided attempts to solve impossible mathematical problems
31–40 of 63 posts
Re: Beware of Cranks: Misguided attempts to solve impossible mathematical problems
#32Earlier quoted context omitted.
It's clearly not true in any practical way. because most programs these days are huge beasts depending on stacks of millions of lines of code, so little can be conclusively proven about those. It's also wrong in theoretical sense, because what you're talking about is not "halting problem" at all.
I think this really depends on how much you're willing to assume. You are right of course that the general problem is intractable, because you'd end up having to analyze frameworks, system calls, kernels, etc. But if you are able to assume those function as stated, then yes, you can certainly prove limited facts. For example, the sel4 microkernel is proven correct. Part of this proof of correctness is that all system…
Re: Beware of Cranks: Misguided attempts to solve impossible mathematical problems
#33Earlier quoted context omitted.
"Measuring" is not permitted. You are granted access only to an idealized compass and straight edge. There's a mobile game called Euclidea based on this which I'd recommend.
Oooh. I was imagining a compass like you're given in school, with labels on it, and ditto a ruler. :-)
Re: Beware of Cranks: Misguided attempts to solve impossible mathematical problems
#34> 3. They don’t understand what it means for something to be mathematically impossible. This one gets a lot of technically competent people. I spent a very unsatisfying 45 minutes vainly trying to explain to an eminent biologist that no, really, some statements really are _undecidable_ -- and no, that doesn't mean that at some future time we'll figure out a new approach that lets us decide them.
Reminds me of an infamous VC story I heard years ago: A bunch of engineers tell him that feature X is impossible due to latency, and the latency is capped by the speed of light. He challenges the team by asking them to speculate about options, if they managed to "disrupt" the industry by breaking that speed barrier, and gets mighty upset by these closed-minded engineers who are unwilling to accept any possibility of…
Maybe the VC had a point, and the engineers were overly confident in one perspective — one that had assumptions subtly different from reality.
Re: Beware of Cranks: Misguided attempts to solve impossible mathematical problems
#35Earlier quoted context omitted.
If you're writing business logic in a modern programming language your code can almost certainly be proven to halt. Very few people are running around coding up the Collatz conjecture or feeding programs as input to themselves.
It's clearly not true in any practical way. because most programs these days are huge beasts depending on stacks of millions of lines of code, so little can be conclusively proven about those. It's also wrong in theoretical sense, because what you're talking about is not "halting problem" at all.
Now from a realistic standpoint, all they wanted was some evidence we had considered this possibility and some data/argument to show our confidence that it wouldn't.
This was a simple program - you could confirm the algorithm wouldn't run forever by examining the code - look at the loops and their termination conditions, and look at function calls to show there were no loops in the call graph, etc. Yet one engineer in the team refused to engage. He kept invoking the halting problem. At one point I asked him that if the program was simply 'print "A"' would he still refuse to make the claim? Yup. No idea what the compiler/interpreter/HW is doing behind the scenes.
In the real world, when someone asks you to give an idea as to whether the program could hang in an infinite loop, don't invoke the Halting Problem. You're not answering the question they think they are asking, and as an engineer, your job is not to be pedantic with customers - unless you want to lose them fast.
Re: Beware of Cranks: Misguided attempts to solve impossible mathematical problems
#36And unfortunately, if you lack a good foundation, you won't be able to realize the "problem" you're working on is actually a red-herring, and the rabbit holes you wander through when researching these "problems" will just teach you further bad habits and crankery.
For the sake of those people, I don't think it's fair or right to immediately assume bad faith and take the attitude of "run for the hills" when met with anyone who's gone down such a path. And I don't think it's right to make a mockery of them either (except of course for the ones that start trying to write books, teach seminars, or submit papers about their "discoveries" without ever getting it right).
Instead maybe we can point them towards resources so they can fix their faulty foundation and find more productive ones? No need to engage them further. Just give them something -- even something canned -- to sate the obvious curiosity that they have and give them a little direction. At the very least we can not mock them and assume bad faith -- there's nothing wrong with being curious.
Re: Beware of Cranks: Misguided attempts to solve impossible mathematical problems
#37I've talked with a bunch of cranks and my experience resonates with this article. I believe in reasoned argument and persuasion, probably to a fault, but I never managed to change any of their opinions in the slightest. One of them had a theory that every electron was made of two photons going round and round. After pointing out a few of the many problems with that he tracked down where I live to try to report me for…
You are only very rarely going to win over somebody committed to an irrational belief (who usually already holds it in plain contradiction to available facts) with logical arguments.
Re: Beware of Cranks: Misguided attempts to solve impossible mathematical problems
#38Earlier quoted context omitted.
It's clearly not true in any practical way. because most programs these days are huge beasts depending on stacks of millions of lines of code, so little can be conclusively proven about those. It's also wrong in theoretical sense, because what you're talking about is not "halting problem" at all.
Can't speak for ahelwer, but once at work we had to show (for certification purposes), that our program wouldn't get lost in an infinite loop. Now from a realistic standpoint, all they wanted was some evidence we had considered this possibility and some data/argument to show our confidence that it wouldn't. This was a simple program - you could confirm the algorithm wouldn't run forever by examining the code - look a…
Re: Beware of Cranks: Misguided attempts to solve impossible mathematical problems
#39Re: Beware of Cranks: Misguided attempts to solve impossible mathematical problems
#40Earlier quoted context omitted.
I think this really depends on how much you're willing to assume. You are right of course that the general problem is intractable, because you'd end up having to analyze frameworks, system calls, kernels, etc. But if you are able to assume those function as stated, then yes, you can certainly prove limited facts. For example, the sel4 microkernel is proven correct. Part of this proof of correctness is that all system…
Sure, with some copious assumptions about the environment, you can prove without great difficulty that many real world programs do terminate. But it has really nothing to do with the Halting Problem, and saying that "halting problem is easily solved in practice" is extremely misleading.
Now if we are actually discussing in good faith, the halting problem is often used as a reason why a particular program analysis wont work. While a good guideline, it does not mean that there are particular classes of programs for which these analyses would work. If you can show this and show that these programs cover a good amount of useful programs, then you can construct analyses that a purely theoretical and cursory understanding of the halting problem would suggest you cant. Indeed several useful languages do just this