equal
deleted
inserted
replaced
|
1 (* Title: HOL/Lex/AutoMaxChop.thy |
|
2 ID: $Id$ |
|
3 Author: Tobias Nipkow |
|
4 Copyright 1998 TUM |
|
5 *) |
|
6 |
|
7 AutoMaxChop = Auto + MaxChop + |
|
8 |
|
9 consts |
|
10 auto_split :: "('a,'s)auto => 's => 'a list => 'a list => 'a list * 'a list |
|
11 => 'a list * 'a list" |
|
12 primrec auto_split list |
|
13 "auto_split A q ps [] res = (if fin A q then (ps,[]) else res)" |
|
14 "auto_split A q ps (x#xs) res = auto_split A (next A q x) (ps@[x]) xs |
|
15 (if fin A q then (ps,x#xs) else res)" |
|
16 |
|
17 constdefs |
|
18 auto_chop :: "('a,'s)auto => 'a chopper" |
|
19 "auto_chop A == chop (%xs. auto_split A (start A) [] xs ([],xs))" |
|
20 end |