| author | wenzelm | 
| Tue, 15 Jan 2002 21:09:01 +0100 | |
| changeset 12770 | bdd17e7b5bd9 | 
| parent 10834 | a7897aebbffc | 
| permissions | -rw-r--r-- | 
| 4832 | 1 | (* Title: HOL/Lex/Automata.ML | 
| 2 | ID: $Id$ | |
| 3 | Author: Tobias Nipkow | |
| 4 | Copyright 1998 TUM | |
| 5 | *) | |
| 6 | ||
| 5323 | 7 | (*** Equivalence of NA and DA ***) | 
| 4832 | 8 | |
| 5069 | 9 | Goalw [na2da_def] | 
| 10834 | 10 | "!Q. DA.delta (na2da A) w Q = Union(NA.delta A w ` Q)"; | 
| 5132 | 11 | by (induct_tac "w" 1); | 
| 6294 | 12 | by Auto_tac; | 
| 4832 | 13 | qed_spec_mp "DA_delta_is_lift_NA_delta"; | 
| 14 | ||
| 5069 | 15 | Goalw [DA.accepts_def,NA.accepts_def] | 
| 4832 | 16 | "NA.accepts A w = DA.accepts (na2da A) w"; | 
| 5132 | 17 | by (simp_tac (simpset() addsimps [DA_delta_is_lift_NA_delta]) 1); | 
| 18 | by (simp_tac (simpset() addsimps [na2da_def]) 1); | |
| 4832 | 19 | qed "NA_DA_equiv"; | 
| 20 | ||
| 21 | (*** Direct equivalence of NAe and DA ***) | |
| 22 | ||
| 5069 | 23 | Goalw [nae2da_def] | 
| 10834 | 24 | "!Q. (eps A)^* `` (DA.delta (nae2da A) w Q) = steps A w `` Q"; | 
| 5132 | 25 | by (induct_tac "w" 1); | 
| 4900 | 26 | by (Simp_tac 1); | 
| 5132 | 27 | by (asm_full_simp_tac (simpset() addsimps [step_def]) 1); | 
| 28 | by (Blast_tac 1); | |
| 4900 | 29 | qed_spec_mp "espclosure_DA_delta_is_steps"; | 
| 4832 | 30 | |
| 5069 | 31 | Goalw [nae2da_def] | 
| 10834 | 32 | "fin (nae2da A) Q = (? q : (eps A)^* `` Q. fin A q)"; | 
| 5132 | 33 | by (Simp_tac 1); | 
| 4832 | 34 | val lemma = result(); | 
| 35 | ||
| 5069 | 36 | Goalw [NAe.accepts_def,DA.accepts_def] | 
| 4907 
0eb6730de30f
Reshuffeling, renaming and a few simple corollaries.
 nipkow parents: 
4900diff
changeset | 37 | "DA.accepts (nae2da A) w = NAe.accepts A w"; | 
| 5132 | 38 | by (simp_tac (simpset() addsimps [lemma,espclosure_DA_delta_is_steps]) 1); | 
| 39 | by (simp_tac (simpset() addsimps [nae2da_def]) 1); | |
| 40 | by (Blast_tac 1); | |
| 4832 | 41 | qed "NAe_DA_equiv"; |