author | nipkow |
Fri, 05 Jan 2001 18:48:18 +0100 | |
changeset 10797 | 028d22926a41 |
parent 6294 | bc084e1b4d8d |
child 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] |
4907
0eb6730de30f
Reshuffeling, renaming and a few simple corollaries.
nipkow
parents:
4900
diff
changeset
|
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] |
10797 | 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] |
10797 | 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:
4900
diff
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"; |