
diff -r dae4d63a1318 -r bc11b5b06f87 src/HOL/Lex/NAe.thy
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOL/Lex/NAe.thy	Mon Apr 27 16:46:56 1998 +0200
@@ -0,0 +1,34 @@
+(*  Title:      HOL/Lex/NAe.thy
+    ID:         $Id$
+    Author:     Tobias Nipkow
+    Copyright   1998 TUM
+
+Nondeterministic automata with epsilon transitions
+*)
+
+NAe = List + Option + NA +
+
+types ('a,'s)nae = ('a option,'s)na
+
+constdefs
+ step :: "('a,'s)nae => 'a option => ('s * 's)set"
+"step A a == {(p,q) . q : next A a p}"
+
+syntax eps :: "('a,'s)nae => ('s * 's)set"
+translations "eps A" == "step A None"
+
+consts steps :: "('a,'s)nae => 'a list =>   ('s * 's)set"
+primrec steps list
+"steps A [] = (eps A)^*"
+"steps A (a#w) = steps A w  O  step A (Some a)  O  (eps A)^*"
+
+consts delta :: "('a,'s)nae => 'a list => 's => 's set"
+primrec delta list
+"delta A [] s = (eps A)^* ^^ {s}"
+"delta A (a#w) s = lift(delta A w) (lift(next A (Some a)) ((eps A)^* ^^ {s}))"
+
+constdefs
+ accepts :: ('a,'s)nae => 'a list => bool
+"accepts A w == ? q. (start A,q) : steps A w & fin A q"
+
+end




