News for hackers. Stuff that matters.
Re:On rebooting: the unreasonable effectiveness of turning c... by legalcorrection on Wednesday May 25, 2022 @01:06AM (#31500813)
Rice’s theorem says no such thing. Rice’s theorem tells you you can’t necessarily prove you’ve built a flawless system, not that you can’t build a flawless system. You can build a perfect program even if you can’t necessarily then know you have.

Perhaps you interpreted my post to suggest that you could build a machine that verifies that any arbitrary software run on it never enters an invalid state? If so, I agree, that is not possible. I made a minor edit to make it clear what I’m talking about.

Re:On rebooting: the unreasonable effectiveness of turning c... by mkleczek on Wednesday May 25, 2022 @01:18AM (#31500863)
> Rice’s theorem tells you you can’t prove you’ve built a flawless system, not that you can’t build a flawless system.

If you think about it - it is the same: how do you know the system you just built is flawless?

Re:On rebooting: the unreasonable effectiveness of turning c... by legalcorrection on Wednesday May 25, 2022 @06:14AM (#31502481)
You don't, but it's still flawless. My point was that it was theoretically, not practically possible. So your retort that it's not practically possible is kind of missing the point.
Re:On rebooting: the unreasonable effectiveness of turning c... by mkleczek on Wednesday May 25, 2022 @06:22AM (#31502514)
My point is that it is _theoretically_ not possible: there is no algorithm that would allow you to build a TM implementing arbitrary requirements.

You have to use ad-hoc methods but then it is not possible to know your ad-hoc method is correct!

So by "flawless" you can only mean "having some property but we cannot say what property it is".

Edit: added "flawless" definition

Re:On rebooting: the unreasonable effectiveness of turning c... by legalcorrection on Wednesday May 25, 2022 @07:04AM (#31502784)
I'm not sure you're getting this. Let's say you want to build a video chat application with all of the same features as Zoom and not a single bug. That is, in fact, possible. Nothing about Rice's Theorem says you can't build a program without bugs. You can build a flawless video chat application. You won't, but you can. How? Very easy. Every time you're about to write code with a bug, don't. Write that same code but without the bug.
Re:On rebooting: the unreasonable effectiveness of turning c... by mkleczek on Wednesday May 25, 2022 @07:16AM (#31502891)
> Every time you're about to write code with a bug, don't. Write that same code but without the bug.

This procedure (algorithm) is ill-defined (is not realisable by a TM) as it would require verifying two things:

a) the code you are about to write has a bug (ie. has a specific property)

b) the code you wrote does not have a bug (ie. has a specific property)

Rice's theorem says both are impossible.

Re:On rebooting: the unreasonable effectiveness of turning c... by legalcorrection on Wednesday May 25, 2022 @02:42PM (#31508742)
Maybe moving to a specific instance of Rice's theorem is clearer. My point is that while he can't solve the halting problem—i.e. he can't reliably determine whether any arbitrary program will halt—an infallible programmer can reliably write his own programs such that they always halt.

So, to go back to the original point, you can't reliably determine the correctness of every possible program. But you could, if you were not prone to error like all humans, always write your own programs such that they are always correct.

Re:On rebooting: the unreasonable effectiveness of turning c... by mkleczek on Wednesday May 25, 2022 @03:01PM (#31509030)
No.

From the fact that we know how to write programs that halt you cannot deduce we know how to write programs with arbitrary (or even just useful) property, because there is no general procedure to do that.

In other words: you cannot use the algorithm of writing programs that halt to write programs computing nth digit of Pi :)

Re:On rebooting: the unreasonable effectiveness of turning c... by ncmncm on Wednesday May 25, 2022 @05:08AM (#31502106)
Because you built it in a series of steps, exactly zero of which introduced any undecidability.
Re:On rebooting: the unreasonable effectiveness of turning c... by mkleczek on Wednesday May 25, 2022 @05:34AM (#31502258)
See above - there is no reliable procedure (algorithm) that would allow you to build a TM with arbitrary properties (ie. implementing arbitrary requirements).
Re:On rebooting: the unreasonable effectiveness of turning c... by SAI_Peregrinus on Wednesday May 25, 2022 @12:32PM (#31506826)
Programs don't have to have Turing-complete behavior. Compilers do, but not every program needs to implement uncomputable behavior on its inputs.
Re:On rebooting: the unreasonable effectiveness of turning c... by mkleczek on Wednesday May 25, 2022 @01:09PM (#31507372)
Actually it's the other way around:

In reality most interesting programs accept Turing complete languages - albeit not formally specified :)