1 (* Title: HOL/IOA/Asig.thy
3 Author: Tobias Nipkow & Konrad Slind
4 Copyright 1994 TU Muenchen
7 header {* Action signatures *}
14 'a signature = "('a set * 'a set * 'a set)"
17 "actions" :: "'action signature => 'action set"
18 "inputs" :: "'action signature => 'action set"
19 "outputs" :: "'action signature => 'action set"
20 "internals" :: "'action signature => 'action set"
21 externals :: "'action signature => 'action set"
23 is_asig ::"'action signature => bool"
24 mk_ext_asig ::"'action signature => 'action signature"
29 asig_inputs_def: "inputs == fst"
30 asig_outputs_def: "outputs == (fst o snd)"
31 asig_internals_def: "internals == (snd o snd)"
34 "actions(asig) == (inputs(asig) Un outputs(asig) Un internals(asig))"
37 "externals(asig) == (inputs(asig) Un outputs(asig))"
41 ((inputs(triple) Int outputs(triple) = {}) &
42 (outputs(triple) Int internals(triple) = {}) &
43 (inputs(triple) Int internals(triple) = {}))"
47 "mk_ext_asig(triple) == (inputs(triple), outputs(triple), {})"
49 ML {* use_legacy_bindings (the_context ()) *}