Can we build software that is mathematically guaranteed to never fail?
In short: Most software is built by writing code, testing it, and fixing the errors found. This traditional cycle often leaves behind a trail of defects. But what if we could construct software so rigorously that its correctness is guaranteed from the very beginning, eliminating runtime failures entirely?
The traditional software development lifecycle—writing, testing, and patching—is inherently reactive. As Professor Martyn Thomas notes, this common approach frequently results in software that still contains a significant number of errors. To combat this, a different philosophy has emerged: making software 'correct by construction.' This method begins with a formal requirements specification designed to reveal logical omissions or contradictions before a single line of code is even written.
The goal is to develop software in a way that provides strong evidence that the program implements its specification—and does nothing else—while ensuring it will not fail at runtime. Although verifying that code adheres to its requirements has been a target since computing's inception, it was frequently rejected as too costly or unfeasible for anything larger than tiny programs. However, the field has been transformed by massive increases in computer processing speed and storage capacity.
Today, advances in computer science allow for the production of highly dependable software more efficiently and cheaply than traditional methods produce 'averagely buggy' software. This shift is moving the industry away from lengthy End-User License Agreements (EULAs) that disclaim all liability for unreliable software. Instead, some companies are now using these rigorous methods routinely, even offering guarantees for their software's performance and security.
This pursuit of formal reasoning has deep roots. As early as 1949, Alan Turing was reasoning about large routines, an insight that Professor Cliff Jones suggests was later reinvented and expanded upon decades later. This historical continuity highlights that the quest for mathematical certainty in code is not a new trend, but a long-standing ambition of the world's greatest computer scientists.
Opens the Intellect+ feed with this card first. Swipe up for the next one.
Sources
- Summary by Intellect · source: Making Software 'Correct by Construction' - Professor Martyn Thomas CBE
- Also: Making Software 'Correct by Construction'
To cite this card, link to https://intellectplus.co.uk/app/ideas-making-software-correct-by-construction-professor-martyn-tho.
How we source, check and correct cards: Editorial standards.
General information, not professional advice. Spotted an error? Flag the card or see corrections and complaints.
Intellect Plus is a visual educational discovery platform for exploring fascinating facts and ideas. Brain Food, Not Brain Rot. What is Intellect Plus?