Verifying Liveness Properties of ML Programs

12/24/2020
by   M. M. Lester, et al.
0

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".

READ FULL TEXT

page 1

page 2

research
10/24/2017

Higher-Order Program Verification via HFL Model Checking

There are two kinds of higher-order extensions of model checking: HORS m...
research
08/31/2023

On Model-Checking Higher-Order Effectful Programs (Long Version)

Model-checking is one of the most powerful techniques for verifying syst...
research
04/05/2018

Higher-Order Bounded Model Checking

We present a Bounded Model Checking technique for higher-order programs....
research
06/16/2020

A Hybrid Approach to Formal Verification of Higher-Order Masked Arithmetic Programs

Side-channel attacks, which are capable of breaking secrecy via side-cha...
research
02/16/2015

Rewriting Higher-Order Stack Trees

Higher-order pushdown systems and ground tree rewriting systems can be s...
research
12/29/2021

Learning Higher-Order Programs without Meta-Interpretive Learning

Learning complex programs through inductive logic programming (ILP) rema...
research
08/19/2017

Abstractions for Verifying Isolation Properties in Stateful Networks

Modern networks achieve robustness and scalability by maintaining states...

Please sign up or login with your details

Forgot password? Click here to reset