| author | Christian Urban <christian dot urban at kcl dot ac dot uk> | 
| Thu, 09 Jun 2016 12:31:02 +0100 | |
| changeset 194 | 761793cce563 | 
| parent 191 | 6bb15b8e6301 | 
| permissions | -rw-r--r-- | 
| 191 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 1 | Title: | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 2 | ====== | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 3 | POSIX Lexing with Derivatives of Regular Expressions | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 4 | |
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 5 | |
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 6 | Authors: | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 7 | ======== | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 8 | Fahad Ausaf <fahad.ausaf at icloud.com>, 2016 | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 9 | Roy Dyckhoff <roy.dyckhoff at st-andrews.ac.uk>, 2016 | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 10 | Christian Urban <christian.urban at kcl.ac.uk>, 2016 | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 11 | |
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 12 | |
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 13 | Abstract: | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 14 | ========= | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 15 | |
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 16 | Brzozowski introduced the notion of derivatives for regular | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 17 | expressions. They can be used for a very simple regular expression | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 18 | matching algorithm. Sulzmann and Lu cleverly extended this algorithm | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 19 | in order to deal with POSIX matching, which is the underlying | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 20 | disambiguation strategy for regular expressions needed in | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 21 | lexers. Sulzmann and Lu have made available on-line what they call a | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 22 | ``rigorous proof'' of the correctness of their algorithm w.r.t. their | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 23 | specification; regrettably, it appears to us to have unfillable | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 24 | gaps. In the first part of this paper we give our inductive definition | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 25 | of what a POSIX value is and show (i) that such a value is unique (for | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 26 | given regular expression and string being matched) and (ii) that | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 27 | Sulzmann and Lu's algorithm always generates such a value (provided | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 28 | that the regular expression matches the string). We also prove the | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 29 | correctness of an optimised version of the POSIX matching | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 30 | algorithm. Our definitions and proof are much simpler than those by | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 31 | Sulzmann and Lu and can be easily formalised in Isabelle/HOL. In the | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 32 | second part we analyse the correctness argument by Sulzmann and Lu and | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 33 | explain why the gaps in this argument cannot be filled easily. | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 34 | |
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 35 | |
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 36 | New Theories: | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 37 | ============= | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 38 | |
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 39 | Lexer.thy | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 40 | Simplifying.thy | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 41 | |
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 42 | The repository can be checked using Isabelle 2016. | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 43 | |
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 44 | isabelle build -c -v -d . Posix-Lexing | 
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 45 | |
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 46 | |
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 47 | |
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 48 | |
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 49 | |
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 50 | |
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 51 | |
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 52 | |
| 
6bb15b8e6301
added files that were submitted to afp
 Christian Urban <christian dot urban at kcl dot ac dot uk> parents: diff
changeset | 53 |