|
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" |
|
2 "http://www.w3.org/TR/REC-html40/loose.dtd"> |
|
3 <HEAD> |
|
4 <TITLE>HGMP</TITLE> |
|
5 <BASE HREF="http://www.inf.kcl.ac.uk/staff/urbanc/"> |
|
6 </HEAD> |
|
7 |
|
8 <BODY TEXT="#000000" |
|
9 BGCOLOR="#4169E1" |
|
10 LINK="#0000EF" |
|
11 VLINK="#51188E" |
|
12 ALINK="#FF0000"> |
|
13 |
|
14 <TABLE WIDTH="100%" |
|
15 BGCOLOR="#4169E1" |
|
16 BORDER="0" |
|
17 FRAME="border" |
|
18 CELLPADDING="10" |
|
19 CELLSPACING="2" |
|
20 RULES="all"> |
|
21 |
|
22 <!-- right column --> |
|
23 <TR> |
|
24 <TD BGCOLOR="#FFFFFF" WIDTH="75%"> |
|
25 <H2>POSIX Lexing with Derivatives of Regular Expressions (Proof Pearl)</H2> |
|
26 |
|
27 Fahad Ausaf, Roy Dyckhoff, Christian Urban |
|
28 <p> |
|
29 |
|
30 Brzozowski introduced the notion of derivatives for regular |
|
31 expressions. They can be used for a very simple regular expression |
|
32 matching algorithm. Sulzmann and Lu cleverly extended this algorithm |
|
33 in order to deal with POSIX matching, which is the underlying |
|
34 disambiguation strategy for regular expressions needed in lexers. |
|
35 Sulzmann and Lu have made available on-line what they call a |
|
36 ``rigorous proof'' of the correctness of their algorithm w.r.t. their |
|
37 specification; regrettably, it appears to us to have unfillable gaps. |
|
38 In the first part of this paper we give our inductive definition of |
|
39 what a POSIX value is and show (i) that such a value is unique (for |
|
40 given regular expression and string being matched) and (ii) that |
|
41 Sulzmann and Lu's algorithm always generates such a value (provided |
|
42 that the regular expression matches the string). We also prove the |
|
43 correctness of an optimised version of the POSIX matching |
|
44 algorithm. Our definitions and proof are much simpler than those by |
|
45 Sulzmann and Lu and can be easily formalised in Isabelle/HOL. In the |
|
46 second part we analyse the correctness argument by Sulzmann and Lu and |
|
47 explain why it seems hard to turn it into a proof rigorous enough to |
|
48 be accepted by a system such as Isabelle/HOL. |
|
49 |
|
50 <H3>Theory Files for Isabelle 2016</H3> |
|
51 |
|
52 <ul> |
|
53 <li> <A HREF="http://talisker.inf.kcl.ac.uk/%7Eurbanc/cgi-bin/repos.cgi/lexing/raw-file/tip/thys/ReStar.thy">ReStar.thy</A> |
|
54 </u> |
|
55 |
|
56 |
|
57 <H3>Links</A> |
|
58 |
|
59 <ul> |
|
60 <li> <A HREF="http://talisker.inf.kcl.ac.uk/%7Eurbanc/cgi-bin/repos.cgi/lexing/raw-file/tip/Literature/sulzmann14-new.pdf">the paper</A> by Sulzmann and Lu |
|
61 </ul> |
|
62 |
|
63 </TABLE> |
|
64 <P> |
|
65 <!-- hhmts start --> Last modified: Fri Mar 11 12:20:03 GMT 2016 <!-- hhmts end --> |
|
66 <a href="http://validator.w3.org/check/referer">[Validate this page.]</a> |
|
67 </BODY> |
|
68 </HTML> |