src/HOLCF/IOA/meta_theory/SimCorrectness.thy
author aspinall
Fri, 30 Sep 2005 18:18:34 +0200
changeset 17740 fc385ce6187d
parent 17233 41eee2e7b465
child 19741 f65265d71426
permissions -rw-r--r--
Add icon for interface.
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$
12218
wenzelm
parents: 10835
diff changeset
     3
    Author:     Olaf Müller
4565
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
     4
*)
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
     5
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
     6
header {* Correctness of Simulations in HOLCF/IOA *}
4565
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
     7
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
     8
theory SimCorrectness
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
     9
imports Simulations
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    10
begin
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    11
4565
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    12
consts
ea467ce15040 added forward simulation correectness;
mueller
parents:
diff changeset
    13
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    14
  corresp_ex_sim   ::"('a,'s2)ioa => (('s1 *'s2)set) =>
4565
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
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    22
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    23
corresp_ex_sim_def:
4565
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)
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
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
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    29
corresp_ex_simC_def:
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
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);
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    33
                                 T' = @t'. ? ex1. (t,t'):R & move A ex1 s a t'
4565
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) )))"
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    38
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    39
ML {* use_legacy_bindings (the_context ()) *}
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    40
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    41
end