A verified algorithm for deciding pattern completeness
with optimal asymptotic complexity

Introduction

This page contains supplementary material of the JLAMP article A verified algorithm for deciding pattern completeness with optimal asymptotic complexity.

Formalization

The formalization can be inspected in a web-browser (compiled with Isabelle 2025-1 and AFP 2025-1).

Section 6.1

Section 6.2

Section 6.3

Section 6.4

Section 6.5

Experiments

All tests have been executed using a MacStudio (Apple M2 Max processor) running MacOS 15.3.2. First, we use Isabelle's code generator to obtain our verified decision procedure as Haskell code. Next, both the decision procedure and the tree automata tests via FORT-h 2.0 have been compiled using the Haskell compiler ghc version 9.12.1 with -O2. For testing the pattern completeness test within GHC tests, ghc was invoked without -O2. Finally, for the complement algorithm we used AGCP v0.02 which was compiled using SML New Jersey v110.99.4.

The execution time of all experiments for pattern problems are displayed in these two tables.

In each table, you can click on each experiment to see the input. The timing information is provided in seconds (wall-clock time measurement).

Sources

The generated programs (Haskell / SML) are available in this archive. The archive also contains instructions how to rerun the experiments. Rerunning OUR / GHC / CO / TA / FSCD / NEW should be possible using Macos or Linux.

The Isabelle theories are present in the AFP, in entries Sorted Terms and Verifying a Decision Procedure for Pattern Completeness.