Verifying safety and liveness over array systems is a highly challenging problem. Array systems naturally capture parameterized systems such as distributed protocols with an unbounded number of processes. Such distributed protocols often exploit process IDs during their computation, resulting in array systems whose element values range over an infinite domain. In this paper, we develop a new method for proving safety and liveness over array systems. The crux of the technique is to overapproximate an array system as a string rewriting system (i.e. over a finite alphabet) by means of a new predicate abstraction that exploits the so-called indexed predicates. This allows us to tap into powerful verification methods for string rewriting systems that have been heavily developed in the last few decades (e.g. regular model checking). We demonstrate how our method yields simple, automatically verifiable proofs of safety and liveness for challenging examples, including Dijkstra’s self-stabilizing protocol and the Chang-Roberts leader election.
Wed 17 JanDisplayed time zone: London change
13:20 - 14:40 | |||
13:20 20mTalk | Regular Abstractions for Array Systems POPL | ||
13:40 20mTalk | An Infinite Needle in a Finite Haystack: Finding Infinite Counter-Models in Deductive VerificationDistinguished Paper POPL Link to publication DOI | ||
14:00 20mTalk | Mostly Automated Verification of Liveness Properties for Distributed Protocols with Ranking FunctionsRemote POPL Jianan Yao Columbia University, Runzhou Tao Columbia University, Ronghui Gu Columbia University, Jason Nieh Columbia University | ||
14:20 20mTalk | Decision and Complexity of Dolev-Yao Hyperproperties POPL Itsaka Rakotonirina MPI-SP, Gilles Barthe MPI-SP; IMDEA Software Institute, Clara Schneidewind MPI-SP |