src/HOLCF/IOA/meta_theory/SimCorrectness.thy
author wenzelm
Mon, 22 May 2000 11:56:55 +0200
changeset 8907 813fabceec00
parent 4565 ea467ce15040
child 10835 f4745d77e620
permissions -rw-r--r--
tuned;
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 
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    26
                               (S',(corresp_ex_simC A R`(snd ex)) S')"
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
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    30
  "corresp_ex_simC A R  == (fix`(LAM h ex. (%s. case ex of 
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')
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    36
                                 @@ ((h`xs) T'))
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    37
                        `x) )))"
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    38
 
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    39
end