src/HOLCF/IOA/meta_theory/SimCorrectness.thy
author nipkow
Tue, 09 Jan 2001 15:36:30 +0100
changeset 10835 f4745d77e620
parent 4565 ea467ce15040
child 12218 6597093b77e7
permissions -rw-r--r--
` -> $
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4565
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
     1
(*  Title:      HOLCF/IOA/meta_theory/SimCorrectness.thy
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
     2
    ID:         $Id$
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
     3
    Author:     Olaf Mueller
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
     4
    Copyright   1997  TU Muenchen
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
     5
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
     6
Correctness of Simulations in HOLCF/IOA
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
     7
*)
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
     8
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
     9
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    10
SimCorrectness = Simulations + 
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    11
       
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    12
consts
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    13
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    14
  corresp_ex_sim   ::"('a,'s2)ioa => (('s1 *'s2)set) => 
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    15
                      ('a,'s1)execution => ('a,'s2)execution"
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    16
  (* Note: s2 instead of s1 in last argument type !! *)
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    17
  corresp_ex_simC  ::"('a,'s2)ioa => (('s1 * 's2)set) => ('a,'s1)pairs
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    18
                   -> ('s2 => ('a,'s2)pairs)"
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    19
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    20
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    21
defs
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    22
           
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    23
corresp_ex_sim_def
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    24
  "corresp_ex_sim A R ex == let S'= (@s'.(fst ex,s'):R & s': starts_of A)
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    25
                            in 
10835
nipkow
parents: 4565
diff changeset
    26
                               (S',(corresp_ex_simC A R$(snd ex)) S')"
4565
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    27
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    28
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    29
corresp_ex_simC_def
10835
nipkow
parents: 4565
diff changeset
    30
  "corresp_ex_simC A R  == (fix$(LAM h ex. (%s. case ex of 
4565
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    31
      nil =>  nil
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    32
    | x##xs => (flift1 (%pr. let a = (fst pr); t = (snd pr);
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    33
                                 T' = @t'. ? ex1. (t,t'):R & move A ex1 s a t' 
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    34
                             in
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    35
                                (@cex. move A cex s a T')
10835
nipkow
parents: 4565
diff changeset
    36
                                 @@ ((h$xs) T'))
nipkow
parents: 4565
diff changeset
    37
                        $x) )))"
4565
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    38
 
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    39
end