| 4832 |      1 | (*  Title:      HOL/Lex/RegSet.ML
 | 
|  |      2 |     ID:         $Id$
 | 
|  |      3 |     Author:     Tobias Nipkow
 | 
|  |      4 |     Copyright   1998 TUM
 | 
|  |      5 | *)
 | 
|  |      6 | 
 | 
|  |      7 | AddIffs [star.NilI];
 | 
|  |      8 | Addsimps [star.ConsI];
 | 
|  |      9 | AddIs [star.ConsI];
 | 
|  |     10 | 
 | 
| 5069 |     11 | Goal "(!xs: set xss. xs:S) --> concat xss : star S";
 | 
| 4832 |     12 | by (induct_tac "xss" 1);
 | 
|  |     13 | by (ALLGOALS Asm_full_simp_tac);
 | 
|  |     14 | qed_spec_mp "concat_in_star";
 | 
|  |     15 | 
 | 
| 5069 |     16 | Goal
 | 
| 4832 |     17 |  "w : star U = (? us. (!u : set(us). u : U) & (w = concat us))";
 | 
| 5132 |     18 | by (rtac iffI 1);
 | 
| 6162 |     19 |  by (etac star.induct 1);
 | 
| 4832 |     20 |   by (res_inst_tac [("x","[]")] exI 1);
 | 
|  |     21 |   by (Simp_tac 1);
 | 
|  |     22 |  by (Clarify_tac 1);
 | 
|  |     23 |  by (res_inst_tac [("x","a#us")] exI 1);
 | 
|  |     24 |  by (Asm_simp_tac 1);
 | 
|  |     25 | by (Clarify_tac 1);
 | 
|  |     26 | by (asm_simp_tac (simpset() addsimps [concat_in_star]) 1);
 | 
|  |     27 | qed "in_star";
 |