author | wenzelm |
Fri, 02 Sep 2005 17:23:59 +0200 | |
changeset 17233 | 41eee2e7b465 |
parent 14981 | e73f8140af78 |
child 19741 | f65265d71426 |
permissions | -rw-r--r-- |
3071 | 1 |
(* Title: HOLCF/IOA/meta_theory/RefMappings.thy |
3275 | 2 |
ID: $Id$ |
12218 | 3 |
Author: Olaf Müller |
3071 | 4 |
*) |
5 |
||
17233 | 6 |
header {* Refinement Mappings in HOLCF/IOA *} |
3071 | 7 |
|
17233 | 8 |
theory RefMappings |
9 |
imports Traces |
|
10 |
begin |
|
11 |
||
12 |
defaultsort type |
|
3071 | 13 |
|
14 |
consts |
|
3433
2de17c994071
added deadlock freedom, polished definitions and proofs
mueller
parents:
3275
diff
changeset
|
15 |
move ::"[('a,'s)ioa,('a,'s)pairs,'s,'a,'s] => bool" |
3071 | 16 |
is_ref_map ::"[('s1=>'s2),('a,'s1)ioa,('a,'s2)ioa] => bool" |
17 |
is_weak_ref_map ::"[('s1=>'s2),('a,'s1)ioa,('a,'s2)ioa] => bool" |
|
17233 | 18 |
|
4559
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
19 |
|
3071 | 20 |
defs |
21 |
||
17233 | 22 |
move_def: |
23 |
"move ioa ex s a t == |
|
24 |
(is_exec_frag ioa (s,ex) & Finite ex & |
|
25 |
laststate (s,ex)=t & |
|
10835 | 26 |
mk_trace ioa$ex = (if a:ext(ioa) then a>>nil else nil))" |
3071 | 27 |
|
17233 | 28 |
is_ref_map_def: |
29 |
"is_ref_map f C A == |
|
30 |
(!s:starts_of(C). f(s):starts_of(A)) & |
|
31 |
(!s t a. reachable C s & |
|
32 |
s -a--C-> t |
|
3071 | 33 |
--> (? ex. move A ex (f s) a (f t)))" |
17233 | 34 |
|
35 |
is_weak_ref_map_def: |
|
36 |
"is_weak_ref_map f C A == |
|
37 |
(!s:starts_of(C). f(s):starts_of(A)) & |
|
38 |
(!s t a. reachable C s & |
|
39 |
s -a--C-> t |
|
40 |
--> (if a:ext(C) |
|
3071 | 41 |
then (f s) -a--A-> (f t) |
17233 | 42 |
else (f s)=(f t)))" |
3071 | 43 |
|
17233 | 44 |
ML {* use_legacy_bindings (the_context ()) *} |
4559
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
45 |
|
3071 | 46 |
end |