Algorithmic Software Verification

Software is everywhere, and yet, extremely unreliable. One key to reliability is the design of cost-effective techniques whereby developers can formally specify the
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 algorithmic insights underlying these approaches and the resulting tools that have helped verify and find subtle defects in a variety of programs.

Speaker Details

Ranjit Jhala is a Ph.D Candidate in Computer Science at the University of California, Berkeley. He is interested in Programming Languages and Software Engineering, more specifically, in techniques for building reliable computer systems. Previously, he received a B.Tech in Computer Science and Engineering at the Indian Institute of Technology, Delhi. When hacking or otherwise, he likes to drink coffee.

Date:
Speakers:
Ranjit Jhala
Affiliation:
Department of Computer Science and Engineering at UC San Diego
    • Portrait of Jeff Running

      Jeff Running