\documentclass[runningheads]{llncs}\usepackage{stix}\usepackage{times}\usepackage{isabelle}\usepackage{isabellesym}\usepackage{amsmath}\usepackage{amssymb}\usepackage{mathpartir}\usepackage{tikz}\usepackage{pgf}\usetikzlibrary{positioning}\usepackage{pdfsetup}%%\usepackage{stmaryrd}\usepackage{url}\usepackage{color}\titlerunning{POSIX Lexing with Derivatives of Regular Expressions}\urlstyle{rm}\isabellestyle{it}\renewcommand{\isastyleminor}{\it}% \renewcommand{\isastyle}{\normalsize\it}%\def\dn{\,\stackrel{\mbox{\scriptsize def}}{=}\,}\renewcommand{\isasymequiv}{$\dn$}\renewcommand{\isasymemptyset}{$\varnothing$}\renewcommand{\isacharunderscore}{\mbox{$\_\!\_$}}\renewcommand{\isasymiota}{\makebox[0mm]{${}^{\prime}$}}\def\Brz{Brzozowski}\def\der{\backslash}\newtheorem{falsehood}{Falsehood}\newtheorem{conject}{Conjecture}\begin{document}\title{POSIX {L}exing with {D}erivatives of {R}egular {E}xpressions (Proof Pearl)}\author{Fahad Ausaf\inst{1} \and Roy Dyckhoff\inst{2} \and Christian Urban\inst{3}}\institute{King's College London\\ \email{fahad.ausaf@icloud.com}\and University of St Andrews\\ \email{roy.dyckhoff@st-andrews.ac.uk}\and King's College London\\ \email{christian.urban@kcl.ac.uk}}\maketitle\begin{abstract}Brzozowski introduced the notion of derivatives for regularexpressions. They can be used for a very simple regular expressionmatching algorithm. Sulzmann and Lu cleverly extended this algorithmin order to deal with POSIX matching, which is the underlyingdisambiguation strategy for regular expressions needed in lexers.Sulzmann and Lu have made available on-line what they call a``rigorous proof'' of the correctness of their algorithm w.r.t.\ theirspecification; regrettably, it appears to us to have unfillable gaps.In the first part of this paper we give our inductive definition ofwhat a POSIX value is and show $(i)$ that such a value is unique (forgiven regular expression and string being matched) and $(ii)$ thatSulzmann and Lu's algorithm always generates such a value (providedthat the regular expression matches the string). We also prove thecorrectness of an optimised version of the POSIX matchingalgorithm. Our definitions and proof are much simpler than those bySulzmann and Lu and can be easily formalised in Isabelle/HOL. In thesecond part we analyse the correctness argument by Sulzmann and Lu andexplain why the gaps in this argument cannot be filled easily.\smallskip{\bf Keywords:} POSIX matching, Derivatives of Regular Expressions,Isabelle/HOL\end{abstract}\input{session}\end{document}%%% Local Variables:%%% mode: latex%%% TeX-master: t%%% End: