The halting problem proof and Rices's theorem all prove that proving a program is correct is not decidable.
Why don't you look at the license agreements of anybody who sells software? As far as I can see, their lawyers all essentially say it is not guaranteed to be fit for a particular purpose, which basically says they don't claim it is correct.
Common Open Source:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Microsoft EULA:
- DISCLAIMER OF WARRANTY.The software is licensed “as-is.” You bear the risk of using it. Microsoft
gives no express warranties, guarantees or conditions. You may have additional consumer rights under
your local laws which this agreement cannot change. To the extent permitted under your local laws,
Microsoft excludes the implied warranties of merchantability, fitness for a particular purpose and non-
infringement. FOR AUSTRALIA ONLY: You have statutory guarantees under the Australian Consumer Law and
nothing in these terms is intended to affect those rights.
LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. You can recover from Microsoft and its
suppliers only direct damages up to U.S. $5.00. You can't recover any other damages, including
consequential, lost profits, special, indirect or incidental damages.
Crowdstrike Terms and Conditions:
8.6 Disclaimer. EXCEPT FOR THE EXPRESS WARRANTIES IN THIS SECTION 8, CROWDSTRIKE AND ITS AFFILIATES DISCLAIM ALL OTHER
WARRANTIES, WHETHER EXPRESS, IMPLIED, STATUTORY OR OTHERWISE. TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAW,
CROWDSTRIKE AND ITS AFFILIATES AND SUPPLIERS SPECIFICALLY DISCLAIM ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT WITH RESPECT TO THE OFFERINGS AND CROWDSTRIKE TOOLS. THERE IS NO
WARRANTY THAT THE OFFERINGS OR CROWDSTRIKE TOOLS WILL BE ERROR FREE, OR THAT THEY WILL OPERATE WITHOUT
INTERRUPTION OR WILL FULFILL ANY OF CUSTOMER’S PARTICULAR PURPOSES OR NEEDS. THE OFFERINGS AND CROWDSTRIKE TOOLS ARE
NOT FAULT-TOLERANT AND ARE NOT DESIGNED OR INTENDED FOR USE IN ANY HAZARDOUS ENVIRONMENT REQUIRING FAIL-SAFE
PERFORMANCE OR OPERATION. NEITHER THE OFFERINGS NOR CROWDSTRIKE TOOLS ARE FOR USE IN THE OPERATION OF AIRCRAFT
NAVIGATION, NUCLEAR FACILITIES, COMMUNICATION SYSTEMS, WEAPONS SYSTEMS, DIRECT OR INDIRECT LIFE-SUPPORT SYSTEMS, AIR
TRAFFIC CONTROL, OR ANY APPLICATION OR INSTALLATION WHERE FAILURE COULD RESULT IN DEATH, SEVERE PHYSICAL INJURY, OR PROPERTY
DAMAGE. Customer agrees that it is Customer’s responsibility to ensure safe use of an Offering and the CrowdStrike Tools in such
applications and installations. CROWDSTRIKE DOES NOT WARRANT ANY THIRD PARTY PRODUCTS OR SERVICES.
Addendum: A Turing machine by Alan Turing's definition must halt to present a (presumably correct) solution. The proof Turing provided shows you can not prove it will ever halt. Rice's theorem is a more general proof of the same concept that also shows software cannot verify other software for correctness either. Wiki has excellent discussions on both you can refer to. These are actual mathematical proofs that as far as I know are not dis-proven by languages like Haskel, et al. Therefore programmer's who think they can actually prove 100% that nothing can go wrong are just fooling themselves. Those who mention hardware failures show some examples, but it doesn't even have to be a 'hard' failure, but also 'soft' failures caused by gamma radiation twiddling bits in memory. Fortunately, lawyers seem to be not as easily fooled, given the legal disclaimers they make sure are included with the product.
References:
https://en.wikipedia.org/wiki/Rice%27s_theorem
https://en.wikipedia.org/wiki/Halting_problem
https://en.wikipedia.org/wiki/Turing's_proof
https://en.wikipedia.org/wiki/Undecidable_problem
int x
will only contain integers, never strings. More interesting properties ensure that a value will either be one case or another, or that a value can only exist after some initialization succeeded (compare RAII in C++). Rust was designed so that the type checker can prove the absence of certain bugs that plague C.