author | wenzelm |
Mon, 22 Jun 1998 17:26:46 +0200 | |
changeset 5069 | 3ea049f7979d |
parent 4907 | 0eb6730de30f |
child 5132 | 24f992a25adc |
permissions | -rw-r--r-- |
4832 | 1 |
(* Title: HOL/Lex/Automata.ML |
2 |
ID: $Id$ |
|
3 |
Author: Tobias Nipkow |
|
4 |
Copyright 1998 TUM |
|
5 |
*) |
|
6 |
||
7 |
(*** Equivalence of NA and DA --- redundant ***) |
|
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)"; |
4832 | 11 |
by(induct_tac "w" 1); |
12 |
by(ALLGOALS Asm_simp_tac); |
|
13 |
by(ALLGOALS Blast_tac); |
|
14 |
qed_spec_mp "DA_delta_is_lift_NA_delta"; |
|
15 |
||
5069 | 16 |
Goalw [DA.accepts_def,NA.accepts_def] |
4832 | 17 |
"NA.accepts A w = DA.accepts (na2da A) w"; |
18 |
by(simp_tac (simpset() addsimps [DA_delta_is_lift_NA_delta]) 1); |
|
19 |
by(simp_tac (simpset() addsimps [na2da_def]) 1); |
|
20 |
qed "NA_DA_equiv"; |
|
21 |
||
22 |
(*** Direct equivalence of NAe and DA ***) |
|
23 |
||
5069 | 24 |
Goalw [nae2da_def] |
4900 | 25 |
"!Q. (eps A)^* ^^ (DA.delta (nae2da A) w Q) = steps A w ^^ Q"; |
4832 | 26 |
by(induct_tac "w" 1); |
4900 | 27 |
by (Simp_tac 1); |
28 |
by(asm_full_simp_tac (simpset() addsimps [step_def]) 1); |
|
4832 | 29 |
by(Blast_tac 1); |
4900 | 30 |
qed_spec_mp "espclosure_DA_delta_is_steps"; |
4832 | 31 |
|
5069 | 32 |
Goalw [nae2da_def] |
4832 | 33 |
"fin (nae2da A) Q = (? q : (eps A)^* ^^ Q. fin A q)"; |
34 |
by(Simp_tac 1); |
|
35 |
val lemma = result(); |
|
36 |
||
5069 | 37 |
Goalw [NAe.accepts_def,DA.accepts_def] |
4907
0eb6730de30f
Reshuffeling, renaming and a few simple corollaries.
nipkow
parents:
4900
diff
changeset
|
38 |
"DA.accepts (nae2da A) w = NAe.accepts A w"; |
4900 | 39 |
by(simp_tac (simpset() addsimps [lemma,espclosure_DA_delta_is_steps]) 1); |
4832 | 40 |
by(simp_tac (simpset() addsimps [nae2da_def]) 1); |
41 |
by(Blast_tac 1); |
|
42 |
qed "NAe_DA_equiv"; |