Deductive verification of distributed protocols in first-order logic

June 12, 2019

Mooly Sagiv


Deductive verification of distributed protocols in first-order logic

Time:   10:45am
Location:   Meeting room 302 (Mountain View), level 3

Distributed protocols such as Paxos play an important role in many computer systems. Therefore, a bug in a distributed protocol may have tremendous effects. Accordingly, a lot of effort has been invested in verifying such protocols. However, due to the infinite state space (e.g., unbounded number of nodes, messages) and protocols complexity, verification is both undecidable and hard in practice. I will describe a deductive approach for verification of distributed protocols, based on decidable fragments of first-order logic, inductive invariants and user interaction. The use of decidable fragments of first-order logic allows to completely automate some verification tasks. Tasks that remain undecidable (e.g. finding inductive invariants) are solved with user interaction, based on graphically displayed counterexamples. I will also describe the application of these techniques to verify safety of several variants of Paxos, and a way to extend the approach to verify liveness and temporal properties.

This work is part of a Ph.D. by Oded Padon https://www.cs.tau.ac.il/~odedp/. The ideas were integrated into Ivy https://github.com/microsoft/ivy. It is joint work with Giuliano Losa, Jochen Hoenicke, Ken McMillan, Aurojit Panda, Sharon Shoham, Marcelo Taube, James R. Wilcox, and Doug Woos.