Back to Search Start Over

Verifying Liveness Properties of ML Programs

Authors :
Lester, M. M.
Neatherway, R. P.
Ong, C. -H. L.
Ramsay, S. J.
Publication Year :
2020

Abstract

Higher-order recursion schemes are a higher-order analogue of Boolean Programs; they form a natural class of abstractions for functional programs. We present a new, efficient algorithm for checking CTL properties of the trees generated by higher-order recursion schemes, which is an extension of Kobayashi's intersection type-based model checking technique. We show that an implementation of this algorithm, THORS, performs well on a number of small examples and we demonstrate how it can be used to verify liveness properties of OCaml programs. Example properties include statements such as "all opened sockets are eventually closed" and "the lock is held until the file is closed".<br />Comment: Peer-reviewed extended abstract presented at 2011 ACM SIGPLAN Workshop on ML. Full technical report archived at: https://ora.ox.ac.uk/objects/uuid:bf35bab8-b395-4f85-93bd-57ca0328a1d3

Details

Database :
arXiv
Publication Type :
Report
Accession number :
edsarx.2012.13333
Document Type :
Working Paper