Software is everywhere, and yet, extremely unreliable.
One key to reliability is the design of cost-effective techniques whereby developers can formally specify essential properties of their code, and, machines can rigorously verify that the properties hold, or demonstrate corner cases where they fail. In this talk, we describe two such techniques. First, a scheme that uses logical predicates and theorem provers to automatically compute safety proofs. Second, an approach that uses random walks to find liveness bugs in distributed systems. We describe the key algorithms underlying these approaches and the resulting tools that have helped verify and find subtle defects in a variety of complex software.
Date and Time
Monday March 8, 2010 4:30pm -
5:30pm
Location
Computer Science Small Auditorium (Room 105)
Event Type
Speaker
Ranjit Jhala
Host
David Walker