Software Verification at Bell Labs: One Line of Development
01 January 2000
Collectors often greet the first report of a new type of minting error for commonly circulating coins with enthusiasm. A coin is a rare example of an object that can increase, rather than decrease, in value when it is faulty. In software design we are not so fortunate. Software faults are often intriguing, but they rarely increase the value of a product. Since the early days of computers, programmers have sought effective ways to defend against software bugs. Software verification techniques are meant to help the user locate possible defects in a software product reliably, and preferably mechanically. In this article we look at one line of research that has led to one of the most widely used verification systems for distributed software today.