src/HOLCF/IOA/meta_theory/CompoExecs.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:
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     1
(*  Title:      HOLCF/IOA/meta_theory/CompoExecs.thy
3275
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
     2
    ID:         $Id$
12218
wenzelm
parents: 10835
diff changeset
     3
    Author:     Olaf Müller
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
     4
*)
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     5
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
     6
header {* Compositionality on Execution level *}
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     7
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
     8
theory CompoExecs
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
     9
imports Traces
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    10
begin
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    11
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    12
consts
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    13
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    14
 ProjA      ::"('a,'s * 't)execution => ('a,'s)execution"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    15
 ProjA2     ::"('a,'s * 't)pairs     -> ('a,'s)pairs"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    16
 ProjB      ::"('a,'s * 't)execution => ('a,'t)execution"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    17
 ProjB2     ::"('a,'s * 't)pairs     -> ('a,'t)pairs"
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    18
 Filter_ex  ::"'a signature => ('a,'s)execution => ('a,'s)execution"
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    19
 Filter_ex2 ::"'a signature => ('a,'s)pairs     -> ('a,'s)pairs"
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    20
 stutter    ::"'a signature => ('a,'s)execution => bool"
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    21
 stutter2   ::"'a signature => ('a,'s)pairs     -> ('s => tr)"
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    22
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    23
 par_execs  ::"[('a,'s)execution_module,('a,'t)execution_module] => ('a,'s*'t)execution_module"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    24
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    25
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    26
defs
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    27
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    28
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    29
ProjA_def:
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    30
 "ProjA ex == (fst (fst ex), ProjA2$(snd ex))"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    31
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    32
ProjB_def:
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    33
 "ProjB ex == (snd (fst ex), ProjB2$(snd ex))"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    34
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    35
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    36
ProjA2_def:
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    37
  "ProjA2 == Map (%x.(fst x,fst(snd x)))"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    38
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    39
ProjB2_def:
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    40
  "ProjB2 == Map (%x.(fst x,snd(snd x)))"
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    41
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    42
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    43
Filter_ex_def:
10835
nipkow
parents: 3842
diff changeset
    44
  "Filter_ex sig ex == (fst ex,Filter_ex2 sig$(snd ex))"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    45
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    46
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    47
Filter_ex2_def:
3842
b55686a7b22c fixed dots;
wenzelm
parents: 3521
diff changeset
    48
  "Filter_ex2 sig ==  Filter (%x. fst x:actions sig)"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    49
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    50
stutter_def:
10835
nipkow
parents: 3842
diff changeset
    51
  "stutter sig ex == ((stutter2 sig$(snd ex)) (fst ex) ~= FF)"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    52
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    53
stutter2_def:
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    54
  "stutter2 sig ==(fix$(LAM h ex. (%s. case ex of
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    55
      nil => TT
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    56
    | x##xs => (flift1
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    57
            (%p.(If Def ((fst p)~:actions sig)
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    58
                 then Def (s=(snd p))
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    59
                 else TT fi)
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    60
                andalso (h$xs) (snd p))
10835
nipkow
parents: 3842
diff changeset
    61
             $x)
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    62
   )))"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    63
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    64
par_execs_def:
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    65
  "par_execs ExecsA ExecsB ==
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    66
       let exA = fst ExecsA; sigA = snd ExecsA;
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    67
           exB = fst ExecsB; sigB = snd ExecsB
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    68
       in
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    69
       (    {ex. Filter_ex sigA (ProjA ex) : exA}
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    70
        Int {ex. Filter_ex sigB (ProjB ex) : exB}
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    71
        Int {ex. stutter sigA (ProjA ex)}
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    72
        Int {ex. stutter sigB (ProjB ex)}
3842
b55686a7b22c fixed dots;
wenzelm
parents: 3521
diff changeset
    73
        Int {ex. Forall (%x. fst x:(actions sigA Un actions sigB)) (snd ex)},
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    74
        asig_comp sigA sigB)"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    75
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    76
ML {* use_legacy_bindings (the_context ()) *}
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    77
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    78
end