author | wenzelm |
Sun, 25 Oct 1998 12:33:27 +0100 | |
changeset 5769 | 6a422b22ba02 |
parent 5068 | fb28eaa07e01 |
child 6161 | bc2a76ce1ea3 |
permissions | -rw-r--r-- |
3071 | 1 |
(* Title: HOL/IOA/meta_theory/Asig.ML |
2 |
ID: $Id$ |
|
3 |
Author: Olaf Mueller, Tobias Nipkow & Konrad Slind |
|
4 |
Copyright 1994,1996 TU Muenchen |
|
5 |
||
6 |
Action signatures |
|
7 |
*) |
|
8 |
||
9 |
open Asig; |
|
10 |
||
11 |
val asig_projections = [asig_inputs_def, asig_outputs_def, asig_internals_def]; |
|
12 |
||
5068 | 13 |
Goal |
3656 | 14 |
"(outputs (a,b,c) = b) & \ |
15 |
\ (inputs (a,b,c) = a) & \ |
|
16 |
\ (internals (a,b,c) = c)"; |
|
4098 | 17 |
by (simp_tac (simpset() addsimps asig_projections) 1); |
3656 | 18 |
qed "asig_triple_proj"; |
19 |
||
5068 | 20 |
Goal "!!a.[| a~:internals(S) ;a~:externals(S)|] ==> a~:actions(S)"; |
4098 | 21 |
by (asm_full_simp_tac (simpset() addsimps [externals_def,actions_def]) 1); |
3071 | 22 |
qed"int_and_ext_is_act"; |
23 |
||
5068 | 24 |
Goal "!!a.[|a:externals(S)|] ==> a:actions(S)"; |
4098 | 25 |
by (asm_full_simp_tac (simpset() addsimps [externals_def,actions_def]) 1); |
3071 | 26 |
qed"ext_is_act"; |
27 |
||
5068 | 28 |
Goal "!!a.[|a:internals S|] ==> a:actions S"; |
4098 | 29 |
by (asm_full_simp_tac (simpset() addsimps [asig_internals_def,actions_def]) 1); |
3071 | 30 |
qed"int_is_act"; |
31 |
||
5068 | 32 |
Goal "!!a.[|a:inputs S|] ==> a:actions S"; |
4098 | 33 |
by (asm_full_simp_tac (simpset() addsimps [asig_inputs_def,actions_def]) 1); |
3433
2de17c994071
added deadlock freedom, polished definitions and proofs
mueller
parents:
3275
diff
changeset
|
34 |
qed"inp_is_act"; |
2de17c994071
added deadlock freedom, polished definitions and proofs
mueller
parents:
3275
diff
changeset
|
35 |
|
5068 | 36 |
Goal "!!a.[|a:outputs S|] ==> a:actions S"; |
4098 | 37 |
by (asm_full_simp_tac (simpset() addsimps [asig_outputs_def,actions_def]) 1); |
3433
2de17c994071
added deadlock freedom, polished definitions and proofs
mueller
parents:
3275
diff
changeset
|
38 |
qed"out_is_act"; |
2de17c994071
added deadlock freedom, polished definitions and proofs
mueller
parents:
3275
diff
changeset
|
39 |
|
5068 | 40 |
Goal "(x: actions S & x : externals S) = (x: externals S)"; |
4098 | 41 |
by (fast_tac (claset() addSIs [ext_is_act]) 1 ); |
3071 | 42 |
qed"ext_and_act"; |
43 |
||
5068 | 44 |
Goal "!!S. [|is_asig S;x: actions S|] ==> (x~:externals S) = (x: internals S)"; |
4098 | 45 |
by (asm_full_simp_tac (simpset() addsimps [actions_def,is_asig_def,externals_def]) 1); |
3071 | 46 |
by (best_tac (set_cs addEs [equalityCE]) 1); |
47 |
qed"not_ext_is_int"; |
|
48 |
||
5068 | 49 |
Goal "!!S. is_asig S ==> (x~:externals S) = (x: internals S | x~:actions S)"; |
4098 | 50 |
by (asm_full_simp_tac (simpset() addsimps [actions_def,is_asig_def,externals_def]) 1); |
3275 | 51 |
by (best_tac (set_cs addEs [equalityCE]) 1); |
52 |
qed"not_ext_is_int_or_not_act"; |
|
53 |
||
5068 | 54 |
Goalw [externals_def,actions_def,is_asig_def] |
3071 | 55 |
"!! x. [| is_asig (S); x:internals S |] ==> x~:externals S"; |
56 |
by (Asm_full_simp_tac 1); |
|
57 |
by (best_tac (set_cs addEs [equalityCE]) 1); |
|
3275 | 58 |
qed"int_is_not_ext"; |
59 |