Output details
11 - Computer Science and Informatics
University of Oxford
Verifying higher-order functional programs with pattern-matching algebraic data types
<11>
The inability of recursion schemes to model pattern-matching algebraic data types limits the impact of higher-order model checking, because pattern-matching is ubiquitous in functional programming. We introduce Pattern-Matching Recursion Schemes (PMRS)---essentially the GHC Core---to repair this deficiency. We present a semi-algorithm for the (undecidable) PMRS verification problem: given property Phi, PMRS P and regular input set I, does every term reachable from I under rewriting by P satisfy Phi? Based on model-checking and counterexample guided abstraction refinement, our method is sound and guaranteed to return a counter-example for no-instances.