lex/index.html
changeset 392 880e62843614
child 393 c08b9d616f9d
equal deleted inserted replaced
391:ff462cfb41cb 392:880e62843614
       
     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>