Verifying higher-order functional programs with pattern-matching algebraic data types

Type-based model checking algorithms for higher-order recursion schemes have recently emerged as a promising approach to the verification of functional programs.We introduce pattern-matching recursion schemes (PMRS) as an accurate model of computation for functional programs that manipulate algebrai...

Descrizione completa

Dettagli Bibliografici
Autori principali: Ong, C, Ramsay, S
Natura: Journal article
Lingua:English
Pubblicazione: 2010
_version_ 1826291562201481216
author Ong, C
Ramsay, S
author_facet Ong, C
Ramsay, S
author_sort Ong, C
collection OXFORD
description Type-based model checking algorithms for higher-order recursion schemes have recently emerged as a promising approach to the verification of functional programs.We introduce pattern-matching recursion schemes (PMRS) as an accurate model of computation for functional programs that manipulate algebraic data-types. PMRS are a natural extension of higher-order recursion schemes that incorporate pattern-matching in the defining rules. This paper is concerned with the following (undecidable) verification problem: given a correctness property φ, a functional program P (qua PMRS) and a regular input set I, does every term that is reachable from I under rewriting by P satisfy φ? To solve the PMRS verification problem, we present a sound semi-algorithm which is based on model-checking and counterexample guided abstraction refinement. Given a no-instance of the verification problem, the method is guaranteed to terminate. From an order-n PMRS and an input set generated by a regular tree grammar, our method constructs an order-n weak PMRS which over-approximates only the first-order pattern-matching behaviour, whilst remaining completely faithful to the higher-order control flow. Using a variation of Kobayashi's type-based approach, we show that the (trivial automaton) model-checking problem for weak PMRS is decidable. When a violation of the property is detected in the abstraction which does not correspond to a violation in the model, the abstraction is automatically refined by 'unfolding' the pattern-matching rules in the program to give successively more and more accurate weak PMRS models. Copyright © 2011 ACM.
first_indexed 2024-03-07T03:01:15Z
format Journal article
id oxford-uuid:b1095b3a-7c66-4396-9f7c-9e48619192e3
institution University of Oxford
language English
last_indexed 2024-03-07T03:01:15Z
publishDate 2010
record_format dspace
spelling oxford-uuid:b1095b3a-7c66-4396-9f7c-9e48619192e32022-03-27T04:00:55ZVerifying higher-order functional programs with pattern-matching algebraic data typesJournal articlehttp://purl.org/coar/resource_type/c_dcae04bcuuid:b1095b3a-7c66-4396-9f7c-9e48619192e3EnglishSymplectic Elements at Oxford2010Ong, CRamsay, SType-based model checking algorithms for higher-order recursion schemes have recently emerged as a promising approach to the verification of functional programs.We introduce pattern-matching recursion schemes (PMRS) as an accurate model of computation for functional programs that manipulate algebraic data-types. PMRS are a natural extension of higher-order recursion schemes that incorporate pattern-matching in the defining rules. This paper is concerned with the following (undecidable) verification problem: given a correctness property φ, a functional program P (qua PMRS) and a regular input set I, does every term that is reachable from I under rewriting by P satisfy φ? To solve the PMRS verification problem, we present a sound semi-algorithm which is based on model-checking and counterexample guided abstraction refinement. Given a no-instance of the verification problem, the method is guaranteed to terminate. From an order-n PMRS and an input set generated by a regular tree grammar, our method constructs an order-n weak PMRS which over-approximates only the first-order pattern-matching behaviour, whilst remaining completely faithful to the higher-order control flow. Using a variation of Kobayashi's type-based approach, we show that the (trivial automaton) model-checking problem for weak PMRS is decidable. When a violation of the property is detected in the abstraction which does not correspond to a violation in the model, the abstraction is automatically refined by 'unfolding' the pattern-matching rules in the program to give successively more and more accurate weak PMRS models. Copyright © 2011 ACM.
spellingShingle Ong, C
Ramsay, S
Verifying higher-order functional programs with pattern-matching algebraic data types
title Verifying higher-order functional programs with pattern-matching algebraic data types
title_full Verifying higher-order functional programs with pattern-matching algebraic data types
title_fullStr Verifying higher-order functional programs with pattern-matching algebraic data types
title_full_unstemmed Verifying higher-order functional programs with pattern-matching algebraic data types
title_short Verifying higher-order functional programs with pattern-matching algebraic data types
title_sort verifying higher order functional programs with pattern matching algebraic data types
work_keys_str_mv AT ongc verifyinghigherorderfunctionalprogramswithpatternmatchingalgebraicdatatypes
AT ramsays verifyinghigherorderfunctionalprogramswithpatternmatchingalgebraicdatatypes