4565
|
1 |
(* Title: HOLCF/IOA/meta_theory/SimCorrectness.thy
|
|
2 |
ID: $Id$
|
|
3 |
Author: Olaf Mueller
|
|
4 |
Copyright 1997 TU Muenchen
|
|
5 |
|
|
6 |
Correctness of Simulations in HOLCF/IOA
|
|
7 |
*)
|
|
8 |
|
|
9 |
|
|
10 |
SimCorrectness = Simulations +
|
|
11 |
|
|
12 |
consts
|
|
13 |
|
|
14 |
corresp_ex_sim ::"('a,'s2)ioa => (('s1 *'s2)set) =>
|
|
15 |
('a,'s1)execution => ('a,'s2)execution"
|
|
16 |
(* Note: s2 instead of s1 in last argument type !! *)
|
|
17 |
corresp_ex_simC ::"('a,'s2)ioa => (('s1 * 's2)set) => ('a,'s1)pairs
|
|
18 |
-> ('s2 => ('a,'s2)pairs)"
|
|
19 |
|
|
20 |
|
|
21 |
defs
|
|
22 |
|
|
23 |
corresp_ex_sim_def
|
|
24 |
"corresp_ex_sim A R ex == let S'= (@s'.(fst ex,s'):R & s': starts_of A)
|
|
25 |
in
|
|
26 |
(S',(corresp_ex_simC A R`(snd ex)) S')"
|
|
27 |
|
|
28 |
|
|
29 |
corresp_ex_simC_def
|
|
30 |
"corresp_ex_simC A R == (fix`(LAM h ex. (%s. case ex of
|
|
31 |
nil => nil
|
|
32 |
| x##xs => (flift1 (%pr. let a = (fst pr); t = (snd pr);
|
|
33 |
T' = @t'. ? ex1. (t,t'):R & move A ex1 s a t'
|
|
34 |
in
|
|
35 |
(@cex. move A cex s a T')
|
|
36 |
@@ ((h`xs) T'))
|
|
37 |
`x) )))"
|
|
38 |
|
|
39 |
end |