LEAP: A Tool for the Parametrized Verification of Concurrent Datatypes
This tool paper describes Leap, a tool for the verification of concurrent datatypes and parametrized systems composed by an unbounded number of threads that manipulate infinite data. Leap receives as input a concurrent program description and a specification and automatically generates a finite set of verification conditions which are then discharged to specialized decision procedures. The validity of all discharged verification conditions implies that the program executed by any number of threads satisfies the specification. Currently, Leap includes not only decision procedures for integers and Booleans, but it also implements specific theories for heap memory layouts such as linked-lists and skiplists.
In Proc. of the 26th Int'l Conf. on Computer Aided Verification (CAV'14), vol 8559 of LNCS, pp 620-627, Springer, 2014. ISBN 978-3-319-08866-2