| author | huffman |
| Tue, 14 Jun 2005 23:44:37 +0200 | |
| changeset 16394 | 495dbcd4f4c9 |
| parent 14981 | e73f8140af78 |
| child 17233 | 41eee2e7b465 |
| permissions | -rw-r--r-- |
| 3071 | 1 |
(* Title: HOLCF/IOA/meta_theory/RefCorrectness.thy |
| 3275 | 2 |
ID: $Id$ |
| 12218 | 3 |
Author: Olaf Müller |
| 3071 | 4 |
|
| 12218 | 5 |
Correctness of Refinement Mappings in HOLCF/IOA. |
| 3071 | 6 |
*) |
7 |
||
8 |
||
9 |
RefCorrectness = RefMappings + |
|
|
3433
2de17c994071
added deadlock freedom, polished definitions and proofs
mueller
parents:
3275
diff
changeset
|
10 |
|
| 3071 | 11 |
consts |
12 |
||
13 |
corresp_ex ::"('a,'s2)ioa => ('s1 => 's2) =>
|
|
14 |
('a,'s1)execution => ('a,'s2)execution"
|
|
|
3433
2de17c994071
added deadlock freedom, polished definitions and proofs
mueller
parents:
3275
diff
changeset
|
15 |
corresp_exC ::"('a,'s2)ioa => ('s1 => 's2) => ('a,'s1)pairs
|
|
2de17c994071
added deadlock freedom, polished definitions and proofs
mueller
parents:
3275
diff
changeset
|
16 |
-> ('s1 => ('a,'s2)pairs)"
|
|
4559
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
17 |
is_fair_ref_map :: "('s1 => 's2) => ('a,'s1)ioa => ('a,'s2)ioa => bool"
|
| 3071 | 18 |
|
19 |
defs |
|
20 |
||
21 |
corresp_ex_def |
|
| 10835 | 22 |
"corresp_ex A f ex == (f (fst ex),(corresp_exC A f$(snd ex)) (fst ex))" |
| 3071 | 23 |
|
24 |
||
|
3433
2de17c994071
added deadlock freedom, polished definitions and proofs
mueller
parents:
3275
diff
changeset
|
25 |
corresp_exC_def |
| 10835 | 26 |
"corresp_exC A f == (fix$(LAM h ex. (%s. case ex of |
| 3071 | 27 |
nil => nil |
|
3433
2de17c994071
added deadlock freedom, polished definitions and proofs
mueller
parents:
3275
diff
changeset
|
28 |
| x##xs => (flift1 (%pr. (@cex. move A cex (f s) (fst pr) (f (snd pr))) |
| 10835 | 29 |
@@ ((h$xs) (snd pr))) |
30 |
$x) )))" |
|
| 3071 | 31 |
|
|
4559
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
32 |
is_fair_ref_map_def |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
33 |
"is_fair_ref_map f C A == |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
34 |
is_ref_map f C A & |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
35 |
(! ex : executions(C). fair_ex C ex --> fair_ex A (corresp_ex A f ex))" |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
36 |
|
| 3071 | 37 |
|
38 |
||
|
4559
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
39 |
rules |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
40 |
(* Axioms for fair trace inclusion proof support, not for the correctness proof |
| 5976 | 41 |
of refinement mappings ! |
42 |
Note: Everything is superseded by LiveIOA.thy! *) |
|
|
4559
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
43 |
|
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
44 |
corresp_laststate |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
45 |
"Finite ex ==> laststate (corresp_ex A f (s,ex)) = f (laststate (s,ex))" |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
46 |
|
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
47 |
corresp_Finite |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
48 |
"Finite (snd (corresp_ex A f (s,ex))) = Finite ex" |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
49 |
|
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
50 |
FromAtoC |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
51 |
"fin_often (%x. P (snd x)) (snd (corresp_ex A f (s,ex))) ==> fin_often (%y. P (f (snd y))) ex" |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
52 |
|
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
53 |
FromCtoA |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
54 |
"inf_often (%y. P (fst y)) ex ==> inf_often (%x. P (fst x)) (snd (corresp_ex A f (s,ex)))" |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
55 |
|
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
56 |
|
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
57 |
(* Proof by case on inf W in ex: If so, ok. If not, only fin W in ex, ie there is |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
58 |
an index i from which on no W in ex. But W inf enabled, ie at least once after i |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
59 |
W is enabled. As W does not occur after i and W is enabling_persistent, W keeps |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
60 |
enabled until infinity, ie. indefinitely *) |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
61 |
persistent |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
62 |
"[|inf_often (%x. Enabled A W (snd x)) ex; en_persistent A W|] |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
63 |
==> inf_often (%x. fst x :W) ex | fin_often (%x. ~Enabled A W (snd x)) ex" |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
64 |
|
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
65 |
infpostcond |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
66 |
"[| is_exec_frag A (s,ex); inf_often (%x. fst x:W) ex|] |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
67 |
==> inf_often (% x. set_was_enabled A W (snd x)) ex" |
|
8e604d885b54
added files containing temproal logic and abstraction;
mueller
parents:
3433
diff
changeset
|
68 |
|
| 3071 | 69 |
end |