| 4832 |      1 | (*  Title:      HOL/Lex/RegExp.thy
 | 
|  |      2 |     ID:         $Id$
 | 
|  |      3 |     Author:     Tobias Nipkow
 | 
|  |      4 |     Copyright   1998 TUM
 | 
|  |      5 | 
 | 
|  |      6 | Regular expressions
 | 
|  |      7 | *)
 | 
|  |      8 | 
 | 
|  |      9 | RegExp = RegSet +
 | 
|  |     10 | 
 | 
|  |     11 | datatype 'a rexp = Empty
 | 
|  |     12 |                  | Atom 'a
 | 
| 12792 |     13 |                  | Or   ('a rexp) ('a rexp)
 | 
| 4832 |     14 |                  | Conc ('a rexp) ('a rexp)
 | 
|  |     15 |                  | Star ('a rexp)
 | 
|  |     16 | 
 | 
|  |     17 | consts lang :: 'a rexp => 'a list set
 | 
| 5184 |     18 | primrec
 | 
| 11379 |     19 | "lang Empty = {}"
 | 
|  |     20 | "lang (Atom a) = {[a]}"
 | 
| 12792 |     21 | "lang (Or el er) = (lang el) Un (lang er)"
 | 
| 11379 |     22 | "lang (Conc el er) = RegSet.conc (lang el) (lang er)"
 | 
|  |     23 | "lang (Star e) = RegSet.star(lang e)"
 | 
| 4832 |     24 | 
 | 
|  |     25 | end
 |