The string search algorithm by Knuth, Morris and Pratt

Fabian Hellauer 📧 and Peter Lammich 🌐

December 18, 2017

This is a development version of this entry. It might change over time and is not stable. Please refer to release versions for citations.


The Knuth-Morris-Pratt algorithm is often used to show that the problem of finding a string s in a text t can be solved deterministically in O(|s| + |t|) time. We use the Isabelle Refinement Framework to formulate and verify the algorithm. Via refinement, we apply some optimisations and finally use the Sepref tool to obtain executable code in Imperative/HOL.


BSD License


Session Knuth_Morris_Pratt