if(x <= 0) {
x := 1;
}
People have come up with techniques for reasoning about loops and recursion. Not in general, of course, but for some specific property (e.g., x > 0) and some specific loop (e.g., while(x <= 0) x := x + 1) there are techniques for proving that the property holds after the loop.> I regularly see similar claims about software validation
Validation and verification are very different things. Verification is "my program meets these formal specs". Validation is "my specs accurately encodes the whole problem". Indeed, there's no way to do validation in a provably correct way. (But, of course, mathematics and statistics can help :-) ). The good news is that a lot of security and other bugs arise even once you have the correct spec. So verification can be useful even if it's impossible to perfectly validate.
> by people who either do not know, or who don't want to acknowledge, that this problem cannot be solved in the general case.
It's somehow ironic that you invoke the Talking problem since Turing himself -- AFTER having proven the Halting problem -- basically conjectured the creation of formal methods.
They are not solving it for the general case. They are solving it for many specific cases. Presented with a system, there is no guarantee that this will be possible - there can't be, that's what the Halting Problem says. But there is also no guarantee that it will be impossible for the particular system under consideration - that is not what the Halting Problem says.
Wait -- mathematical assurances that a system works only as intended in all cases? That's not possible. It pretends that the Turing Halting problem[1] is soluble.
Not that this claim is at all uncommon. I regularly see similar claims about software validation, by people who either do not know, or who don't want to acknowledge, that this problem cannot be solved in the general case.
1. https://en.wikipedia.org/wiki/Halting_problem : "Alan Turing proved in 1936 that a general algorithm to solve the halting problem for all possible program-input pairs cannot exist."